[bazel][RuntimeLibcalls] Fix 30c0454414ec043dc50d2690f72a12719ab89d6c (#210796)
Add PredicateExpanderDag.cpp to the glob. Avoid adding
PredicateExpanderDag.h and instead switch to a glob to include all
headers. We can't glob the .cpp files due to a circular dep when
including TargetFeaturesEmitter.cpp.
[NewPM] Port LegacyPM regalloc Refactoring
This didn't seem to make it into the original CodeGen NewPM patches, so
add it now to keep things consistent. This also removes duplicate
StackSlotColoring passes.
Originally done for the LegacyPM in
c9122ddef5213fbdd2d82c473a74e1742010f62f.
Reviewers: arsenm, aeubanks
Pull Request: https://github.com/llvm/llvm-project/pull/210760
[Clang][AMDGPU] Search both amdgcn and amdgpu libraries again (#210767)
Summary:
Extension to https://github.com/llvm/llvm-project/pull/209770/, the
previous one did not cover all cases we search paths, it only did the
relative paths for a few cases. This adds it to the other case, should
be the same logic and motivation.
[SPIRV] SPIRVTools custom targets should not have executable suffix (#210773)
This looks like it was likely a copy paste mistake. When we invoke the
binary via the cmake command yes we need the executable suffix. but the
custom target name is the same across all OSes.
This bug manifests itself on Windows when you add
-DLLVM_INCLUDE_SPIRV_TOOLS_TESTS=ON to the cmake.
[AMDGPU] Testing cleanup in prep for true16 test upstreaming (#209888)
Some small cleanup of a few tests in preparation for True16 test
upstreaming, synchronizes with cleanups that already happened downstream
[LoopUnroll] Remove `Count` from `UnrollingPreferences` (NFC) (#203413)
`UnrollingPreferences` is a way for targets to specify their preferences
to the unroller. The unroller uses `UnrollingPreferences` to guide what
kinds of unrolling to consider while also co-opting it to encode the
specific kind of unrolling it's chosen to attempt.
One preference targets can set is the `Count`, or the number of times
the loop in question will be unrolled:
```
/// A forced unrolling factor (the number of concatenated bodies of the
/// original loop in the unrolled loop body). When set to 0, the unrolling
/// transformation will select an unrolling factor based on the current cost
/// threshold and other factors.
unsigned Count;
```
However, there are no in-tree uses of this functionality, and it does
not work. [Loop
peeling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1072)
[21 lines not shown]
[mlir][xegpu] Change inst-data of load/load_matrix to fit lane layout (#209661)
The consumer layout may have multiple distribution of lane data, but
load_gather/load_matrix only allow one single distribution, change their
inst_data according to the single distribution of lane data.
[AggressiveInstCombine] Emit branchless MSB index for de Bruijn ctlz tables (#210633)
When the de Bruijn table's zero element is the bit width minus one it
computes the most significant bit index. We can do that without a branch
using ~ctlz(X) & (InputBits - 1), so the select is no longer needed.
Alive: https://alive2.llvm.org/ce/z/9WsUXd
Fixes #208989
RuntimeLibcalls: Reuse AssemblerPredicate's operators for libcalls (#210651)
Allow specifying RuntimeLibcall's availability in terms of individual
triple properties composed with logical operators.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[lldb-mcp] Host managed debug sessions in-process (#210450)
Let a client create and own debug sessions with session_create and
session_close. Rather than spawn a separate lldb per session, lldb-mcp
hosts them in its own process, communicating over a loopback socket to
keep things uniform with external lldb instances.
The benefits of this approach are:
- There is no child-process machinery, so nothing needs to be spawned
and cleaned up.
- It works without the need for an external lldb binary.
- It avoids the deadlock by reading stdin through a raw fd instead of
the FILE* stdio path that previously hung the Debugger constructor
contending on the REPL's stdin lock.
- The architecture stays uniform between in-process and external
sessions.
The trade-off is no isolation, so an LLDB crash takes down lldb-mcp
[2 lines not shown]
[MLIR][XeGPU] Add local forward layout propagation (#208932)
Backward layout propagation only assigns layouts to values that are
(transitively) consumed by an anchor op. A value whose only consumer is,
e.g., the next iteration of a loop is left without a layout.
Add a local forward-fill step, run after the backward materialization
walk in propagateLayouts(): it visits ops in producer-first order and,
for any un-laid-out vector result, infers the layout from the op's
already-known operand layouts via a new
inferResultLayoutFromSourceForNonAnchorOp dispatcher (covering
elementwise, transpose, and shape_cast; other ops are left as TODO),
then stamps it with setDistributeLayoutAttr.
---------
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>