[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 f61499bff6880928ed0a3f11f79086943be16b8f to 95ffe166e19a5aaffa583fe5944fa0e9103d5dda
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 1c7c783ba262a9ce9d6e5c070f0d7fb85125cedd by GitHub (on behalf of Mayank) on 22/07/2026 at 11:25..
[Docs] Remove dead Phabricator link from DeveloperPolicy (#210934)

The Phabricator committing-a-change anchor no longer resolves since
Phabricator has been discontinued, so drop the reference and keep the
GitHub Issues guidance for linking reviewed/closed bugs.
https://invent.kde.org/qt/clang/llvm-project/-/commit/1c7c783ba262a9ce9d6e5c070f0d7fb85125cedd

Git commit 88840f264de6e0e6548219429ff62b3354db5210 by GitHub (on behalf of Ayokunle Amodu) on 22/07/2026 at 11:30..
[CIR][CUDA] Add support for scoped NVVM atomic builtins (#210863)

Adds codegen support for the block and system-scoped NVVM atomic
builtins: add, and, or, xor, min, max, inc and dec.

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/88840f264de6e0e6548219429ff62b3354db5210

Git commit 31810a1d28e966fe757e5221c41c0610dc9c1203 by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 11:44..
AMDGPU: Refactor checkVOPDRegConstraints (#196514)
https://invent.kde.org/qt/clang/llvm-project/-/commit/31810a1d28e966fe757e5221c41c0610dc9c1203

Git commit 05daf2a85768d51dbe96953c5704dea1e45fe0b3 by GitHub (on behalf of Paul Walker) on 22/07/2026 at 11:52..
[LLVM][AArch64TargetTransformInfo] Fix typos in SVEIntrinsicInfo. (#211230)

Correct Propery->Property and sprinkle a couple of extra comments.
https://invent.kde.org/qt/clang/llvm-project/-/commit/05daf2a85768d51dbe96953c5704dea1e45fe0b3

Git commit 3ac7573589eaa2d3ea107285ca10e0f52cbfbcfd by GitHub (on behalf of Jannick Kremer) on 22/07/2026 at 12:04..
[libclang/python] Remove CompletionChunk.isKind methods (#210678)

This completes the third step of
https://github.com/llvm/llvm-project/issues/156680
This change is a follow-up to
https://github.com/llvm/llvm-project/pull/177854, following the release
branching, to ensure a one release-cycle deprecation period.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3ac7573589eaa2d3ea107285ca10e0f52cbfbcfd

Git commit 3407cd1892b8a64b6f267e78b351b1415d2bafa5 by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 12:09..
AMDGPU: Validate VOPD/VOPD3 physical source registers against operand RC (#196515)

Replace isVGPR checks with isValidVOPDSrc that validates physical source
registers against the actual combined VOPD/VOPD3 instruction's operand
register classes. Now we also validate operands for VOPD instructions.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3407cd1892b8a64b6f267e78b351b1415d2bafa5

Git commit 3369ddd384780f2ae60c3b20264735c2823d261c by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 12:10..
AMDGPU: Reland: Codegen for v_dual_dot2acc_f32_f16/bf16 from VOP3 (#196516)

For V_DOT2_F32_F16 and V_DOT2_F32_BF16 add their VOPDName and mark
them with usesCustomInserter which will be used to add pre-RA register
allocation hints to preferably assign dst and src2 to the same physical
register. When the hint is satisfied, canMapVOP3PToVOPD recognises the
instruction as eligible for VOPD pairing by checking if it is VOP2 like:
dst==src2, no source modifiers, no clamp, and src1 is a register.
Mark both instructions as commutable to allow a literal in src1 to be
moved to src0, since VOPD only permits a literal in src0.

Original patch had a bug where it did not check if physical src
registers match register class of appropriate operand in fullVOPD
instructions, check is now done via isValidVOPDSrc.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3369ddd384780f2ae60c3b20264735c2823d261c

Git commit bad9ad339743d262793c15fddfab90bd976e531b by GitHub (on behalf of Matthew Blewitt) on 22/07/2026 at 12:17..
[AArch64][SVE] Fix v16i8 -> v2i64 partial_reduce for VL > 128 (#204938)

A fixed-length `llvm.vector.partial.reduce.add` reducing `<16 x i8>`
into `<2 x i64>` is lowered on `+sve` by converting the reduction to a
scalable one and finishing with `convertFromScalableVector`. The i8 ->
i64 fold splits the `(nx)v4i32` dot before converting it back to fixed
length, but splitting a scalable container is not equivalent to
splitting the fixed vector it holds: at vscale=2 an `nxv4i32` container
splits into two `nxv2i32`, each holding four i32s, not the two-lane
halves of the underlying `v4i32`. The high partial sums land in lanes
that `convertFromScalableVector` then discards, so any runtime VL > 128
silently drops them — on a 256-bit machine (e.g. Neoverse V1) exactly
half the result is lost (#204939; downstream miscompile
rust-lang/rust#158144).

Convert the dot back to a fixed-length i32 vector before splitting, so
the split, widen and accumulate all happen in fixed length and no lanes
are dropped. The fixed dot width is derived from the result (two i32
lanes per i64 result lane) so the wider, VL-pinned `<4 x i64> <- <32 x
i8>` reduction — which also reaches this fold on plain SVE — lowers
correctly. This is the i64 sibling of the `v16i8 -> v2i32` case fixed in
#177119 (issue #176954); the fixed-length support was introduced in
#142032.
https://invent.kde.org/qt/clang/llvm-project/-/commit/bad9ad339743d262793c15fddfab90bd976e531b

Git commit f5430c58d13c2e763b62d52e35e0e2859e57ff66 by GitHub (on behalf of Michael Halkenhäuser) on 22/07/2026 at 12:24..
[NFC] Reword comment per post-merge feedback on #211031 (#211234)

As discussed with krzysz00
https://invent.kde.org/qt/clang/llvm-project/-/commit/f5430c58d13c2e763b62d52e35e0e2859e57ff66

Git commit 29575a3460b43132c7d973b502830897b02874a9 by GitHub (on behalf of syhhyl) on 22/07/2026 at 12:25..
[MachO] Preserve weak linkage for aliases (#198148)

Mach-O aliases with weak or linkonce linkage were emitted as weak
references, which is appropriate for undefined references but not for
alias definitions. Emit Mach-O aliases through the same linkage path as
other global definitions so weak aliases get .weak_definition.

When writing aliased symbols, keep the aliasee flags and include the
alias symbol's own flags so N_WEAK_DEF is preserved in the Mach-O n_desc
field.

Fixes #111321

#196047 was closed as a duplicate of #111321.
https://invent.kde.org/qt/clang/llvm-project/-/commit/29575a3460b43132c7d973b502830897b02874a9

Git commit 6f47123da4209cad8e043279d8572760a3e59af6 by GitHub (on behalf of Jay Foad) on 22/07/2026 at 12:26..
[AMDGPU] Remove some unneeded waits for VA_VDST (#210741)

Add some internal consistency checks on WaitcntBrackets before and after
processing each instruction. In particular, check that VA_VDST_RD and
VA_VDST_WR agree on the range of values of the underlying hardware
counter. Fix some cases where this was not true, which has the effect of
removing some unneeded waits for VA_VDST where it was already known to
be zero.
https://invent.kde.org/qt/clang/llvm-project/-/commit/6f47123da4209cad8e043279d8572760a3e59af6

Git commit 04327b1e595ac915a196340a37f48c16e6f489bc by GitHub (on behalf of Vladimir Vereschaka) on 22/07/2026 at 12:37..
Revert "[libc++][test] XFAIL `text/text_encoding/environment.pass.cpp` test on Armv7/Linux Ubuntu targets." (#211112)

Reverts #206188

XFAIL'ed wrong test
https://invent.kde.org/qt/clang/llvm-project/-/commit/04327b1e595ac915a196340a37f48c16e6f489bc

Git commit ef13d4687b5fb29d8e162f4c4cce5b3c7cd58570 by GitHub (on behalf of Nerixyz) on 22/07/2026 at 12:43..
[CodeView] Encode signed enumerators as signed integers (#210352)

In #210338 I noticed that enumerator constants were always encoded as
unsigned integers. MSVC (usually) uses the correct signedness
(comparison: https://godbolt.org/z/rbrchhjTT). It only uses signed
values for 64 bit unsigned values (probably a bug).

We know the signedness in `DIEnumerator` and we should use it.

The change in `llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp` was
needed, because the max/min values need all the bits to encode their
value - otherwise we hit an assertion.

This also encodes the saturated value (`INT64_MIN = 0x8000000000000000`)
in the int128 test correctly (initially added in
https://reviews.llvm.org/D105320).
https://invent.kde.org/qt/clang/llvm-project/-/commit/ef13d4687b5fb29d8e162f4c4cce5b3c7cd58570

Git commit 08f3f01c43819979601ebf7618b657567ed9871f by GitHub (on behalf of Vladislav Dzhidzhoev) on 22/07/2026 at 12:54..
[DirectX][MC] Fix dangling StringRefs in DXContainerWriterTest (#211227)

Building Parts from SmallString elements invalidated StringRefs on
vector reallocation, so the test was dying under MSan before the
expected fatal error.

Fixes buildbot failures
https://github.com/llvm/llvm-project/pull/204903#issuecomment-5039669504.
https://invent.kde.org/qt/clang/llvm-project/-/commit/08f3f01c43819979601ebf7618b657567ed9871f

Git commit 12e6cd9ea166b0ed09c83aae42cb83231461f6f2 by GitHub (on behalf of Nikita Popov) on 22/07/2026 at 12:55..
[PPC] Constrain register in VSPLT of XXSLDWI transform (#208005)

XXSLDWI takes a vsrc register, but the VSPLT opcodes only take vrrc.
vrrc is a subset of vsrc, so fix this by constraining the register
class.
https://invent.kde.org/qt/clang/llvm-project/-/commit/12e6cd9ea166b0ed09c83aae42cb83231461f6f2

Git commit 6ac80addbe9c12dd0a110a76fa2c09eb53764e64 by GitHub (on behalf of Charles Zablit) on 22/07/2026 at 12:56..
[lldb-dap][VSCode][Windows] check that --check-python is available before using it (#211048)

`--check-python` is only available as of lldb-dap 23. Running that check
regardless of it's availability causes the extension to fail to start if
it's not available.

Check that the flag is available first by searching for it in the
`--help`. Checking for a version number would be a cleaner approach but
I reckon it would fail for local builds.

Fixes https://github.com/llvm/llvm-project/issues/210879
https://invent.kde.org/qt/clang/llvm-project/-/commit/6ac80addbe9c12dd0a110a76fa2c09eb53764e64

Git commit 6abffd7c22f7e1c0cf07ad6763495e098f580d10 by GitHub (on behalf of Keshav Vinayak Jha) on 22/07/2026 at 12:59..
[SelectionDAG] Allow constant UREM decomposition without high multiply (#210232)

`SelectionDAG` may introduce a wide constant UREM when promoting funnel
shifts on irregular integer types. On AMDGPU, an i65 `fshl` becomes an
i128 remainder by 65; the existing decomposition is rejected because i64
`MULHU` and `UMUL_LOHI` are unavailable, after which legalization
attempts the unsupported `__umodti3` libcall.

Allow the existing decomposition when the wide UREM libcall is
unavailable and half-width `UDIVREM` is legal or custom. This lets
AMDGPU finish through its custom i64 `UDIVREM` lowering while preserving
the existing libcall preference for targets with a usable wide libcall.
Fixes #197949

Signed-off-by: Keshav Vinayak Jha <[email protected]>
Co-authored-by: Codex <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/6abffd7c22f7e1c0cf07ad6763495e098f580d10

Git commit 9d3fe6cf06f1c20a337ce546115523bf1db925de by GitHub (on behalf of Stephen Long) on 22/07/2026 at 13:03..
[mlir][sme] Add e2e test for lowering mmt4d to sme (#208226)

Lowers mmt4d to arm sme with hoisting the load/store of the accumulator
out of the K-loop. Similar to ArmSVE/pack-unpack-mmt4d.mlir with some
additional changes.

Appreciate @banach-space for helping me out with this (#201562)

Assisted-by: Claude

---------

Co-authored-by: Stephen Long <[email protected]>
Co-authored-by: Ege Beysel <[email protected]>
Co-authored-by: Andrzej Warzyński <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/9d3fe6cf06f1c20a337ce546115523bf1db925de

Git commit e757e814e30741d6eae6044cea22dca78baa4edf by GitHub (on behalf of Luke Lau) on 22/07/2026 at 13:05..
[AMDGPU] Cost i1 insertelements as free (#211246)

From the discussion in
https://github.com/llvm/llvm-project/pull/206697#discussion_r3503977327

Booleans are free to scalarize in AMDGPU, so mark insertelements into i1
vectors as free. This removes some of the AMDGPU diffs from #206697

This doesn't mark extractelements as free since that ends up flattening
the costs for `vector.reduce.or/and`.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e757e814e30741d6eae6044cea22dca78baa4edf

Git commit d9cf5980b7788a8840d69c6e4abb9092a35997bc by GitHub (on behalf of Shilei Tian) on 22/07/2026 at 13:12..
[Clang][LTO] Assign GUIDs after post-opt bitcode linking (#211155)

Run AssignGUIDPass after LinkInModulesPass so newly linked globals have
GUIDs before LTO summary emission.

Fixes LCOMPILER-2475.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d9cf5980b7788a8840d69c6e4abb9092a35997bc

Git commit 150aa53d48aa6fdde26e00ea118582eb949f0dca by GitHub (on behalf of Alexander Kornienko) on 22/07/2026 at 13:29..
Revert "[Clang] Rebuild lambda captures in default member initializers while skipping body (#196597)" (#211001)

This reverts commit 50f30bedaa81919915049474f4350ef19c36b7ca. The commit
causes a crash in clang:
https://github.com/llvm/llvm-project/pull/196597#issuecomment-4997866573
https://invent.kde.org/qt/clang/llvm-project/-/commit/150aa53d48aa6fdde26e00ea118582eb949f0dca

Git commit 6b52427b6864cc553d9506c39b7f1bfde5f1e170 by GitHub (on behalf of Paul Walker) on 22/07/2026 at 13:33..
[LLVM] Remove SVEIntrinsicOpts pass. (#210368)
https://invent.kde.org/qt/clang/llvm-project/-/commit/6b52427b6864cc553d9506c39b7f1bfde5f1e170

Git commit fdae383abe622856b2178b1eb2d6f1c454acf176 by GitHub (on behalf of Madhur Amilkanthwar) on 22/07/2026 at 13:44..
[SLP][modularisation][NFC] Extract same-opcode compatibility helpers (1/3) (#210923)

Move the SLP same-opcode compatibility primitives out of
SLPVectorizer.cpp into a new private module
SLPVectorizer/SLPCompatibilityAnalysis.{h,cpp}:

  * isValidForAlternation
  * BinOpSameOpcodeHelper

Part of the effort to modularize SLPVectorizer.cpp. See the RFC:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
https://invent.kde.org/qt/clang/llvm-project/-/commit/fdae383abe622856b2178b1eb2d6f1c454acf176

Git commit 84301dd17f4261b4b8c293cd21b6641b3fdc0add by GitHub (on behalf of Thibault Monnier) on 22/07/2026 at 13:57..
[Clang][Lexer] Reland "Detect SSE4.2 availability at runtime in fastParseASCIIIdentifier" (#180631)

This PR reopens #175452 after it was merged then reverted by #177322
because of compilation failures and compatibility issues.

This change attempts to maximize usage of the SSE fast path in
`fastParseASCIIIdentifier`.

If the binary is compiled with SSE4.2 enabled, or if we are not
compiling for x86, then the behavior is the exact same, ensuring we have
no regressions.
Otherwise, we compile both the SSE fast path and the scalar loop. At
runtime, we check if SSE4.2 is available and dispatch to the right
function by using `__builtin_cpu_supports`. If it _is_ available, this
allows a net performance improvement. Otherwise, there's a very slight
but negligible regression... I believe that's perfectly reasonable for a
non-SSE4.2-supporting processor.

The benchmark results are available here:
https://llvm-compile-time-tracker.com/compare.php?from=3192fe2c7b08912cc72c86471a593165b615dc28&to=8960c57a2e5880616d2dd549f8422ca91c864e86&stat=instructions%3Au.
https://invent.kde.org/qt/clang/llvm-project/-/commit/84301dd17f4261b4b8c293cd21b6641b3fdc0add

Git commit 75e637791bff7b6c0c11754fb29991b6b140ee2c by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 14:03..
[mlir][SPIR-V] Lower memref.copy to spirv.CopyMemory (#206016)
https://invent.kde.org/qt/clang/llvm-project/-/commit/75e637791bff7b6c0c11754fb29991b6b140ee2c

Git commit 3a1f2e1da409a473b4b357810c4a37fd178aa3ca by GitHub (on behalf of Jonas Devlieghere) on 22/07/2026 at 14:09..
[lldb][test] Skip stop-reason tests unsupported on WebAssembly (#211266)

TestThreadStates::test_process_state expects a signal stop reason after
"process interrupt", but the trap from the single step used to step off
the breakpoint is reported as a trace stop. It is already skipped on
Linux and Darwin for the same reason.

TestBuiltinDebugTrap expects to continue past __builtin_debugtrap, but
on WebAssembly that lowers to the unreachable instruction, a fatal trap
that cannot be resumed.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3a1f2e1da409a473b4b357810c4a37fd178aa3ca

Git commit 8ad500f6f7d7347ca097d9c442fbf4a0f604dc26 by GitHub (on behalf of Tom Stellard) on 22/07/2026 at 14:10..
workflows/release-documentation: Add missing checkout (#211082)

We need to checkout the upload-release-artifact composite action before
using it.
https://invent.kde.org/qt/clang/llvm-project/-/commit/8ad500f6f7d7347ca097d9c442fbf4a0f604dc26

Git commit 02c51adb8ff2b2b4c1041ac9f9d260c20ef77cc4 by GitHub (on behalf of Nikolas Klauser) on 22/07/2026 at 14:16..
[libc++] Remove redundant benchmarks for lexicographical_compare_three_way (#210268)

We already test the `_slow_path` and `_fast_path` functions through the
generic `BM_lexicographical_compare_three_way`. We don't need to
benchmark them again.
https://invent.kde.org/qt/clang/llvm-project/-/commit/02c51adb8ff2b2b4c1041ac9f9d260c20ef77cc4

Git commit 155689a48e43878d2252cd39037909e87b018103 by GitHub (on behalf of Vito Secona) on 22/07/2026 at 14:22..
[mlir][SPIRV] Add SPIRVToLLVM conversion for selection with yielding values (#210600)

The current SPIRVToLLVM conversion for SelectionOp does not handle merge
blocks with yielding values. This change implements that by adding
arguments to the continue block in the SelectionPattern.

Closes #204714
https://invent.kde.org/qt/clang/llvm-project/-/commit/155689a48e43878d2252cd39037909e87b018103

Git commit c53e2a89a48b312901eb70141d5a4e99ed1c532d by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 14:32..
[AMDGPU] Flush denormal results when constant folding amdgcn.rcp (#203566)

v_rcp_f32/f64 flush denormal results to zero per the function
denormal-output mode, but the constant fold emitted the exact
reciprocal, giving a denormal the instruction would never produce
https://invent.kde.org/qt/clang/llvm-project/-/commit/c53e2a89a48b312901eb70141d5a4e99ed1c532d

Git commit 1654b66a6d797371564381ad4e109c994f4f764f by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 14:33..
[NFC][SPIR-V] Reuse PartialOrderingVisitor across sortSelectionMerge calls (#211200)
https://invent.kde.org/qt/clang/llvm-project/-/commit/1654b66a6d797371564381ad4e109c994f4f764f

Git commit b9e3e6546dcb4b33d023b7a336163d5650cda9d4 by GitHub (on behalf of Yuxuan Chen) on 22/07/2026 at 14:39..
[Clang][coro] Fix `coro.free` in `.resume` clones with `[[clang::coro_await_elidable]]` (#207799)

Fixes https://github.com/llvm/llvm-project/issues/188230

CoroAnnotationElide rewrites annotated safe calls to the `.noalloc`
variant. The noalloc frame is caller-owned, but its `.resume` clone is
shared with ordinary heap-allocated instances.

With a `suspend_never` final suspend, normal resumption falls through to
the `coro.free` deallocation path. Regular frontend cleanup has already
run before this point. `coro.free` must therefore produce the frame
pointer for a heap instance and null for a `.noalloc` instance.

Use the frame destroy slot as a per-instance allocation tag. Cache its
value at resume entry, before user code can resume and release the
enclosing caller frame, then compare it with the cleanup clone. Replace
each `coro.free` result with the frame pointer for a heap instance and
null for an elided instance.

Update the CoroSplit and Clang CodeGen checks to cover the conditional
deallocation and the original suspend_never final-suspend shape.

Assisted-By: Codex GPT 5.5
https://invent.kde.org/qt/clang/llvm-project/-/commit/b9e3e6546dcb4b33d023b7a336163d5650cda9d4

Git commit fed8a6f2e38bd82835ddb651305782db6b62f326 by GitHub (on behalf of Ebuka Ezike) on 22/07/2026 at 14:40..
[lldb-dap] Migrate DAP cancel and commands tests (#211044)
https://invent.kde.org/qt/clang/llvm-project/-/commit/fed8a6f2e38bd82835ddb651305782db6b62f326

Git commit 34436db53d3e4ad36e86019109fb5ceee9bb4d8c by GitHub (on behalf of Rahul) on 22/07/2026 at 14:40..
[clang] Emit diagnostic for typedef+auto missed case in C++98/C23 (#210141)

CheckTypeSpec() converted 'auto' to a storage-class specifier without
checking whether 'typedef' was already set. [dcl.stc]p1 unconditionally
forbids typedef alongside any storage-class specifier regardless of C++
version.

This change add the check for tydef in the code handling auto.
https://invent.kde.org/qt/clang/llvm-project/-/commit/34436db53d3e4ad36e86019109fb5ceee9bb4d8c

Git commit 2f5771c8ecc5a9edd4469e08255402436dc7dd31 by GitHub (on behalf of Spencer Bryngelson) on 22/07/2026 at 14:49..
[openmp][cmake] Match GPU triples consistently in openmp/module (#211138)

Fixes #211135.

`openmp/module/CMakeLists.txt:29` gates the GPU-only Fortran compile
options on `"^amdgcn|^nvptx"`, while `openmp/CMakeLists.txt:176-177`
selects host-vs-device layout for the same build using
`"^amdgpu|^amdgcn|^nvptx|^spirv64"` against both
`LLVM_DEFAULT_TARGET_TRIPLE` and `CMAKE_CXX_COMPILER_TARGET`.

All four offload cache files use the triple `amdgpu-amd-amdhsa`, which
`^amdgcn` does not match, so `-nogpulib -flto` are silently not applied
to `libomp-mod` in the recommended AMDGPU offload configurations.

Compute the test once as `LIBOMP_TARGET_IS_GPU` in
`openmp/CMakeLists.txt` and use it at both sites, rather than
duplicating a widened regex. The conditions differ, not just the
patterns: copying the regex alone would leave a build that sets
`CMAKE_CXX_COMPILER_TARGET` without `LLVM_DEFAULT_TARGET_TRIPLE` still
taking the device path in `openmp/` while `libomp-mod` misses the flags.
`libomp-mod` compiles Fortran, so `CMAKE_Fortran_COMPILER_TARGET` is
also consulted; neither site did before.

Evaluated with CMake's regex engine:

| triple | before | after |
|---|---|---|
| `amdgpu-amd-amdhsa` | 0 | 1 |
| `amdgcn-amd-amdhsa` | 1 | 1 |
| `nvptx64-nvidia-cuda` | 1 | 1 |
| `spirv64-amd-amdhsa` | 0 | 1 |
| `x86_64-unknown-linux-gnu` | 0 | 0 |

`^spirv64` only brings `module/` in line with
`openmp/CMakeLists.txt:176`, which already routes spirv64 to `device/`.
Host builds are unaffected.

Roughly five other sites carry the same `amdgcn`-only pattern
(`offload/CMakeLists.txt:30`, `flang-rt/CMakeLists.txt:126`,
`flang-rt/lib/runtime/CMakeLists.txt:317`,
`flang-rt/cmake/modules/AddFlangRT.cmake:298`,
`cmake/Modules/GetToolchainDirs.cmake:118`) and are left for a
follow-up.

No test: configure-time logic, no test mechanism exists in `openmp/`.

This affects performance-critical applications on large AMD GPU
supercomputers, including [MFC](https://github.com/MFlowCode/MFC).

All numbers above come from the validated reproducers included with this
report and are independently reproducible; they stand on their own.

This was found and root-caused with the assistance of AI tools.
https://invent.kde.org/qt/clang/llvm-project/-/commit/2f5771c8ecc5a9edd4469e08255402436dc7dd31

Git commit 958f9ff83ea9aa071df1c84c6a467b17d6b8dadf by GitHub (on behalf of Alexey Bataev) on 22/07/2026 at 14:53..
[SLP][NFC]Add a test for mixed fma/fmuladd scalars, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/211280
https://invent.kde.org/qt/clang/llvm-project/-/commit/958f9ff83ea9aa071df1c84c6a467b17d6b8dadf

Git commit 77981e39b5fa26ab43a3a3611fbb247321e33d78 by GitHub (on behalf of Trung Nguyen) on 22/07/2026 at 14:56..
[ARM] Fix chkstk definition (#210940)
https://invent.kde.org/qt/clang/llvm-project/-/commit/77981e39b5fa26ab43a3a3611fbb247321e33d78

Git commit 15e5b04009155408b559cda5272dc95ac979ea85 by GitHub (on behalf of Fateme Hosseini) on 22/07/2026 at 15:04..
[Hexagon] Drop NodeAddr::operator<, fix bad asserts directives (#210192)

Removed NodeAddr::operator< that was added by mistake in #207082.
Nothing needed it once HexagonPostRAHandleQFP.cpp's containers went back
to keying on NodeId.
Also removed the contradictory UNSUPPORTED+REQUIRES asserts in two
tests; subreg2 still crashes so it's XFAIL'd for now.
https://invent.kde.org/qt/clang/llvm-project/-/commit/15e5b04009155408b559cda5272dc95ac979ea85

Git commit 930cd75aa341776565af08cc098c9270e9a16623 by GitHub (on behalf of Matsu) on 22/07/2026 at 15:05..
[mlir][OpenACC] Support static multi-rank OpenACC array reduction accumulators (#210853)

Example:
```fortran
!$acc parallel loop reduction(+:a)
do i = 1, n
  a(i,:) = a(i,:) + input(i,:)
end do
```

In this code, the reduction accumulator can have rank greater than one,
but GPU lowering assumes rank one.

Fix: initialize rank-N accumulators with nested loops and delinearize
flattened indices before loading, reducing, and storing each element.
https://invent.kde.org/qt/clang/llvm-project/-/commit/930cd75aa341776565af08cc098c9270e9a16623

Git commit da26ba882abda45fa8e4799470730ceb0cbfd5a8 by GitHub (on behalf of Adrian Prantl) on 22/07/2026 at 15:25..
[LLDB] Disable Foundation test on newer versions of macOS (#211127)

On macOS >= 27 Foundation caches the path of a URL-initialized
NSBundle as a native Swift String. We cannot format that without the
Swift language plugin.

Add a requiresSwiftPlugin() decorator in decorators.py and use it for
the NSBundle formatter test. It expects failure only when LLDB lacks the
Swift plugin, and only on Apple targets at or after a given OS version
(checked against the target platform, so it is correct for
iOS/tvOS/watchOS/visionOS as well as macOS). Builds with the plugin are
expected to pass.

Assisted-by: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/da26ba882abda45fa8e4799470730ceb0cbfd5a8

Git commit 9ca28bddf624eefd9ebd29a5296b4c6d979d88bb by GitHub (on behalf of Charles Zablit) on 22/07/2026 at 15:28..
[RuntimeDyld][COFF] Apply addend for IMAGE_REL_AMD64_SECREL (#211015)

`IMAGE_REL_AMD64_SECREL` currently falls through the default case. Its
`Addend` is built using the target symbol's section offset. This is
incorrect: for a SECREL against a section symbol (offset 0), the real
value is stored as the addend in the relocated field. This results in
the SECREL writer always writing 0, which is wrong.

This patch reads the 4-byte field addend for SECREL, as `REL32` and
`ADDR64` already do. It also adds a test which fails without this.

Source: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
https://invent.kde.org/qt/clang/llvm-project/-/commit/9ca28bddf624eefd9ebd29a5296b4c6d979d88bb

Git commit 0769e6d05a0fa7bc8e9b1a453ec4dc62ce5bd8f4 by GitHub (on behalf of Scott Todd) on 22/07/2026 at 15:31..
[offload-arch] Fix amdgpu HIP DLL search path on Windows (#209898)

## Motivation

This follows up on https://github.com/llvm/llvm-project/pull/194063 to
fix https://github.com/ROCm/TheRock/issues/6571, where `offload-arch`
distributed as part of ROCm has been failing with:
```diff
 D:\projects\TheRock (main -> upstream)
 λ .\build\dist\rocm\lib\llvm\bin\offload-arch.exe --verbose
 Found HIP runtime: D:/projects/TheRock/build/dist/rocm/bin/amdhip64_7.dll
-note: priming LoadLibraryExW failed for D:/projects/TheRock/build/dist/rocm/bin/amdhip64_7.dll (error 126)
 Failed to load D:/projects/TheRock/build/dist/rocm/bin/amdhip64_7.dll: D:/projects/TheRock/build/dist/rocm/bin/amdhip64_7.dll:  Can't open: The specified module could not be found.  (0x7E)
 Failed to 'dlopen' libcuda.so.1
 Unable to load library 'libze_loader.so': libze_loader.so: Can't open: The specified module could not be found.  (0x7E)
```

## Fix details

The relevant code path in offload-arch is this:
```c++
int printGPUsByHIP() {
  auto [DynamicHIPPath, IsFallback] = findNewestHIPDLL();
  // Prime DLL load so transitive deps resolve from its directory.
  primeLibraryLoad(DynamicHIPPath);
  // ... then load the library and use it
```

Here's where the relevant files are located on disk in both build and
package directories:
```
rocm/
    bin/
        amdhip64_7.dll
        rocm_kpack.dll    (amdhip64_7.dll newly depends on this!)
    lib/
        llvm/
            bin/
                offload-arch.exe
```

The documentation for the
[`LoadLibraryExW`](https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexw)
API that this code was calling says:
> If the string specifies a fully qualified path, the function searches
only that path for the module. When specifying a path, be sure to use
backslashes (`\`), not forward slashes (`/`). For more information about
paths, see [Naming Files, Paths, and
Namespaces](https://learn.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file).

the `primeLibraryLoad()` function has been receiving a path with forward
slashes in it though, leading to the `error 126`.

## Testing performed

* Built `offload-arch` with and without this fix and ran it locally on
Windows
* Added new unit tests asserting that `LoadLibraryExW` is called with
backslashes and not forward slashes (we could add more "real" tests that
actually exercise library loading but I'm not sure if LLVM unit tests
are the right spot for that)
* Ran a "real" test that uses `offload-arch` to list GPUs, compile some
code, and run a printf function over in TheRock:
https://github.com/ROCm/TheRock/blob/a20ab791d74c94354704b791a85343babb83409b/tests/test_rocm_sanity.py#L85-L154
(this test was disabled back in
https://github.com/ROCm/TheRock/pull/5346 due to suspected machine
issues, now we'll be able to re-enable it)
https://invent.kde.org/qt/clang/llvm-project/-/commit/0769e6d05a0fa7bc8e9b1a453ec4dc62ce5bd8f4

Git commit 8aa808457c6aeba25ec0e17139c3fcab59923c3c by GitHub (on behalf of Xing Xue) on 22/07/2026 at 15:34..
[libunwind][AIX] Handle VAPI-based return addresses in stack unwinding for LLU (#209280)

In AIX's implementation of LLU (Live Library Update), the caller of a
Virtual API (VAPI) interface instead calls VAPI glue and the
implementation for a VAPI function is entered from the VAPI glue. If a
VAPI is not already active on the thread, the VAPI calls the
implementation of the VAPI function with the link register (LR) value
set to a return address in the VAPI glue. In this case, the LR (return
address) value on entry to the VAPI glue is saved in the VAPI control
block. This PR checks whether the return address in a stack frame falls
within the VAPI address range. If it does, the unwinder retrieves the LR
value from the VAPI control block and uses it as the return address
during stack unwinding. In addition, before transferring control to a
landing pad, this PR executes the VAPI return glue to clear the VAPI
control block if the VAPI glue was used.

---------

Co-authored-by: Hubert Tong <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/8aa808457c6aeba25ec0e17139c3fcab59923c3c

Git commit eec8ff8aee140d9098480ec98c421f43557e1623 by GitHub (on behalf of Nico Weber) on 22/07/2026 at 15:38..
[gn build] Port c2a39ea72dc1 (#211292)
https://invent.kde.org/qt/clang/llvm-project/-/commit/eec8ff8aee140d9098480ec98c421f43557e1623

Git commit aee6075b75f6d26684215f7353270a3e701d5288 by GitHub (on behalf of Nico Weber) on 22/07/2026 at 15:40..
[gn build] Port fdae383abe62 (#211293)
https://invent.kde.org/qt/clang/llvm-project/-/commit/aee6075b75f6d26684215f7353270a3e701d5288

Git commit 06a6c5eed88dd449576ad001a7d7cd6536b20b10 by GitHub (on behalf of Nico Weber) on 22/07/2026 at 15:41..
[gn] port acb8fbe83ff12 more (#211295)
https://invent.kde.org/qt/clang/llvm-project/-/commit/06a6c5eed88dd449576ad001a7d7cd6536b20b10

Git commit 6f3328e869b4d3f11d1b37808fbffab6d822d9aa by GitHub (on behalf of Nikolas Klauser) on 22/07/2026 at 15:46..
[libc++] Don't add #pragma clang attribute with GCC (#206989)

GCC doesn't support `#pragma clang attribute`, which causes a bunch of
diagnostics. Since we have it behind a macro anyways we can simply
define the macro as empty with GCC.
https://invent.kde.org/qt/clang/llvm-project/-/commit/6f3328e869b4d3f11d1b37808fbffab6d822d9aa

Git commit 0590a36b312b950cb16dadfe349d07e73be1809a by GitHub (on behalf of adams381) on 22/07/2026 at 15:52..
[CIR] Convert byval/sret/byref arg-attr types when lowering to LLVM (#210764)

The CallConvLowering pass lowers an indirectly-passed aggregate to a pointer argument and records the pointee record type on the `llvm.byval`, `llvm.sret`, or `llvm.byref` argument attribute.  That type payload is still a CIR record after the pass runs, so once the module reaches the LLVM dialect and is translated to LLVM IR, the translation hits a CIR type inside the attribute and fails.

LowerToLLVM already routes every operand and result type through the type converter.  It now does the same for the type carried by those three argument attributes, in the attribute lowering shared by the function definition and by the call and invoke sites.  With the conversion in place, a byval or sret parameter translates to `byval(%struct.X)` / `sret(%struct.X)` carrying the lowered LLVM struct type, and byref does the same.  CallConvLowering does not classify `cir.try_call` yet, so no invoke carries these attributes today, but the shared path already covers the invoke once it is classified.

The test injects the three attributes directly, lowers to the LLVM dialect, and translates to LLVM IR, checking the emitted attributes carry the LLVM struct type.  It uses no aggregate classifier, so it stands alone from the x86_64 classifier stack.
https://invent.kde.org/qt/clang/llvm-project/-/commit/0590a36b312b950cb16dadfe349d07e73be1809a

Git commit 3486c5d48a78f5e132d05245f775fc6e27bdcaee by GitHub (on behalf of Caroline Newcombe) on 22/07/2026 at 15:55..
[flang] Region-based HLFIR operation for conditional expressions lowering (#194411)

Implements `hlfir.conditional`, a region-based HLFIR operation that
represents Fortran 2023 conditional expressions (10.1.2.3) with lazy
branch evaluation.
Issue #176999
Assisted-by: Claude Sonnet 4.5
https://invent.kde.org/qt/clang/llvm-project/-/commit/3486c5d48a78f5e132d05245f775fc6e27bdcaee

Git commit e2052579d43e2813d2e3429a9aa092023cbf0c5f by GitHub (on behalf of Anutosh Bhat) on 22/07/2026 at 15:57..
[MLIR][Python] Remove stale Python module naming status message (#211243)

`PYTHON_MODULE_PREFIX`, `PYTHON_MODULE_SUFFIX`, and
`PYTHON_MODULE_EXTENSION` are remnants of the previous pybind11-based
Python discovery path and are no longer populated or used by the
nanobind build.

The relevant Python SOABI is already reported through `Python3_SOABI`,
so we can remove the redundant status message, which currently prints
only empty values.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e2052579d43e2813d2e3429a9aa092023cbf0c5f

Git commit 5e860ee7025db82c1921c9e149cc8a6a68cb9909 by GitHub (on behalf of Ellis Hoag) on 22/07/2026 at 15:57..
[AArch64] Set NoPHIs for outlined functions (#209852)
https://invent.kde.org/qt/clang/llvm-project/-/commit/5e860ee7025db82c1921c9e149cc8a6a68cb9909

Git commit e0ec5391088426b55a5fe61137e1b76dd92e8c5e by GitHub (on behalf of Anutosh Bhat) on 22/07/2026 at 15:58..
[MLIR][Python] Remove stale NumPy detection message (#211235)

NumPy stopped being requested as a CMake Python component when its
unused build-time dependency was removed in #108465 . Remove the
remaining status message, which now prints empty version and include
directory values.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e0ec5391088426b55a5fe61137e1b76dd92e8c5e

Git commit 22351c74e21ff19633cc101c6d92c7c179e5a4a3 by GitHub (on behalf of Sunil Shrestha) on 22/07/2026 at 16:03..
[Flang][OpenMP] Add support for interop construct (#203959)

This adds support for the OpenMP interop construct, which enables
interoperability with foreign runtime environments (e.g., CUDA, HIP).
The init, use, and destroy action clauses are lowered from the Fortran
parse tree to MLIR interop ops and translated to the appropriate runtime
calls. The omp_lib module is extended with interop query API interfaces,
property constants, and return code constants. A semantics fix relaxes
the depend/targetsync constraint for use/destroy directives where the
interop type was established at a separate init site. Unsupported depend
clauses and prefer_type selector-list forms emit explicit diagnostics
instead of being silently dropped.

Assisted-by: Claude Opus 4.6
https://invent.kde.org/qt/clang/llvm-project/-/commit/22351c74e21ff19633cc101c6d92c7c179e5a4a3

Git commit 65c377bfc5c297cc9477369407790282abb5db51 by GitHub (on behalf of Alexander Richardson) on 22/07/2026 at 16:10..
[MC][NFC] Share some code between MasmParser and AsmParser

Factor out printIncludeStackForDiagnostic() to SourceMgr in preparation
for a follow-up commit that changes the output here. This avoids needing
to update both of them. Also add two more tests for the current output.

Pull Request: https://github.com/llvm/llvm-project/pull/210731
https://invent.kde.org/qt/clang/llvm-project/-/commit/65c377bfc5c297cc9477369407790282abb5db51

Git commit 4e0a25590ef9770f6dcee407a92980b3489b414e by GitHub (on behalf of Joseph Huber) on 22/07/2026 at 16:11..
[LLVM] Remove 'LLVM_LIBC_GPU_BUILD' logic (#211265)

Summary:
This is a holdover from how we used to handle this stuff. We should just
dirctly check the triple for setting the cross-compiling emulator and we
can directly introspect into the  build tree for the lit config like we
already do for flang-rt.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4e0a25590ef9770f6dcee407a92980b3489b414e

Git commit f38a23b66886cdcc79d986339687a9fb84003314 by GitHub (on behalf of Mircea Trofin) on 22/07/2026 at 16:21..
Exclude another coro test from profcheck (#211296)

Coro aren't yet fixed for profcheck.

(related: #207799)
https://invent.kde.org/qt/clang/llvm-project/-/commit/f38a23b66886cdcc79d986339687a9fb84003314

Git commit 2a874aa79690f4dda574d06aa31c16602eec422d by GitHub (on behalf of theSK2005) on 22/07/2026 at 16:28..
[AMDGPU] Move SGPR Count Queries into TargetParser (#209848)

Relocated SGPR queries from AMDGPU backend into the public TargetParser.
Part of resolving a comgr issue
(https://github.com/ROCm/llvm-project/issues/3298) to reduce
comgr-isa-metadata.def duplication.

Assisted by: Claude Code
https://invent.kde.org/qt/clang/llvm-project/-/commit/2a874aa79690f4dda574d06aa31c16602eec422d

Git commit 9d2000c24d7b5b1072e15bb083d2b76328b54763 by GitHub (on behalf of Jonas Devlieghere) on 22/07/2026 at 16:33..
[lldb][test] Skip more WebAssembly-unsupported API tests (#211305)

Skip tests that exercise features WebAssembly does not provide:
expression evaluation, registers, an ABI plugin, and unmapped memory
pages.
https://invent.kde.org/qt/clang/llvm-project/-/commit/9d2000c24d7b5b1072e15bb083d2b76328b54763

Git commit 9286c58841cb1dbebe92873afafe745d4c58868b by GitHub (on behalf of Tom Eccles) on 22/07/2026 at 16:35..
[Flang] Return APInt from getIntIfConstant (#211233)

Preserve the full bit width of integer attributes when extracting
constants from FIR values. Return llvm::APInt directly and update
fixed-width consumers to use checked signed extraction.

This avoids truncating or asserting on constants wider than 64 bits
while retaining existing fallback behavior at int64_t boundaries.

This should be NFC everywhere we didn't have a latent overflow bug. I
didn't go so far as updating the interfaces of every function built on
top of getIntIfConstant: this is mostly to make an APInt version
available because it looks useful for another PR. Fixing the builder API
to use APInt would be a larger change - let me know if anyone wants to
see that.

Assisted-by: Codex
https://invent.kde.org/qt/clang/llvm-project/-/commit/9286c58841cb1dbebe92873afafe745d4c58868b

Git commit c416cc1b3af401ebb9cc2abfc502ef84edc2297c by GitHub (on behalf of Vijay Kandiah) on 22/07/2026 at 16:36..
[flang][cuda] Fix cuf-alloc-delay for host-associated allocatables (#211103)

`cuf-alloc-delay` sinks a managed descriptor's `cuf.alloc` group
(`{cuf.alloc, fir.store, fir.declare}`) to just before its first use, to
defer the managed allocation. It special-cased the store of the descriptor
into a host-association tuple slot (`fir.store` to a `fir.llvm_ptr`): it did
not count that store (nor the call that consumes the tuple) as a use, and moved
the store along with the group. As a result, when a managed allocatable descriptor
is stored into a host-association tuple and passed to an internal procedure, the group
could be sunk **past** the internal-procedure call that reads the tuple, so the
callee observed an uninitialized descriptor. On more complex tuples, moving the
host-association store also broke SSA dominance, producing
`operand #1 does not dominate this use`.

With this PR, `findDelayTarget` now treats **every** use of the
descriptor as a real use, including the host-association store. The group is only ever sunk to
*before* the first use, and the host-association store is never moved (it reads
its own `fir.coordinate_of` slot). This keeps the descriptor initialized before
the tuple is consumed and is dominance-safe by construction.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c416cc1b3af401ebb9cc2abfc502ef84edc2297c

Git commit 743f03189fa76a5daf8211f00f98e81f18e6ecfb by GitHub (on behalf of Louis Dionne) on 22/07/2026 at 16:38..
[runtimes] LLVM 24 version bumps (#211262)

This patch bumps the version of libc++abi and libunwind, and libc++ in
the documentation.
https://invent.kde.org/qt/clang/llvm-project/-/commit/743f03189fa76a5daf8211f00f98e81f18e6ecfb

Git commit 0cd942fa1b6de94fd6d7fa7ba73f0233293115f8 by GitHub (on behalf of Adrian Prantl) on 22/07/2026 at 16:39..
[lldb] Fix Unicode code point formatting to use proper notation  (#211131)

- use uppercase hex digits

- only emit "U+" notation for valid code points (<= U+10FFFF),
zero-padded to a minimum of four digits.

rdar://173817553

Assisted-by: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/0cd942fa1b6de94fd6d7fa7ba73f0233293115f8

Git commit badd93d5dfac6eb92e9e99220be09dfdca65c9e9 by GitHub (on behalf of Amr Hesham) on 22/07/2026 at 16:41..
[CIR][NFC] Remove unreachable code and add missing NYIs (#211084)

Remove unreachable code and add missing NYIs for Matrix row and elt
https://invent.kde.org/qt/clang/llvm-project/-/commit/badd93d5dfac6eb92e9e99220be09dfdca65c9e9

Git commit 85fa1af9c39e3af2d53093ba441d3a1ebb99a9d5 by GitHub (on behalf of Alexey Bataev) on 22/07/2026 at 16:57..
[SLP] Vectorize select-addressed loads as masked-load blends

Recognize loads whose address is chosen per lane via
select(cond, A, B) and vectorize them as two masked loads blended
by a select, instead of gathering.

Fixes case 6 from #206367

Reviewers: hiraditya, RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/210455
https://invent.kde.org/qt/clang/llvm-project/-/commit/85fa1af9c39e3af2d53093ba441d3a1ebb99a9d5

Git commit 861efe03d96d93cd7e475d15bbc676f6d521f4fd by GitHub (on behalf of Hubert Tong) on 22/07/2026 at 17:08..
[libunwind][test][AIX] Add C API test for unwinding from AIX VAPI (non-signal-handler case) (#209306)

Test detection, during stepping, of the backchain mutation introduced by
a VAPI call (see https://github.com/llvm/llvm-project/pull/209280).
Further, test resumption of contexts using cursors obtained while a VAPI
is active on the thread.

Testing is done via FileCheck inspection of trace output enabled by
`LIBUNWIND_PRINT_UNWINDING=1`. When Live Library Update is not enabled,
synthetic trace output is generated by the test program itself.

---------

Assisted-by: IBM Bob
https://invent.kde.org/qt/clang/llvm-project/-/commit/861efe03d96d93cd7e475d15bbc676f6d521f4fd

Git commit 95ffe166e19a5aaffa583fe5944fa0e9103d5dda by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 17:11..
[AMDGPU] Support i16 element types for tbuffer D16 load/store (#201420)

Detect D16 by element bit width rather than matching f16 specifically,
so integer i16 elements take the same packed/unpacked path
https://invent.kde.org/qt/clang/llvm-project/-/commit/95ffe166e19a5aaffa583fe5944fa0e9103d5dda
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.