[qt/clang/llvm-project]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/clang/llvm-project
Pushed by mirror-service into branch 'upstream/main'.
Changed from 331e5641480d24de1951d30ef6b10362ab3b6acf to e8f7d45fa98822b9ea2828d53c8a66b70903db3c
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 83ba8addf60668a971453eed207f9bfdaa379f97 by GitHub (on behalf of Andrew Haberlandt) on 20/07/2026 at 17:18..
[compiler-rt] Move sanitizer ignorelists to sanitizer-ignorelists target (#200518)

This adds a `sanitizer-ignorelists` target to compiler-rt, allowing the
ignorelists to be built independently of the sanitizer runtimes. The
ignorelists are still built by default, but this change is not quite
NFC: when any of the sanitizers are built, all of the ignorelists will
be included (rather than the individual runtime ignorelists being built
with their respective runtimes).

For _why_ we want to be able to build these independently of the
runtimes, see
https://github.com/llvm/llvm-project/pull/195690#issuecomment-4384573223

I did not move the dfsan abilist to this new target because it is not as
straightforward as a copying a static file.

Assisted-by: Claude

rdar://175962064
https://invent.kde.org/qt/clang/llvm-project/-/commit/83ba8addf60668a971453eed207f9bfdaa379f97

Git commit d2e70aa7e546f7f2bbcf398b42151e464ce1098e by GitHub (on behalf of Alex Langford) on 20/07/2026 at 17:29..
[lldb] Remove unused method DynamicLoaderDarwin::ImageInfo::FindSegment (#210155)

This method is unused.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d2e70aa7e546f7f2bbcf398b42151e464ce1098e

Git commit b559a53427f926a603a1755f60d98e06e2b7e1d2 by GitHub (on behalf of A. Jiang) on 20/07/2026 at 17:29..
[libc++][docs] Avoid talking about other implementations on DR status (#210637)

Standard library implementations consistently treat (or will
consistently treat) some LWG papers as Defect Reports that are also
applied to old modes, despite that they are not officially listed as
Defect Reports in WG21 meeting minutes. We used to say "other
implementations (namely MSVC STL and libstdc++) will do the same" for
some of them.

However, such sentences will become outdated soon when other
implementations actually do so. It is possibly better to avoid saying
so, which potentially requires synchronizing our documentation with
other implementations.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b559a53427f926a603a1755f60d98e06e2b7e1d2

Git commit eb7677457c1611c02a6362d9eae043987c02ea25 by GitHub (on behalf of Prabhu Rajasekaran) on 20/07/2026 at 17:31..
[llvm-readobj] Print all callgraph sections (#198929)

Ensure that `llvm-readobj` / `llvm-readelf` processes and dumps all 
SHT_LLVM_CALL_GRAPH sections present in an object file, rather
than just the first one.

**Motivation:**
Consider this `foo.s` file
```
.pushsection .text, "axG", %progbits, foo
  .globl foo
  foo:
  ret
  .pushsection .llvm.callgraph, "?", %llvm_call_graph
    .byte 0, 0
    .dc.a foo
    .quad 0
  .popsection
.popsection

.pushsection .text, "axG", %progbits, bar
  .globl foo
  bar:
  ret
  .pushsection .llvm.callgraph, "?", %llvm_call_graph
    .byte 0, 0
    .dc.a bar
    .quad 0
  .popsection
.popsection
```
`clang -c foo.s && llvm-readelf --elf-output-style=JSON --pretty-print
--call-graph-info foo.o` on that shows that there is only one record
reported because the current implementation just looked at the first
SHT_LLVM_CALL_GRAPH section and then ignored all others. This patch will
address this gap by iterating over all the SHT_LLVM_CALL_GRAPH sections.
https://invent.kde.org/qt/clang/llvm-project/-/commit/eb7677457c1611c02a6362d9eae043987c02ea25

Git commit c5204abb4ee22b720528b8c9263d9bf1a5b10d34 by GitHub (on behalf of Gang Chen) on 20/07/2026 at 17:34..
[llvm-utils][Tools] fix mir-check filter to handle scattered check-lines (#209226)

When filtered output was not consecutive, the auto-update script was not
able to generate working checklines.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c5204abb4ee22b720528b8c9263d9bf1a5b10d34

Git commit 3ec4c1783b7dd490d68594e4e46fe309c5fbfbeb by GitHub (on behalf of Daniil Kovalev) on 20/07/2026 at 17:37..
[PAC][llvm-readobj][ELF][AArch64] Define R_AARCH64_AUTH_TLSDESC_CALL reloc (#199503)

See specification https://github.com/ARM-software/abi-aa/pull/395
https://invent.kde.org/qt/clang/llvm-project/-/commit/3ec4c1783b7dd490d68594e4e46fe309c5fbfbeb

Git commit c4026e4350fd4d70692f205aff8764055a8b4ce1 by GitHub (on behalf of Zachary Yedidia) on 20/07/2026 at 17:40..
[LFI][libunwind] Omit unsuppported stg/za instructions for LFI target (#209392)

Under the LFI target the SVE `za` are not currently supported, and
neither is the `stg` instruction. When included in an LFI program they
cause verification failures due to being unsupported instructions. This
patch omits them from compilation when targeting LFI.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c4026e4350fd4d70692f205aff8764055a8b4ce1

Git commit 33b9e91b76073bdce71951199c7ed0efcf41d14c by GitHub (on behalf of Justin Fargnoli) on 20/07/2026 at 17:42..
[LoopUnroll] Add `prepare-for-lto` pass option (#192153)

Expose `UnrollCostEstimator`'s `PrepareForLTO` flag as a pass option for
`LoopUnrollPass` and `LoopFullUnrollPass`. When enabled, loops
containing calls that may be inlined during the LTO post-link phase are
left rolled in the pre-link phase, deferring the decision until LTO
post-link inlining has completed.
https://invent.kde.org/qt/clang/llvm-project/-/commit/33b9e91b76073bdce71951199c7ed0efcf41d14c

Git commit a6b49df4454ae85b8fc500d549d4b614f4c6d535 by GitHub (on behalf of Fangrui Song) on 20/07/2026 at 17:45..
[ELF] Apply version script patterns to name-versioned definitions by node (#208882)

Like GNU ld, a definition whose name specifies a version (foo@@v1 or
foo@v1) should be governed solely by its own version node, with global
patterns checked before local ones and no exact-over-wildcard
precedence. Also fix #202259 (`local: foo*` does not localize defined
`foo@@v1`)

```
                                           old        new (= GNU ld)
  symbol foo@@v1
  v1 { local: foo; }        (own node)     localized  localized
  v2 { local: foo; }        (other node)   localized  exported
  v1 { local: foo*; }       (own node)     exported   localized
  v1 { local: *; }          (own node)     exported   localized
  v1 { global: foo*; local: foo; }         localized  exported
  symbol foo3@v1
  v1 { global: foo3*; local: foo3; }       localized  exported
  v1 { global: *; local: foo3*; }          localized  exported
```

assignExactVersion now skips name-versioned symbols, and the
synthesized "pat@v1" patterns and includeNonDefault parameters are
removed. Instead, parseSymbolVersion matches the version-less name
(demangled for extern "C++" patterns) against the symbol's own node,
localizing the symbol if a local: pattern matches and no global:
pattern does. An exact pattern still performs a "pat@v1" lookup so that
a pattern matching only foo@v1 is not reported as undefined. "attempt
to reassign" diagnostics no longer apply to name-versioned symbols.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a6b49df4454ae85b8fc500d549d4b614f4c6d535

Git commit a04f87fdd9b59c6089bf731c669c6f149208363c by GitHub (on behalf of Haowei) on 20/07/2026 at 17:47..
Reapply "Skipping host target exports during cross-compilation" (#210… (#210496)

This reverts commit 42eb7db188f23625872b6f1d722979a3100d170e. This
reland 3fbb037d03e7ff1ef1cd9156363e895af7caaf98 (#209922).

Under CMake 4+, calling add_library(... SHARED IMPORTED) on a target
platform that lacks dynamic linking support triggers a fatal error. This
becomes an issue when building LLVM and runtimes for baremetal targets
like armv6m-none-eabi. This patch adds the option
"LLVM_OMIT_EXPORTS_FROM_CONFIG" in LLVM. When used in sub builds like
LLVM runtimes, it makes CMake to skip including the LLVM and Clang
exports. This mitigates the CMake 4 errors on baremetal runtimes.

42eb7db188f23625872b6f1d722979a3100d170e originally
apply this flag on all runtimes build and causing issues on runtimes
like intel-sycl-gpu, amdgpu-offload-ubuntu-22-cmake-build-only.
This PR only set this flag when the target platform lacks shared library
support.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a04f87fdd9b59c6089bf731c669c6f149208363c

Git commit 1020bbfc6e9e93f304ddb1329e2fa58ef26831c5 by GitHub (on behalf of Matt Arsenault) on 20/07/2026 at 17:50..
lld: Migrate amdgpu tests to use subarch triples (#210114)
https://invent.kde.org/qt/clang/llvm-project/-/commit/1020bbfc6e9e93f304ddb1329e2fa58ef26831c5

Git commit 7b9ab3a48198aa6bb2130e4302b0dcb66e980f90 by GitHub (on behalf of Arthur Eubanks) on 20/07/2026 at 17:52..
[gn build] Port 2a33792a2ec1 (#210772)
https://invent.kde.org/qt/clang/llvm-project/-/commit/7b9ab3a48198aa6bb2130e4302b0dcb66e980f90

Git commit 55e5cc2ab21be2ef375e5235a961def0e27a2e1a by GitHub (on behalf of Matt Arsenault) on 20/07/2026 at 18:01..
AMDGPU: Migrate more tests to amdgpu triples (#210113)

These were missed in previous conversions for whatever reason.
Some are new tests added after I did the bulk migration, some
are special cases.
https://invent.kde.org/qt/clang/llvm-project/-/commit/55e5cc2ab21be2ef375e5235a961def0e27a2e1a

Git commit 6665357608334ed956517d8aa3df472b0553e50d by GitHub (on behalf of Matt Arsenault) on 20/07/2026 at 18:02..
RuntimeLibcalls: Rename RuntimeLibcallPredicate to RuntimeLibcallAvailability (#210648)

Rename to avoid confusing partial name collisions in future changes.

Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/6665357608334ed956517d8aa3df472b0553e50d

Git commit f010423d3dfac774c6157686b6f14fb8d357c715 by GitHub (on behalf of Christopher Ferris) on 20/07/2026 at 18:08..
[scudo] Remove dead code and other small cleanups. (#210454)

Some dead code from the error info refactor is still around, so delete
that. Also cleanup spelling and spacing.

Modified the tests to use TestOnly functions so it's clear what is
actually used.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f010423d3dfac774c6157686b6f14fb8d357c715

Git commit dd0b48c7e7988fed5f08e93ea3c291ca8d5f99a1 by GitHub (on behalf of Matsu) on 20/07/2026 at 18:16..
[OpenACC] Support dynamic worker-private shared memory (#210770)

Use the maximum ThreadY width when the runtime worker count prevents
exact static sizing.
https://invent.kde.org/qt/clang/llvm-project/-/commit/dd0b48c7e7988fed5f08e93ea3c291ca8d5f99a1

Git commit a01ff35d0375d8a2a558c44ef73583da58dfa505 by GitHub (on behalf of Jon Roelofs) on 20/07/2026 at 18:17..
[libunwind] Fix exposure of UNW_AARCH64_RA_SIGN_STATE through _Unwind_GetGR (#209947)

The pseudo register was previously hacked in under kRegisterIsUndefined, leaving it in a state that was only accessible from within the unwinder itself.
To fix this, allowing external access to the state (and therefore tests!), we invent a new register location kRegisterIsPseudo to record the additional state that the register has been defined by a .cfi_negate_ra_state opcode having been executed.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a01ff35d0375d8a2a558c44ef73583da58dfa505

Git commit 1df8a2c9aac26211fb931f59d2f0489ebd506ad1 by GitHub (on behalf of Nico Weber) on 20/07/2026 at 18:18..
[gn] port 83ba8addf6 (sanitizer_ignorelists) (#210776)
https://invent.kde.org/qt/clang/llvm-project/-/commit/1df8a2c9aac26211fb931f59d2f0489ebd506ad1

Git commit 094a7278f66691c8e0d910c803966f5c2e1f6ce5 by GitHub (on behalf of LU-JOHN) on 20/07/2026 at 18:20..
[AMDGPU] Calculate div/rem with frcp more efficiently (#210684)

Integer division q = a/b can be implemented by fp reciprocal with:
fq = fa * recip(fb)
fq is truncated to produce q. Due to fp rounding and reciprocal accuracy
issues fq can be too small and truncation can produce a value too small
by one.

If abs(a)<=0x400000, this underestimate can be guarded more efficiently
by calculating:
fq=fa+1ulp/b
If abs(a)<=0x400000, adding 1 ulp will increase a by at most 0.5, so the
calculated q will be the same. Adding 1ulp can be done with one integer
add.

This change is analogous to the change done in
https://github.com/llvm/llvm-project/pull/204950 but in
AMDGPUISelLowering.cpp.

Signed-off-by: John Lu <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/094a7278f66691c8e0d910c803966f5c2e1f6ce5

Git commit a8fd45114023f0cb332b2c0fcc5a14f4c4de8182 by GitHub (on behalf of Justin Lebar) on 20/07/2026 at 18:27..
[LSV] Don't vectorize load chains across ordered atomics (#208631)

When the LoadStoreVectorizer finds a chain of loads to merge into a
single vectorized load, it hoists all of the constituent loads up to the
location of the first load in the chain.

This is obviously not safe if there are any may-alias stores in the
middle of the chain. But it's *also* not safe if there are `acquire`
*loads* in the middle of the chain.

There's a similar problem with stores. A chain of stores is vectorized
by merging them all into the final store in the chain. This is not safe
if there is an intervening `release` store.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a8fd45114023f0cb332b2c0fcc5a14f4c4de8182

Git commit 59e677629e4398428dbefecba8062fb89955f1f3 by GitHub (on behalf of Jon Roelofs) on 20/07/2026 at 18:31..
[llvm][AArch64] Refactor emitPACCFI into decoratePACWithCFI/emitAUTCFI. NFC (#209948)
https://invent.kde.org/qt/clang/llvm-project/-/commit/59e677629e4398428dbefecba8062fb89955f1f3

Git commit 365a64ac9353032b4de330ac6f6ce48bd1b53846 by GitHub (on behalf of Vicky Nguyen) on 20/07/2026 at 18:31..
[CIR][AArch64] Upstream store (vst1_*/vst1q_*) NEON builtins (#209347)

Related to https://github.com/llvm/llvm-project/issues/185382

CIR lowering for store intrinsics (`vst1_*`/`vst1q_*`)
(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#store)

Port tests:
- `clang/test/CodeGen/AArch64/neon-intrinsics.c`
-  `clang/test/CodeGen/AArch64/neon-ldst-one.c`
-  `clang/test/CodeGen/AArch64/poly64.c`
-  `clang/test/CodeGen/arm-neon-vst.c`

to `clang/test/CodeGen/AArch64/neon/store.c`
https://invent.kde.org/qt/clang/llvm-project/-/commit/365a64ac9353032b4de330ac6f6ce48bd1b53846

Git commit 95cabd6644eae6c1622750d78ebc90e68fe0e122 by GitHub (on behalf of Nico Weber) on 20/07/2026 at 18:32..
[gn] hwasan follow-up to 1df8a2c9aac26211 (#210781)
https://invent.kde.org/qt/clang/llvm-project/-/commit/95cabd6644eae6c1622750d78ebc90e68fe0e122

Git commit d139c824e997f0b0be3a3578226f2a2e6352e251 by GitHub (on behalf of Jianhui Li) on 20/07/2026 at 18:44..
[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 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/d139c824e997f0b0be3a3578226f2a2e6352e251

Git commit 9208fc3409e3afff53338b0fdaf22319752949db by GitHub (on behalf of Jonas Devlieghere) on 20/07/2026 at 18:45..
[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
along with its proxied connections.

Assisted-by: Claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/9208fc3409e3afff53338b0fdaf22319752949db

Git commit 30c0454414ec043dc50d2690f72a12719ab89d6c by GitHub (on behalf of Matt Arsenault) on 20/07/2026 at 18:50..
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) <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/30c0454414ec043dc50d2690f72a12719ab89d6c

Git commit 6fcf3b331fc83b817bbbe6c255fb2a75fab381f1 by GitHub (on behalf of Lucas Ly Ba) on 20/07/2026 at 18:53..
[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
https://invent.kde.org/qt/clang/llvm-project/-/commit/6fcf3b331fc83b817bbbe6c255fb2a75fab381f1

Git commit 3d638ea31e8efee04e307e74e29dc80d5585dd27 by GitHub (on behalf of Jianhui Li) on 20/07/2026 at 18:55..
[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.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3d638ea31e8efee04e307e74e29dc80d5585dd27

Git commit afb54cc942d5fccf63f5594a6808f21eb179db6f by GitHub (on behalf of Justin Fargnoli) on 20/07/2026 at 19:02..
[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)
([2](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1149)),
[pragma
unrolling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1090),
[full
unrolling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1115),
[upper-bound
unrolling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1137),
[partial
unrolling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1162),
and [runtime
unrolling](https://github.com/llvm/llvm-project/blob/112fb2f79d7983be203957cad6b148865182ed47/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp#L1202)
all override the value of `UP.Count` that targets would've set. This
appears to have been broken since LLVM 3.9 days as a result of
ea2aef4a1d4beded20033fa4fc223936c7ffe5d8.

This PR removes `Count` from `UnrollingPreferences` and instead encodes
it as a return value of the `computeUnrollCount()` family of functions.

If [out-of-tree targets want to begin setting
`Count`](https://github.com/llvm/llvm-project/pull/185979#discussion_r3022857799),
their best bet is likely to use
[`llvm.loop.unroll.count`](https://llvm.org/docs/LangRef.html#llvm-loop-unroll-count-metadata).
https://invent.kde.org/qt/clang/llvm-project/-/commit/afb54cc942d5fccf63f5594a6808f21eb179db6f

Git commit 8632f54ae56373f52c02b9476bc34d71d0331502 by GitHub (on behalf of Domenic Nutile) on 20/07/2026 at 19:14..
[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
https://invent.kde.org/qt/clang/llvm-project/-/commit/8632f54ae56373f52c02b9476bc34d71d0331502

Git commit 3f2e25a9e62a3e71aa70ae28e1d6218ef6d05318 by GitHub (on behalf of forking-google-bazel-bot[bot]) on 20/07/2026 at 19:19..
[Bazel] Fixes dd0b48c (#210779)

This fixes dd0b48c7e7988fed5f08e93ea3c291ca8d5f99a1.

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=dd0b48c7e7988fed5f08e93ea3c291ca8d5f99a1

Co-authored-by: Google Bazel Bot <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/3f2e25a9e62a3e71aa70ae28e1d6218ef6d05318

Git commit 47593d5d17f86e288e3a4f2ef8c6f874d7161925 by GitHub (on behalf of Farzon Lotfi) on 20/07/2026 at 19:25..
[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.
https://invent.kde.org/qt/clang/llvm-project/-/commit/47593d5d17f86e288e3a4f2ef8c6f874d7161925

Git commit 33acb625bb0c262aaa886b4101994e81c14fbdfb by GitHub (on behalf of Joseph Huber) on 20/07/2026 at 19:44..
[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.
https://invent.kde.org/qt/clang/llvm-project/-/commit/33acb625bb0c262aaa886b4101994e81c14fbdfb

Git commit 0de567b62a5b33f861314f3faa6511ee2e43ddd6 by GitHub (on behalf of Aiden Grossman) on 20/07/2026 at 19:50..
[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
https://invent.kde.org/qt/clang/llvm-project/-/commit/0de567b62a5b33f861314f3faa6511ee2e43ddd6

Git commit c9a17d3e4690b50d68124f7207a1035237bb5c16 by GitHub (on behalf of Alex Strelnikov) on 20/07/2026 at 19:51..
[libc] Fix standard streams variable name typos in overlay mode. (#210728)

These appear to be a couple of copy/paste misses from #187522.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c9a17d3e4690b50d68124f7207a1035237bb5c16

Git commit 7c672b6eff42b4aa6d1e2f8ef2b24a344d57b14b by GitHub (on behalf of Jordan Rupprecht) on 20/07/2026 at 19:58..
[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.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7c672b6eff42b4aa6d1e2f8ef2b24a344d57b14b

Git commit d903936a03eba0eb1f96b96ec0a956de0bfaaf47 by GitHub (on behalf of Chris Apple) on 20/07/2026 at 20:07..
[NFC] [rtsan] Cleanup env for lit tests (#210395)

This matches the style of our other tests, and may make it easier for
others to maintain downstream if they override the `env_rtsan_opts`
variable with special platform specific options.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d903936a03eba0eb1f96b96ec0a956de0bfaaf47

Git commit 5cf3b68e2f14e6b08ef09459b0613ddbb6b82054 by GitHub (on behalf of Ebuka Ezike) on 20/07/2026 at 20:11..
[lldb] Avoid data race when clearing an OptionValue (#208471)

The clear function guarded by the internal mutex.
This happens when we have to threads one trying to set a value and the
other reseting the value.

The derived classes are forced to implement the `ClearImpl`. and base
`OptionValue` hold the mutex and calls `ClearImpl` on clear.
https://invent.kde.org/qt/clang/llvm-project/-/commit/5cf3b68e2f14e6b08ef09459b0613ddbb6b82054

Git commit 01197ee9ad4c9625df1557c5756ba23e8b180d60 by GitHub (on behalf of Razvan Lupusoru) on 20/07/2026 at 20:17..
[mlir][acc] Lower per-thread array reductions correctly (#210453)

Lowering an acc.reduction_accumulate_array to a per-element
gpu.all_reduce is only valid when each thread owns its own accumulator
copy. This was inferred from the memref's static size, which was wrong
for dynamically-shaped accumulators and for storage seen through
descriptor or strided views.

Per-thread accumulators that fit the local stack budget are materialized
in stack memory; anything larger, or gang-scoped, is materialized in
shared memory. Classify from that: a stack alloca (or a view over one)
within the budget is per-thread, a shared allocation is block-shared,
and a dynamically-shaped accumulator is classified from its par_dims.
Materialization and predication follow the same rule, and writes to a
privatization are recognized through views/casts so per-thread setup
runs on every owning thread.
https://invent.kde.org/qt/clang/llvm-project/-/commit/01197ee9ad4c9625df1557c5756ba23e8b180d60

Git commit ba03e56adffde7b3f6908a38d3d5ea34324b8ad4 by GitHub (on behalf of Arseniy Obolenskiy) on 20/07/2026 at 20:21..
[SPIR-V] Simplify lookup of llvm.global.annotations using getNamedGlobal (#210722)
https://invent.kde.org/qt/clang/llvm-project/-/commit/ba03e56adffde7b3f6908a38d3d5ea34324b8ad4

Git commit f34b933ff76cbc9d02d9b68b4b0c6ee7996d005c by GitHub (on behalf of Aiden Grossman) on 20/07/2026 at 20:25..
[NewPM] Only add passes after optimized RegAlloc if a target enables it

The legacyPM allows for returning a boolean from
addRegAssignAndRewriteOptimized, and if set to false, some extra passes
at the end of addOptimizedRegAlloc are not added. Before this patch, the
NewPM would only omit adding these passes if an error was thrown, which
gets propagated all the way back up and prevents compilation.

This is necessary behavior for targets that do not perform register
allocation, like WebAssembly, that will otherwise crash in places like
MachineLICM.

Reviewers: arsenm, aeubanks

Pull Request: https://github.com/llvm/llvm-project/pull/210792
https://invent.kde.org/qt/clang/llvm-project/-/commit/f34b933ff76cbc9d02d9b68b4b0c6ee7996d005c

Git commit f36452f40e849d8e4947689a3bd8252ad5bbbde5 by GitHub (on behalf of Chris Apple) on 20/07/2026 at 20:32..
[rtsan] Clean up rtsan_opts default variable (#210803)

Follow on from https://github.com/llvm/llvm-project/pull/210395.

Some systems didn't like this empty variable when they appended to it
later (and the original variable that we had as a dummy was unsupported
by rtsan)


https://github.com/llvm/llvm-project/pull/210395/changes#diff-5f39176422b87f314a683584d1cabe670b4c1e3942d65bb2b5ce4d0623c40560L7

Change this to another inconsequential value so we can append
`:other_options` to it easily later in the file
https://invent.kde.org/qt/clang/llvm-project/-/commit/f36452f40e849d8e4947689a3bd8252ad5bbbde5

Git commit c770d924484d37c6a4ee7a35e90f053b0d391e2a by GitHub (on behalf of Matt Arsenault) on 20/07/2026 at 20:38..
TableGen: Parenthesize negated predicate-dag leaves with operators (#210652)

Allows writing more general expressions in the predicate code.
Previously
not ("a == b") would be emitted as !a == b.

Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/c770d924484d37c6a4ee7a35e90f053b0d391e2a

Git commit 8d5788cae76da2b82d1330fb070f622cda870adb by GitHub (on behalf of Hristo Hristov) on 20/07/2026 at 20:52..
[libc++][ranges][NFC] Format a couple of `elements_view` tests (#210687)

As a pre-requisite for https://github.com/llvm/llvm-project/pull/193891
https://invent.kde.org/qt/clang/llvm-project/-/commit/8d5788cae76da2b82d1330fb070f622cda870adb

Git commit be0586d81e39c051f12d6c231f6eff32a99ded60 by GitHub (on behalf of Alex Langford) on 20/07/2026 at 21:04..
[lldb][NFC] Use make_shared when creating Sections (#210196)
https://invent.kde.org/qt/clang/llvm-project/-/commit/be0586d81e39c051f12d6c231f6eff32a99ded60

Git commit 429c88d37f1f02e68ebc1fc7b0da4511ce6407e3 by GitHub (on behalf of Tom Stellard) on 20/07/2026 at 21:12..
workflows: Add missing checkouts when using validate-release-version (#210471)

We need to make sure all composite workflows we use are checked out
manually from th egit repo.
https://invent.kde.org/qt/clang/llvm-project/-/commit/429c88d37f1f02e68ebc1fc7b0da4511ce6407e3

Git commit 81112dd333caaedfb5eea1a2014e50e535a0125a by GitHub (on behalf of Stanislav Mekhanoshin) on 20/07/2026 at 21:28..
[AMDGPU] Fold immediate from REG_SEQUENCE (imm, IMPLICIT_DEF) (#210787)

Co-authored-by: Matt Arsenault <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/81112dd333caaedfb5eea1a2014e50e535a0125a

Git commit 5f2d043abb6874e3c2be61b28131d9863c428b36 by GitHub (on behalf of Ankit Kumar Tiwari) on 20/07/2026 at 21:38..
[SelectionDAG] Fold VECREDUCE_MUL of a constant BUILD_VECTOR (#210126)

Follows up on #207560 (VECREDUCE_ADD).
Adds constant folding for `ISD::VECREDUCE_MUL` in
`SelectionDAG::FoldConstantArithmetic` when the input is a
`BUILD_VECTOR` of integer constants. 

Fixes #209110
https://invent.kde.org/qt/clang/llvm-project/-/commit/5f2d043abb6874e3c2be61b28131d9863c428b36

Git commit f1073034a030a09bf0a29607aa0bee4430b31b97 by GitHub (on behalf of vporpo) on 20/07/2026 at 21:44..
[SandboxVec][Scheduler] Use SchedulingPoint for pointing to scheduling front (#208373)

The scheduling point is the last instruction scheduled. If this is the
first time scheduling and we are scheduling top-down then we may need to
point before the beginning of the basic block. This is why a
BasicBlock::iterator does not work well here.

Until now we were using the first top-most instruction for this, which
is inconsistent.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f1073034a030a09bf0a29607aa0bee4430b31b97

Git commit e92e1787bd87ab1fb631f1dc242308f7bede9b16 by GitHub (on behalf of Erich Keane) on 20/07/2026 at 21:53..
[CIR] Fixup conversion of const unions/structs of unions (#210146)

Now that we represent a union as all of the fields, it is possible for
the non-storage type to be initialized, so the fact that we were
lowering the types as storage in 1 way for the constant type, but
filling it with our actual value was wrong.

This patch makes sure we create a literal struct type for LLVM for union
types where they don't match, which generally matches the OGCG
implementation/output.

I've also generalized the work for the FAM to do this conversion, and
moved it to LoweringHelpers, so that our ConstantRecord lowering can use
it too.

This patch fixes up a couple uses of std::string initializers where they
fit in the SSO.

Note: I was assisted in this by Claude Opus. I did plenty of self-review
on this as it was being generated, and a post-review, but hopefully I
didn't miss anything.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e92e1787bd87ab1fb631f1dc242308f7bede9b16

Git commit 66af87fd8b49cb44eabb9ccd08de77027ce3c90e by GitHub (on behalf of Jackson Stogel) on 20/07/2026 at 21:54..
[libc][realpath] Validate path components (#209370)

This PR updates `realpath` to validate paths and return `ENOTDIR` or
`ENOENT` according to
https://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html.
https://invent.kde.org/qt/clang/llvm-project/-/commit/66af87fd8b49cb44eabb9ccd08de77027ce3c90e

Git commit 4479f3397f827291c51698fbaa685b1a9493467a by GitHub (on behalf of Ken Matsui) on 20/07/2026 at 22:00..
[clang][TCE] Fix ordering of OpenCL address space mappings (#210244)

opencl_global_device and opencl_global_host are defined after
opencl_generic in LangAS, but commit
8d27be8dbaffce0519ac41173d51923fc2524b1b inserted them before
opencl_generic in the TCE address space map.

Fix the order to restore the intended mappings.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4479f3397f827291c51698fbaa685b1a9493467a

Git commit 3d0f18b6210e8cbc9fa04bca91581e25371c5b14 by GitHub (on behalf of Med Ismail Bennani) on 20/07/2026 at 22:00..
[lldb/script] Only auto-open the generator template in an editor when interactive (#210808)

`scripting extension generate` always launched the external editor after
writing the template to disk, which is fine when a user types the
command at the prompt but is undesirable when the command runs from the
test suite, a headless driver, or a script -- each invocation spawns an
editor that nobody sees.

Extend `--open-editor` (`-e`) so that the default (`eLazyBoolCalculate`)
now dispatches on `CommandReturnObject::GetInteractive()`, which
`SBCommandInterpreter::HandleCommand` explicitly clears. That's the
accurate signal even when the process' stdin is a TTY inherited from the
parent (e.g. `lldb-dotest` invoked from a terminal). `--open-editor yes`
and `--open-editor no` still force the behavior explicitly.

Signed-off-by: Med Ismail Bennani <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/3d0f18b6210e8cbc9fa04bca91581e25371c5b14

Git commit 95649d680b1374716e68b34940ec11518ecc79d8 by GitHub (on behalf of Ayokunle Amodu) on 20/07/2026 at 22:07..
[CIR][CUDA] Add support for NVVM binary atomic builtins (#210534)

Adds codegen support for the following NVVM binary atomic builtins: add,
sub, and, or, xor, min, umin, max and max.

These are lowered to the corresponding CIR `cir.atomic.fetch` operations
and subsequently lowered to LLVM `atomicrmw` instructions.
https://invent.kde.org/qt/clang/llvm-project/-/commit/95649d680b1374716e68b34940ec11518ecc79d8

Git commit 4c88bd7840aa220ac8b19c0c73e951b7d6abf325 by GitHub (on behalf of Drew Kersnar) on 20/07/2026 at 22:12..
[LoadStoreVectorizer] Avoid vectorizing pointers with external state (#209909)

LLVM pointers with external state must be loaded and stored using their
pointer type so that out-of-band state is transferred. I noticed that
the LangRef explicitly prohibits replacing such accesses with integer or
byte accesses:
https://llvm.org/docs/LangRef.html#pointers-with-external-state

> When a pointer type has external state, all roundtrips via memory must
be performed as loads and stores of the correct type since stores of
other types may not propagate the external data. Therefore it is not
legal to convert an existing load/store (or a llvm.memcpy / llvm.memmove
intrinsic) of pointer types with external state to a load/store of an
integer or byte type with the same bitwidth, as that may drop the
external state.

The LoadStoreVectorizer could combine an external-state pointer access
with an adjacent same-sized access, replacing them with an integer
vector load/store and `inttoptr`/`ptrtoint`.

Conservatively exclude loads and stores whose value type has external
state from LSV vectorization. Add regression coverage for both loads and
stores using a `pe2:` datalayout.

This issue exists for same-width mixed chains today and could affect
additional mixed-width chains once #177908 lands (I stumbled across this
while reviewing that change).

This PR was created with the assistance of AI.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4c88bd7840aa220ac8b19c0c73e951b7d6abf325

Git commit cdc31cfa66f0b2da2483854db9c783ddba120c42 by GitHub (on behalf of Jonas Devlieghere) on 20/07/2026 at 22:13..
[DWARFLinker] Fix RefTypeName crash and type-table non-determinism (#209033)

The parallel linker computes DIE placement (artificial type unit vs
plain DWARF) concurrently across compile units.

1. updateDependenciesCompleteness checked the placement of the enclosing
root type (getRootForSpecifiedEntry) instead of the actual referenced
DIE. A nested type can be demoted to plain DWARF while its root stays in
the type table, leaving a type-unit DIE that references a plain DIE and
tripping the RefTypeName assertion in
DIEAttributeCloner::cloneDieRefAttr. Carry the actual referenced DIE on
the worklist item and check its placement.

2. The completeness dependency set was recorded as a side effect of the
concurrent marking traversal, which short-circuits on already-marked
DIEs (isAlreadyMarked) before maybeAddReferencedRoots. When a shared
cross-CU DIE was already marked by a racing CU, the current referencing
root's outgoing dependencies were dropped, so the demotion fixpoint
missed demotions and whole type subtrees were left in the artificial
type unit non-deterministically. Add a RecordDepsOnly mode that, on the
short-circuit, re-walks the already-marked subtree and records the
dependencies directly without marking, scheduling, or following
references (so no cycles). This makes the recorded dependency set
complete and order-independent; the demoted-DIE set now matches the
single-threaded result on every run.

rdar://180584698
https://invent.kde.org/qt/clang/llvm-project/-/commit/cdc31cfa66f0b2da2483854db9c783ddba120c42

Git commit e41ac7425f54ec2f8ee0f318d38d1f823cfb72b2 by GitHub (on behalf of Alexey Bataev) on 20/07/2026 at 22:14..
[SLP]Fix crash in isExpandedBinOp on split-node scalars

A split node's Scalars mix two unrelated operations under one
synthetic main/alt op and never populate CopyableElements, so
querying isExpandedBinOp on one of its scalars can make
getMatchingMainOpOrAltOp return nullptr, causing the crash.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/210828
https://invent.kde.org/qt/clang/llvm-project/-/commit/e41ac7425f54ec2f8ee0f318d38d1f823cfb72b2

Git commit b4000b69fac87a86dd62ddefe99cbab9d1e7b925 by GitHub (on behalf of Lucas Ribeiro Lima) on 20/07/2026 at 22:18..
[CIR] X86 vperm2f128 builtin implementation (#208851)

This PR implements X86 VPerm2f128 intrinsics and its tests.

Addresses #167765
https://invent.kde.org/qt/clang/llvm-project/-/commit/b4000b69fac87a86dd62ddefe99cbab9d1e7b925

Git commit 13d822c9351fdfa4287e30e0ace1e88e1901f431 by GitHub (on behalf of Erich Keane) on 20/07/2026 at 22:20..
[CIR] Fix how we lower bitfield constants (#210791)

My patch to change the type of a const missed that there is a difference
between how we were representing a bitfield (always as an int) in the
constant, and in the struct(as a byte array).

This patch makes sure we correctly match the storage type, and just
requires packing/unpacking arrays when we store it.
https://invent.kde.org/qt/clang/llvm-project/-/commit/13d822c9351fdfa4287e30e0ace1e88e1901f431

Git commit e6cde20367a82aca112db73a3d1c76e77fe580f1 by GitHub (on behalf of Med Ismail Bennani) on 20/07/2026 at 22:25..
[lldb/script] Remove verbose comments following c4962f5721a3 (NFC) (#210827)

This removes verbose comments from c4962f5721a3 following a post-merge
comment.

Signed-off-by: Med Ismail Bennani <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/e6cde20367a82aca112db73a3d1c76e77fe580f1

Git commit e8f7d45fa98822b9ea2828d53c8a66b70903db3c by GitHub (on behalf of Erich Keane) on 20/07/2026 at 22:31..
[CIR] Refactor lowerUnion so unions get laid out consistently (#210709)

Perennial and a few other examples I came up with showed some situations
where we were bad at layout in CIR for unions. Sometimes we'd omit the
required fields, or miscalculate the storage type, or just not constant
init it correctly. This is mostly because we copy/pasted our
implementation from classic-codegen, but have different invariants.

This patch consistently adds ALL fields to the cir::UnionType, so we
always represent with all, which is an assumption we make elsewhere.

The lowerUnion function is significantly rewritten as the previous
version had a lot of interdepencies between loop runs. This patch
separates it out in a way that has less cyclic complexity which will
hopefully be more readable with minor/little compile-time impact.

This maintains the non-virtual-base functionality as well, though it
does it by collecting the fields like we do for the normal union case,
then just erases them. This greatly simplifies the calculation of
storageType, so it seems worth it.

Additionally, it fixes the constant layout of a null union, which got
the field count wrong in any non-trivial cases.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e8f7d45fa98822b9ea2828d53c8a66b70903db3c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.