[llvm-jitlink] Add -show-jit-result option (#226149)
Add a -show-jit-result option that prints the int result of the JIT'd
main / entry function to stdout as:
JIT result: <return value>
This makes the result of the JIT'd main / entry function FileCheck-able,
and distinguishable from an llvm-jitlink failure.
This will be used in upcoming ORC runtime tests.
Since we don't currently run code under llvm-jitlink in LLVM regression
tests, this commit does not include an LLVM-side test.
[mlir] Constant-initialize registered operation hook tables (NFC) (#226320)
Make the generic operation hook accessors constexpr so registered
operation hook tables can be constant-initialized. Keep the table
declared static const to support non-constexpr downstream overrides.
In OpenMPDialect.cpp this removes 72 initialization guards and 10,368
bytes of object text, and saves about 0.56B compiler instructions.
Assisted-by: Codex
net/frr10: Enable pimd, install daemons in lib/frr
Add four patches to make pimd work on FreeBSD (submitted upstream).
Daemons move from ${PREFIX}/sbin to ${PREFIX}/lib/frr, matching the
Linux packages. Only vtysh and mtracebis stay in bin/. This avoids filename
collision with net/openbgpd*, net/pimd, net/quagga, etc.
[lld][ELF] Support virtual filesystems for library inputs
Allow ELF library callers to supply an `llvm::vfs::FileSystem` to
`lld::lldMain`. Use it for objects, bitcode, regular and thin archives,
linker scripts, response files, library searches, and IR-level LTO profiles.
This enables embedded users such as AMD COMGR to avoid staging linker inputs
on disk. For example, COMGR's `linkToRelocatable` writes in-memory data
objects to temporary files before calling `linkWithLLD`. A COMGR follow-up
can instead expose those buffers through an `InMemoryFileSystem` and pass
it to `lldMain`.
Retain the filesystem for the invocation and preserve logical filenames when
backing buffers have different identifiers, including during ThinLTO imports.
Profile loading and sample-profile cache-key reads use the supplied
filesystem.
Calls that omit the filesystem retain their existing behavior. The shared
`lld::Driver` callback gains a filesystem argument; non-ELF drivers reject
[14 lines not shown]
AMDGPU: Mark the SCC def dead when merging lane masks (#226282)
The scalar and/or/xor used to merge a lane mask with EXEC clobber SCC,
but nothing reads the result. Avoid depending on later dead flag inference.
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
[offload] Extract OMPT out of PluginInterface (#221726)
Some of the OMPT callbacks, namely the device lifetime and image related
ones, lived in the generic PluginInterface even though they are OpenMP
specific. This patch extracts them out to the PluginManager, and removes
some device ID tracking functionality which was only necessary for
OpenMP from PluginInterface. The OpenMP device ID mapping should live
only in libomptarget.
llan: byte swap the receive queue entries
The receive queue of a PAPR logical LAN is filled in by the hypervisor, so
its fields are big endian, but llan_intr() read the offset and the length of
each frame natively. On a little endian kernel the length of a 134 byte
frame reads as 0x86000000, and ether_input() discards the mbuf because m_len
is not even large enough for an ethernet header. No frame is ever received.
Reproduced on a POWER9 pseries guest with a spapr-vlan interface. Before:
llan0: discard frame w/o leading ethernet header (len -2046820352
pkt len -2046820352)
llan0 1500 <Link#1> 52:54:00:12:34:56 123 118 0 5838733312 7 0
that is 118 input errors out of 123 packets, dhclient(8) never completes and
ping(8) loses every packet, although transmit works because the transmit
path passes the lengths in hcall registers rather than through memory.
Afterwards the interface gets a DHCP lease and ping reports no loss.
[3 lines not shown]
[HLSL] Add float overload for `InterlockedExchange` (#222163)
This PR adds the float overload of `InterlockedExchange`, and the
`InterlockedExchangeFloat` method on `RWByteAddressBuffer` and
`RasterizerOrderedByteAddressBuffer`.
The HLSL interlocked builtins are declared with a variadic type in
`Builtins.td`, so Clang applies the default argument promotions to their
arguments. That promotion turns a `float` argument into a `double`
before Sema
sees it. The Sema check then rejects the call and names the type as
`'double'`
in the diagnostic, which does not match what the user wrote.
`CustomTypeChecking` suppresses that promotion, so the argument keeps
its
`float` type and the diagnostic names it correctly.
Only the builtins that can see a float argument need the attribute. This
[9 lines not shown]
[mlir][ODS] Share generated legacy property splitting (NFC) (#226085)
Route generated legacy builder attributes through an out-of-line helper
that partitions inherent and discardable attributes before converting
properties. This avoids compiling the same loop and error path for every
operation.
Assisted-by: Codex
t_sigio: New test of various SIGIO cases.
PR kern/59056: poll POLLHUP bugs
PR kern/60782: SIGIO says socket ready for send before send does
PR kern/60783: tty: missing siginfo_t in SIGIO
PR kern/60784: pty doesn't deliver SIGIO when writable
PR kern/60785: fifo delivers SIGIO with wrong si_fd