[mlir][test] Link MLIRBufferizationTestPasses to MLIRTestDialect directly
#236155 removed the explicit test dialect include directories from
MLIRBufferizationTestPasses, relying on the usage requirements of
MLIRTestDialect instead. The library linked MLIRTestDialect via
`mlir_target_link_libraries`, which links libMLIR instead of the given
libraries if `MLIR_LINK_MLIR_DYLIB` is enabled. Since the test dialect
is not part of libMLIR, it was never linked, and its include directories
were never added, causing `TestDialect.h` to not be found.
Link MLIRTestDialect via `LINK_LIBS` like all other test libraries.
[sancov][NFC] Read a coverage file into an existing address set
Union was reading each .sancov file into its own address set and then
inserting that set into the union. Read the file straight into the
caller's set instead. readInPlace returns the file header so a bitness
mismatch still warns, and read is implemented on top of it.
Assisted-by: Cursor (Grok 4.7)
[sancov][NFC] Store raw coverage addresses in a DenseSet
Union inserts the same addresses over and over. A std::set walks a tree for every one of them. A hash set checks whether the address is already present in one step. Sort once on output so the bytes stay ordered. On 5,000 llc dumps, union went from 39s to 5s.
Assisted-by: Cursor (Grok 4.7)
[AMDGPU] Expand `av` built-ins and intrinsics to b8/b16/b32/b64 (#229429)
They previously only supported b128, but there is no technical reason
why we cannot support b8/b16/b32/b64 which are also common.
Disclaimer: This is largely Claude assisted. I did some initial work
manually, then used it in short self-contained bursts (to ensure the
output of each step was reviewable) to do all the boring steps of
plumbing this through the stack. I also manually reverified and cleaned
up all the files one by one between each steps.
Assisted-by: Claude Opus 5.5
[wasm] Swift Async ABI p1: Pass the swiftasync argument in parameter 0
This commit attempts to start defining an ABI (WASM) for the async ctx
parameters to async functions. While other targets can rely on the name
of a register for this, in WASM the parameter position is what defines
its name, so an ABI must be position dependent.
The proposal here is to always place the async context in the first
parameter for WASM. (The swifttailcc padding for a missing swiftasync
argument also becomes parameter 0).
The WebAssembly parameter list already differs from the IR parameter
list:
* The backend already synthesizes parameters that are not in the IR list:
the demoted sret pointer, the varargs buffer pointer, and the swiftself,
swifterror and swiftasync padding.
* Direct precedent: LowerCall already reorders arguments for an ABI. For
Emscripten invoke calls, it swaps the demoted sret pointer and the
function pointer, which the __invoke ABI requires first.
[7 lines not shown]