[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/users/pierre-vh/split-waitcntbrackets'.
Changed from 2ab35930222df24720f1bd8597ecbb61a4181ca6 to 07d0f8adf6e45937d85bc380f1e1865115bcb24f
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 acba7e11e32302faa29e02b88a664a7531db0832 by pvanhout on 22/07/2026 at 12:44..
[RFC][AMDGPU][InsertWaitcnts] Move `WaitcntBrackets` to a separate file

My previous stack of patches de-tangled quite a bit of InsertWaitcnt,
and now `WaitcntBrackets` can be moved into a separate file fairly
easily. I'm proposing this as a RFC. While I think this is a net
positive, I don't want to force this through if others feel it's unnecessary.

Implementation:
This pretty much moves `WaitcntBrackets` as-is, with a few changes:

- Instead of having a pointer to `SIInsertWaitcnts` for the "context"
  there is now a "Info" class that `SIInsertWaitcnts` implements.
  This enforces a small separation between the classes, not enough to
  force a massive redesign, but enough that we can't just access the
  entire state of `InsertWaitcnts` at will.
- Some unused/unnecessary functions were removed or made private.
- I reorganized the code a bit: moved all private functions together,
  moved method implementations to the .cpp if they had more than 2 lines of code.
  The goal is to keep things somewhat organized so it's easy to glance at the
  file and see how this works.

Motivation: While we have no use for a reusable `WaitcntBrackets` yet, separating it
in another file and acting as-if it's meant to be reusable has the big advantage of
removing the "god-object" connection between `WaitcntBrackets` and `WaitcntGenerator` via
the `SIInsertWaitcnt` class. This helps separate concerns better which, IMHO, will reduce
the maintenance burden a bit.
This also allows for splitting the decl and definition of `WaitcntBrackets` method, making
the API easier to digest at a glance. It gives the implementation a bit more room to grow
as well.

Future direction: I can imagine splitting `WaitcntGenerator` similarly, but I am not sure
yet if that's desirable so we will see.
Now that `WaitcntBrackets` is split up, it'd also be nice too move towards a simpler API
for it so that the way things are tracked is opaque to `InsertWaitcnt`. Maybe then we can
start playing with alternative implementations of `WaitcntBrackets`, like having a more
precise, newer tracking system that can be selected dynamically. That's something I'd like
to eventually explore as there's been a mention of having a "per-event timeline instead of per-counter timeline"
for many years.

Assisted-By: Claude Sonnet 5
Claude was only used to generate the boilerplate of the files (create header/cpp + add to CMakeLists).
I wrote all the code/logic myself.
https://invent.kde.org/qt/clang/llvm-project/-/commit/acba7e11e32302faa29e02b88a664a7531db0832

Git commit 63dcdd8af61d47f8954dff235d32817b7b5e7f27 by pvanhout on 22/07/2026 at 12:44..
Avoid virtual dispatch
https://invent.kde.org/qt/clang/llvm-project/-/commit/63dcdd8af61d47f8954dff235d32817b7b5e7f27

Git commit f08b47c359cc7476cb2db71d9e453f4cc41a6732 by pvanhout on 22/07/2026 at 12:44..
Fix merge
https://invent.kde.org/qt/clang/llvm-project/-/commit/f08b47c359cc7476cb2db71d9e453f4cc41a6732

Git commit d66f47f6e2a4a369a877ebcbfd3211621f4b3ea9 by pvanhout on 22/07/2026 at 12:44..
Merge #201619, #178711
https://invent.kde.org/qt/clang/llvm-project/-/commit/d66f47f6e2a4a369a877ebcbfd3211621f4b3ea9

Git commit 07d0f8adf6e45937d85bc380f1e1865115bcb24f by pvanhout on 22/07/2026 at 12:44..
Merge #210741
https://invent.kde.org/qt/clang/llvm-project/-/commit/07d0f8adf6e45937d85bc380f1e1865115bcb24f
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.