[qt/clang/llvm]: 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
Pushed by mirror-service into branch 'upstream/main'.
Changed from bd586dd26e3ba49616175c14cb2970c581fb94b7 to f180ce951b1a93c8998b029ad9b0649bb92552c8
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 08d27f08335973e084254d8c02033a322bdb3ead by GitHub (on behalf of elizabethandrews) on 06/08/2026 at 17:14..
[Clang][SPIRV] Add __spirv_event_t builtin type (#207077)
Add a new builtin type __spirv_event_t for SPIR-V targets. It represents
SPIR-V's OpTypeEvent and lowers to the target("spirv.Event") extension
type.
We would like to expose SPIR-V instructions to users via builtins (not
yet
implemented). The builtins return an event type.
Assisted by Claude Opus 4.8 for writing tests.
https://invent.kde.org/qt/clang/llvm/-/commit/08d27f08335973e084254d8c02033a322bdb3ead
Git commit a80d93f18afbd58b6700bafa7484c68e3aca34f6 by GitHub (on behalf of Colin De Vlieghere) on 06/08/2026 at 17:19..
[mlir][bufferization] Bufferize all edges to a repeated successor (#214368)
bufferizeBlockSignature only rewrote the first successor index that
matched the target block. Branch ops such as cf.cond_br can list the
same destination more than once, but the later edges were left as
tensors and broke multi-block bufferization.
Now we simply iterate the block's BlockOperands so each successor edge
is handled once.
https://invent.kde.org/qt/clang/llvm/-/commit/a80d93f18afbd58b6700bafa7484c68e3aca34f6
Git commit b870d4f83b0b98fb469e1ef5baa845f5e2e5f24a by GitHub (on behalf of Maria Fernanda Guimarães) on 06/08/2026 at 17:26..
[clangd][ParseHLSL] Fix register attribute source range for hover inside arguments (#212881)
Hovering on the slot identifier inside `register(t1)` (e.g. on `t1`)
previously produced no tooltip, only hovering on the `register` keyword
itself worked.
`HLSLResourceBindingAttr`'s `SourceRange` was zero-width: both the start
and end pointed to the start of the `register` keyword.
`ParseHLSLAnnotations` called `Attrs.addNew` with a single
`SourceLocation` instead of a full `SourceRange`. Since clangd's
`SelectionTree` only matches when the cursor falls inside an attribute's
range, a zero-width range never matched positions inside the argument.
Capture the closing `)` location before it's consumed in the
`AT_HLSLResourceBinding` case, and pass a full `SourceRange` (from the
attribute start to the closing paren) to `addNew`.
Fixes #212749
https://invent.kde.org/qt/clang/llvm/-/commit/b870d4f83b0b98fb469e1ef5baa845f5e2e5f24a
Git commit e791d91332ae094dc3b6bdd0ba227efbab941d31 by GitHub (on behalf of Petar Jovanovic) on 06/08/2026 at 17:28..
[AMDGPU] Skip s_delay_alu for WMMA C-reuse chains (#214101)
Consecutive wmma/swmmac ops accumulating into the same matrix C register
reuse the accumulator in place, so the tied srcC read is omitted and no
delay is needed. AMDGPUInsertDelayAlu did not model this and emitted an
s_delay_alu that stalls the reuse chain.
Detect a C-reuse edge (tied srcC exactly matches the previous wmma/
swmmac dest, with no intervening instruction) and skip the delay for
that operand. This applies on all wmma-capable targets (gfx11+).
https://invent.kde.org/qt/clang/llvm/-/commit/e791d91332ae094dc3b6bdd0ba227efbab941d31
Git commit 7c31d55c29ae0eb60f3ddcec5e1bf35942f6ed94 by GitHub (on behalf of Yingwei Zheng) on 06/08/2026 at 17:41..
[llubi] Fix GEP return type on the fast path (#214235)
Closes https://github.com/llvm/llvm-project/issues/214144.
https://invent.kde.org/qt/clang/llvm/-/commit/7c31d55c29ae0eb60f3ddcec5e1bf35942f6ed94
Git commit dea174bac7e37f68bb4ad5c204b06a5795b27e0f by GitHub (on behalf of Grigory Pastukhov) on 06/08/2026 at 18:28..
[clang-tidy] modernize-return-braced-init-list: skip types with an initializer_list constructor (#205440)
`modernize-return-braced-init-list` rewrites `return T(args)` to `return
T{args}`. When `T` has a `std::initializer_list` constructor this can
change behavior: per [over.match.list], list-initialization prefers
initializer-list constructors, so the braced form may call a different
constructor than the parenthesized call.
https://invent.kde.org/qt/clang/llvm/-/commit/dea174bac7e37f68bb4ad5c204b06a5795b27e0f
Git commit f696e2759fafa77bf9c0b2cc78ce007fb95c3091 by GitHub (on behalf of Kaitlin Peng) on 06/08/2026 at 18:42..
[Matrix] Implement matrix support for the `pow` intrinsic (#212514)
Closes #184513.
This PR implements the matrix api for `pow` in `HLSLintrinsics.td`, adds
matrix codegen tests, matrix sema tests, and matrix backend tests.
Assisted-by: Github Copilot
https://invent.kde.org/qt/clang/llvm/-/commit/f696e2759fafa77bf9c0b2cc78ce007fb95c3091
Git commit 38ca11fed5ec1448f16b717c2676562c7f99b969 by GitHub (on behalf of Christopher Ferris) on 06/08/2026 at 19:07..
[scudo] Add check to verify locking is correct. (#214377)
Added checks that at the end of lockSlow, the lock is held and when
doing an unlock, the lock is held.
This found a bug in primary32.h:unmapTestOnly where the lock is not
held, so fixed that.
https://invent.kde.org/qt/clang/llvm/-/commit/38ca11fed5ec1448f16b717c2676562c7f99b969
Git commit 429b2a7b3317384313000094f32e2dda7803f4fb by GitHub (on behalf of schittir) on 06/08/2026 at 19:31..
[SYCL][SPIR-V][Windows] Extend BaseSPIRTargetInfo host-adaptation for Windows support (#208196)
The existing host-adaptation mechanism in BaseSPIRTargetInfo copies type
properties from the host but has gaps causing incorrect behavior on
Windows:
1. PointerWidth/PointerAlign, SizeType, PtrDiffType, IntPtrType were not
copied from the host; derived classes hardcoded LP64 defaults.
2. getBuiltinVaListKind() returned VoidPtr unconditionally instead of
delegating to the host's va_list kind.
3. Derived-class constructors unconditionally overwrote host-adapted
values, working on Linux only by coincidence.
This patch addresses these issues by copying pointer-related types
from the host in BaseSPIRTargetInfo, delegating va_list kind to the
host,
and setting architecture-appropriate defaults in derived classes when no
host is
present or when host and device pointer widths differ.
TO-DO (follow-up PR):
Diagnose invalid host-target pairings.
https://invent.kde.org/qt/clang/llvm/-/commit/429b2a7b3317384313000094f32e2dda7803f4fb
Git commit 7220098d29a9b1a2ac4b63e3f1973ddab9041a97 by GitHub (on behalf of Yao Qi) on 06/08/2026 at 19:34..
[lldb][test] Skip the frame 0 expedite test with an out-of-tree debugserver (#214448)
`test_memory_reads_when_examining_frame0_locals` asserts that examining
frame 0's locals reads no stack memory, which only holds when
debugserver
expedites the stopped frame's stack in `jThreadsInfo`. That is
added in b631e0cbd1c9, so the assertion only holds for an in-tree
debugserver.
The GreenDragon `lldb-cmake-sanitized` bot configures with
`-DLLDB_USE_SYSTEM_DEBUGSERVER=ON`, so it tests against the debugserver
shipped in Xcode. That one predates the expedite, so test fails:
```
FAIL: test_memory_reads_when_examining_frame0_locals
AssertionError: 2 != 0 : expected NO stack memory reads for frame 0 (its
stack is expedited in jThreadsInfo).
memory reads while examining locals: stack=2 heap=1 other=1 (total=4)
stack region: [0x16b540000,0x16f53c000)
stack reads: [0x16f53ac00,0x16f53ae00), [0x16f53aa00,0x16f53ac00)
```
It adds `@skipIfOutOfTreeDebugserver` to
`test_memory_reads_when_examining_frame0_locals`. The other three tests
in the file pass there because they only rely on the frame pointer
backchain expedite, which is old enough to be in the shipped
debugserver.
https://invent.kde.org/qt/clang/llvm/-/commit/7220098d29a9b1a2ac4b63e3f1973ddab9041a97
Git commit 92e1f6aaa25693c940acc362bc91cb5a6bc23426 by GitHub (on behalf of Arseniy Obolenskiy) on 06/08/2026 at 19:42..
[AMDGPU] Fix SIFoldOperands miscompiling values that leave a divergent loop (#203256)
A scalar value latched per-lane inside a divergent loop was being folded
into a use after the loop, so every lane wrongly read the same value
https://invent.kde.org/qt/clang/llvm/-/commit/92e1f6aaa25693c940acc362bc91cb5a6bc23426
Git commit 9bbd728946da0bc8c0aa757dfec19fe5e893ca45 by GitHub (on behalf of Yaxun (Sam) Liu) on 06/08/2026 at 19:47..
[HIP] Add libhipcxx to the default header search path (#214279)
libhipcxx provides C++ library support for HIP device code, similar to
libcudacxx for CUDA. CUDA toolchains make libcudacxx available through
the
toolkit include path by default. HIP users should likewise be able to
include libhipcxx headers without an installation-specific include
option.
Add include/libhipcxx from the selected ROCm installation when the
directory exists. It follows the same search order and controls as the
other HIP include paths.
https://invent.kde.org/qt/clang/llvm/-/commit/9bbd728946da0bc8c0aa757dfec19fe5e893ca45
Git commit 0f962d8024e8a982279f941514f89e131e1bef40 by GitHub (on behalf of Arseniy Obolenskiy) on 06/08/2026 at 19:54..
[AMDGPU] Fix combineMasks dropping condition (#203180)
The problem is related to `S_AND (S_AND x, x), exec` case
When the nested mask op is the outer S_AND/S_OR first operand with two
identical operands, combineMasks kept exec instead of a nested operand,
folding to S_AND exec, exec and dropping the condition
https://invent.kde.org/qt/clang/llvm/-/commit/0f962d8024e8a982279f941514f89e131e1bef40
Git commit b3946b5bb5c9a4b5feadfe532270ef823116a617 by GitHub (on behalf of Walter Lee) on 06/08/2026 at 19:58..
[CodeGen] Fix null pointer dereferencing issue (#214543)
Fixes #197580. Fixes 99f7018958ed3daf2abf8d49178c24fbf1eb1010.
In Rematerializer::isRegIdenticalAtUses(), handle case when DefVN is
null.
https://invent.kde.org/qt/clang/llvm/-/commit/b3946b5bb5c9a4b5feadfe532270ef823116a617
Git commit 5e8ac69abe478b1702000878d47fddb6234af725 by GitHub (on behalf of Arseniy Obolenskiy) on 06/08/2026 at 20:33..
[AMDGPU] Fold fsub into fma_mix via free neg_lo modifier (#212305)
Rewrite the fsub->fma_mix pattern as `fma((-y), 1.0, x)` using the free
neg_lo modifier
instead of multiplying by -1.0 (which doesn't always flip the sign of
NaN), use the hardware free neg_lo bit, which does a true sign flip. As
a result, now the fold always matches fsub actual behavior instead of
only in the common case (non-NaN FP numbers)
https://invent.kde.org/qt/clang/llvm/-/commit/5e8ac69abe478b1702000878d47fddb6234af725
Git commit 0376ce364eceee81b2e4885f23837846aeaedf69 by GitHub (on behalf of Tomer Shafir) on 06/08/2026 at 20:42..
[AArch64] Improve AES clustering tests(NFC) (#213950)
- post-RA: rename test cases, reorder them, add artificially interfering
instruction in between pairs, add negative runlines
- add pre-RA test
- add missing label boundaries checks
https://invent.kde.org/qt/clang/llvm/-/commit/0376ce364eceee81b2e4885f23837846aeaedf69
Git commit 7b0121409bbfffe6c470c8b751875d9bc8259c71 by GitHub (on behalf of Tomer Shafir) on 06/08/2026 at 20:43..
[AArch64] Use only virtual registers in pre-RA test(NFC) (#213951)
And add missing label boundaries checks.
https://invent.kde.org/qt/clang/llvm/-/commit/7b0121409bbfffe6c470c8b751875d9bc8259c71
Git commit 8de3384e15a1c0d7dc20f4a01623428a5962c328 by GitHub (on behalf of Alexey Samsonov) on 06/08/2026 at 21:03..
[libc] Add more Linux-specific macro for fcntl and sched. (#213727)
* Add more `O_` flags (in particular, `O_LARGEFILE`) to fcntl-macros and
group all creation/status flags (shared and arch-specific) together.
* Add Linux `CLONE_` flags to sched-macros (to be exposed from
`<sched.h>`). Those are also provided in `<linux/sched.h>` kernel
header, but the libc users often expect to find them in regular
`<sched.h>` as those are passed to `clone()` syscall wrapper. Migrate
internal Linux thread implementation to use our own header (instead of
Linux kernel) for these macro.
https://invent.kde.org/qt/clang/llvm/-/commit/8de3384e15a1c0d7dc20f4a01623428a5962c328
Git commit 3316c0b7fd2b88d23f747bded0f2bf6b559bc5c3 by GitHub (on behalf of Ramkumar Ramachandra) on 06/08/2026 at 21:18..
[LAA] SCEV-licm-reduce depend_diff_types test (NFC) (#213875)
Reduce a couple of tests in depend_diff_types in a way that preserves
SCEV expressions, by creating invariants that we hoist outside the loop.
This makes the tests a bit clearer.
Illustration: https://godbolt.org/z/eTqdoPPzn
Co-authored-by: Andrei Elovikov <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/3316c0b7fd2b88d23f747bded0f2bf6b559bc5c3
Git commit 10dbfc4863c9aea2fb237022c3f47fc24c02265e by GitHub (on behalf of Thibaut Goetghebuer-Planchon) on 06/08/2026 at 21:23..
[mlir][tosa] Skip dense resource folding tests on big-endian platforms (#214479)
https://invent.kde.org/qt/clang/llvm/-/commit/10dbfc4863c9aea2fb237022c3f47fc24c02265e
Git commit 36e1616725cb56bd4b9fee255d85294407b213cc by GitHub (on behalf of Jakub Jakacki) on 06/08/2026 at 21:24..
Rename Compiler-RT target to compiler-rt in CMake files (#214364)
Visual Studio 2026 has trouble generating valid solutions for projects
with mismatching directory names.
The change renames the Compiler-RT target to match the directory name
"compiler-rt" in all CMake files.
https://invent.kde.org/qt/clang/llvm/-/commit/36e1616725cb56bd4b9fee255d85294407b213cc
Git commit e310250eb80f282efe02dee4c94454a784c6886c by GitHub (on behalf of Tom Stellard) on 06/08/2026 at 21:57..
workflows/release-documentation: Rework workflow to make it testable (#214304)
This includes several separate changes for the workflow, which were
necessary to get the testing to pass:
* Merged release-man-pages-validate-input into the release-documentation
job.
* Split the release note uploading into a separate job.
* Moved the environment declaration to the upload-man-pages job.
* Stopped forcing clang as the compiler in build-docs.sh script. This
was causing the runtimes build to fail, because the default Ubuntu
debian packages for clang where not providing all the necessary CMake
files. It seems that when you use clang as the compiler, the runtimes
try to use the cmake files installed along with it.
https://invent.kde.org/qt/clang/llvm/-/commit/e310250eb80f282efe02dee4c94454a784c6886c
Git commit c736a3eb6cfa6bbbbac7f17b7afe0df88eddaec9 by GitHub (on behalf of Kaitlin Peng) on 06/08/2026 at 22:12..
[HLSL] Fix crash when comparing two half vectors (#214332)
Fixes #213814.
Comparing two half vectors in default mode crashed Clang with a
`convertHalfVecBinOp` assertion because the function expects the result
to be a half/short vector while HLSL returns an int vector. This PR
fixes the bug by skipping the conversion function when the result type
is not a half or short vector. This lets it fall through to the default
`BinaryOperator::Create` path, which builds the comparison correctly
with the int vector result type. The PR also adds regression tests
covering the six comparison operators.
Assisted-by: Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/c736a3eb6cfa6bbbbac7f17b7afe0df88eddaec9
Git commit fdd9151239f6bef182ce5b1a0b32c57318636bbb by GitHub (on behalf of Reid Kleckner) on 06/08/2026 at 22:23..
[clang][docs] Fix CIR docs post-processing script to use index.md (#214567)
This file was renamed in cf293b06, but I seem to have missed this
reference. I'm not sure if I properly validated the CIR docs build the
last time I did this, because I ran into this when attempting to build
`docs-clang-html` with CIR enabled.
LLM-assisted
https://invent.kde.org/qt/clang/llvm/-/commit/fdd9151239f6bef182ce5b1a0b32c57318636bbb
Git commit db4ef1160ebd5e8fc1a222f16e6688992ce1c596 by GitHub (on behalf of Alex Crichton) on 06/08/2026 at 22:25..
[WebAssembly] Default export tables with `--cooperative-threading` (#208263)
This commit is a change to `wasm-ld`'s behavior when the
`--cooperative-threading` flag is passed to the linker. The change here
is to by default work as if `--export-table` was passed as well. This is
required conventionally on this target because the table is where
function pointers are read from in the component model
`thread.new-indirect` intrinsic. If the table is not exported then
there's no way to turn the core module into a component so it's
effectively required. This behavior only applies to when the table isn't
otherwise imported, for example in shared libraries.
The other motivation behind this change is that it'll avoid the need to
manually specify `-Wl,--export-table` when compiling for the
`wasm32-wasip3` target. This additionally avoids the need for the Clang
driver to figure out if flags like `--import-table` were otherwise
passed. Basically it seemed best to put this in `wasm-ld` itself to
avoid as little juggling of pieces as necessary.
cc WebAssembly/wasi-libc#808
https://invent.kde.org/qt/clang/llvm/-/commit/db4ef1160ebd5e8fc1a222f16e6688992ce1c596
Git commit f180ce951b1a93c8998b029ad9b0649bb92552c8 by GitHub (on behalf of Yonah Goldberg) on 06/08/2026 at 22:55..
[SDAG][NVPTX] Cache control metadata support and lowering (#204067)
This is the follow up for commit
https://github.com/llvm/llvm-project/commit/0fc5d0ab0cea3afe32592f24af17b5d7e02c9dfe,
which added IR support for cache hint metadata, as described in
https://discourse.llvm.org/t/rfc-composable-and-extensible-memory-cache-control-hints-in-llvm-ir/89443.
See previous https://github.com/llvm/llvm-project/pull/175901 that I
closed in favor of this one.
This PR adds support in SelectionDAG and lowering in NVPTX.
Supported cache hints:
L1 eviction: L1::evict_first, L1::evict_last, L1::evict_unchanged,
L1::no_allocate (requires SM 70+)
L2 eviction: L2::evict_first, L2::evict_last (requires SM 70+)
L2 prefetch: L2::64B, L2::128B (SM 75+), L2::256B (SM 80+)
L2::cache_hint with 64-bit cache policy descriptor (SM 80+, PTX 7.4+)
L1 eviction: L1::evict_first, L1::evict_last, L1::evict_unchanged,
L1::no_allocate (requires SM 70+ and PTX 7.4+)
L2 eviction: L2::evict_first, L2::evict_last (requires SM 100+, PTX
8.8+, and a 256-bit .v8.b32 or .v4.b64 memory operation)
L2 prefetch: L2::64B, L2::128B (requires SM 75+ and PTX 7.4+), L2::256B
(requires SM 80+ and PTX 7.4+)
L2 cache policy: L2::cache_hint with a 64-bit cache policy descriptor
(requires SM 80+ and PTX 7.4+)
I know this is a fairly large PR, but I needed to plug the support all
the way through the backend. I supposed I could add machinery in
SelectionDAG as an initial PR, but I'm not sure if that makes sense. I
implemented lowering on load + store + memcpy. I supposed memcpy can go
in a follow-up, but it doesn't really reduce the size that much.
TODO:
- implement support in global ISEL
- Implement lowering in NVPTX for atomics + other intrinsics
(llvm.masked.load/store)
- Better handling of cache hint metadata in legalization. Today we will
often drop the metadata. If we legalize a wide vector load into a bunch
of smaller loads, for example, we should preserve the metadata.
- Preserve L2 eviction metadata for suitably aligned, 32-byte-multiple
memcpy operations
Design decisions:
- I encoded the metadata in the MachineMemOperand. I hope it's ok to
increase the size. I think this is the best place because similar
information (atomic info, range metadata, etc...) is all stored there.
- When the metadata node values (strings which are target dependent) are
not valid for NVPTX, I call `ctx.emitError` to emit a diagnostic. I
think this is best because we wouldn't want front-ends to accidentally
emit incorrect metadata and for it to silently be dropped.
Co-authored-by: Fiigii <[email protected]>
Assisted by AI
https://invent.kde.org/qt/clang/llvm/-/commit/f180ce951b1a93c8998b029ad9b0649bb92552c8