[Mips] Did not put fake_use into delay slot (#201537)
When compiling with -fextend-variable-liveness, the compiler generates FAKE_USE instructions that are not handled by the Mips assembly printer. This causes a fatal error: "Unsupported instruction : <MCInst 44 >" when using clang with -target mipsel-gnu-linux -Og.
The issue occurs because MipsDelaySlotFiller attempts to process FAKE_USE instructions (which are meta instructions) when searching for instructions to fill delay slots, eventually leading to the assembly printer trying to emit an unsupported instruction.
This patch fixes the crash by treating meta instructions (including FAKE_USE) the same way as debug instructions in the delay slot filler's searchRange function. Meta instructions should be skipped during delay slot filling.
Specifically, the fix:
1.Moves the terminateSearch check before debug/meta instruction checks to ensure proper search termination.
2.Adds isMetaInstruction() check alongside existing isDebugInstr() and isJumpTableDebugInfo() checks.
Fix #198835.
[lldb-dap] Migrate DAP io tests. (#209538)
the launch_io* tests now allow testing args, input, and environment
together.
Previously, these test configurations were mutually exclusive. They are
now combined, removing the need to create a separate test for each input
source.
Migrated Tests:
- TestDAP_io.py
- TestDAP_launch_io_integratedTerminal.py
- TestDAP_launch_io_internalConsole.py
[clang][bytecode] long double on arm64 darwin is 8 bytes (NFC) (#209930)
This test was failing on arm64 darwin targets. Generalise the #if so
that the win32 branch is also taken by arm64 darwin.
rdar://182340494
Await plugin setup results based on the returned value
__plugins_setup decided whether to await by checking
asyncio.iscoroutinefunction on the setup function after already
calling it. A sync setup function that returns an awaitable would
have its result silently dropped and never run, with no error at
startup.
No current setup function is affected: all 112 async setups behave
identically under both checks, and none of the 8 sync setups returns
anything. This is hardening against a future setup taking that shape,
plus the more correct idiom for "allow setup to be a coroutine".
Make Multiversion Function Resolvers set CurFn (#209918)
Commit #197789 manages to try to reference CurFn while generating a
trap, which some of the multiversion resolvers do. This patch makes sure
we set it to the resolver so we are inserting stuff into the right
places.
This somewhat shockingly causes no tests to fail, but it SHOULD stop the
UBSan failures.
Ensure block_hooks unblocks hooks when the with body raises
The decrement after yield was not in a finally block, so an exception
inside a `with block_hooks(...)` body left the counters incremented
permanently, silently disabling those hooks until the daemon
restarted.
Use lazy logging formatting in send_event and hook error paths
The trace call in send_event repr'd the full event payload via an
f-string on every event regardless of log level, which is wasted CPU
on a hot path. Convert it and the surrounding eager-formatted log
calls (send_event warnings, call_hook/_call_hook_base errors) to lazy
%-style arguments.
gallivm: Fix armhf build against LLVM 22
From Alessandro Astone
e84e9dc582797b5e586ea4ff3ae7b5f3656968ee in Mesa main
armv7 build error reported by deraadt@
[TableGen] Pool duplicate code-emitter base encodings (#202619)
Pool duplicate multiword instruction base encodings across the default
encoding table and all hardware-mode encoding tables as unique `APInt`
rows, then emit a pointer-free fixed-width `uint64_t` row table and one
smallest-width opcode-to-row index table per mode. Use the pooled
representation only when the combined values and indices are smaller
than the original tables.
On a Release build, the AMDGPU base-encoding payload shrinks by 440,888
bytes, `llvm-mc` and `llc` each shrink by 445,632 bytes, and the LLVM
driver shrinks by 429,120 bytes.
All 421 TableGen tests passed.
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
When 64-bit DMA is enabled for PCIe models, set IFXF_MBUF_64BIT to let the
kernel know it's ok to "enable mbufs in high memory" as long as all other
interfaces are also so inclined.
ok kettenis@ mvs@ bluhm@