[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/users/arsenm/clang/amdgpu-use-targetparser-targetid-handling'.
Changed from 18c2d77e90f9d55aae9b6f25e34ee57203a908ef to 27530c4b239b5dba26c359508d1037e323837aad
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 776971a11fdce76b243bd94b1fe7d2b1957da969 by GitHub (on behalf of Pengcheng Wang) on 28/07/2026 at 05:25..
Revert "[RISCV] Add TuneNoDefaultUnroll to generic CPUs (#135318)" (#212400)

This reverts commit 9c5858eb699390c2cac5f7f032279be275fa6aef which
causes some regressions.
https://invent.kde.org/qt/clang/llvm/-/commit/776971a11fdce76b243bd94b1fe7d2b1957da969

Git commit 2f6ec89938aa12ba5190477032b974524c956b54 by GitHub (on behalf of Corentin Jabot) on 28/07/2026 at 05:46..
[Clang] Implement P3658R1 (#212131)

As a DR in all C++ language modes.
Because we already supported the feature this is only modifying the
extensions warnings.
https://invent.kde.org/qt/clang/llvm/-/commit/2f6ec89938aa12ba5190477032b974524c956b54

Git commit 0a30b0c8909dca8764d994a748bd7d53c68d94f7 by GitHub (on behalf of Matt Arsenault) on 28/07/2026 at 06:03..
AMDGPU: Declare FeatureDPP with AMDGPUSubtargetFeature (#212408)

All other features were defined using the AMDGPUSubtargetFeature
subclass of SubtargetFeature, so fix the odd one out.
https://invent.kde.org/qt/clang/llvm/-/commit/0a30b0c8909dca8764d994a748bd7d53c68d94f7

Git commit de962dda125154abb64446c198b5349cf05311cb by GitHub (on behalf of Hui) on 28/07/2026 at 06:15..
[libc++] Implement P0528R3 `std::atomic` CAS for types with padding (#76180)

Fixes #99984

Implement P0528R3 The Curious Case of Padding Bits, Featuring Atomic
Compare-and-Exchange


The unit test padding.pass.cpp is assisted by Cursor. However, all tests
have been modified to test what I wanted to test

---------

Co-authored-by: Louis Dionne <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/de962dda125154abb64446c198b5349cf05311cb

Git commit ed4090047fb6c40d8d014559da16cee934f124c0 by GitHub (on behalf of Kazu Hirata) on 28/07/2026 at 06:17..
[SampleProfile] Fix symbol partitioning in Eytzinger name table (#211906)

This patch fixes the symbol partitioning between context-sensitive
and flat profiles in writeEytzingerNameTableSection.

In split-layout profiles, top-level symbols in the Eytzinger name
table are partitioned into two bins -- context-sensitive and flat keys
-- so that they form parallel arrays with function offsets.

Without this patch, writeEytzingerNameTableSection uses:

  if (Ctx.hasContext())

to decide which bin to use even though splitProfileMapToTwo uses:

  if (!I.second.getCallsiteSamples().empty())

to partition the profile.  This difference causes certain symbols to
be classified into FlatKeys in the name table but into
ContextProfileMap in the LBR profile.

The patch fixes the problem by using the same condition to partition
keys.

This misclassification happens to top-level symbols (like main or
un-inlined root callers) that lack context delimiters in their
function names (hasContext() == false) but still contain inlined
callees in their profile hierarchies.

RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/8

Assisted-by: Antigravity
https://invent.kde.org/qt/clang/llvm/-/commit/ed4090047fb6c40d8d014559da16cee934f124c0

Git commit d1ce5f95fb661999bcc99a3a816cc72c1220a36d by GitHub (on behalf of Alexis Engelke) on 28/07/2026 at 06:18..
[ASan] Instrument ptrtoaddr as pointer difference (#211988)

We want to emit ptrtoaddr instead of ptrtoint for pointer differences to
not expose the provenance. Adjust ASan instrumentation to handle this
case as well.
https://invent.kde.org/qt/clang/llvm/-/commit/d1ce5f95fb661999bcc99a3a816cc72c1220a36d

Git commit f2c7e2bcd57ef2a9db23e5071618d3e02ee9c33d by GitHub (on behalf of Pavel Labath) on 28/07/2026 at 06:20..
[libc] Fix atexit_test in hermetic mode (#210656)

We never unlocked the ThreadAtExit mutex, which meant the second call to
exit deadlocked. This was detected in the unit tests as they were
calling __cxa_thread_atexit from the system C library.
https://invent.kde.org/qt/clang/llvm/-/commit/f2c7e2bcd57ef2a9db23e5071618d3e02ee9c33d

Git commit ee8bf569630bd45559227434f6cdf7aa67eb6a77 by GitHub (on behalf of Heejin Ahn) on 28/07/2026 at 06:37..
[lld][WebAssembly] Fix SharedTagKind in toString (#212385)
https://invent.kde.org/qt/clang/llvm/-/commit/ee8bf569630bd45559227434f6cdf7aa67eb6a77

Git commit d81bb91dfe1a32bdb9621d483c7a059ddd56970b by GitHub (on behalf of Yuyang Zhang) on 28/07/2026 at 06:37..
[DAGCombiner] Fold insert_vector_elt into a shared BUILD_VECTOR (#210905)

The `insert_vector_elt -> build_vector` fold requires the source
`BUILD_VECTOR` to have a single use, to avoid duplicating it. Allow it
for a multi-use base when the target sets
`aggressivelyPreferBuildVectorSources`: a `BUILD_VECTOR` is just glue
there (e.g. `REG_SEQUENCE` on AMDGPU), so rebuilding re-references the
base's existing scalar operands and adds no real work. This un-shares a
CSE-shared base produced by `insertelement` on a poison vector, so each
derived vector is built from scalars independently, as GlobalISel
already does.

The gate mirrors the sibling `extract_vector_elt` fold: `hasOneUse() ||
TLI.aggressivelyPreferBuildVectorSources(VT)`.

Split out from #199631 per review. Opted-in targets are AMDGPU, NVPTX,
and AArch64: AMDGPU and NVPTX improve, AArch64 is unchanged; non-opted
targets are unaffected. Affected AMDGPU and NVPTX tests are regenerated.

The undef-deprecator flag on `splitkit-getsubrangeformask.ll` is a false
positive — those are MIR subregister-def flags (`undef %reg.sub`), not
IR `undef` values.
https://invent.kde.org/qt/clang/llvm/-/commit/d81bb91dfe1a32bdb9621d483c7a059ddd56970b

Git commit 9a5434468bf5a5aa77f46de98d17ec2eccdce39d by GitHub (on behalf of jeanPerier) on 28/07/2026 at 06:39..
[flang][NFC] Extract StackArrays analysis and rewrite into a header - memory passes unification [1/5] (#210721)

Move InsertionPoint, StackArraysAnalysisWrapper, and AllocMemConversion
out of the anonymous namespace in StackArrays.cpp into a new
StackArrays.h header (in namespace fir), so the "which fir.allocmem can
be safely moved to the stack, and where" analysis and the heap-to-stack
rewrite pattern can be reused by other passes.

The dataflow internals (AllocationState, LatticePoint,
AllocationAnalysis), the command-line options, and all method
definitions remain in the .cpp. No functional change intended.

RFC:
https://discourse.llvm.org/t/rfc-flang-improving-temporary-and-local-array-allocations-unify-stackarray-memoryallocation/91353

Assisted-by: AI
https://invent.kde.org/qt/clang/llvm/-/commit/9a5434468bf5a5aa77f46de98d17ec2eccdce39d

Git commit 4b60d133e3f80bac153bef496f56ee85936dfea1 by GitHub (on behalf of Sean Clarke) on 28/07/2026 at 06:51..
[RISCV] Add custom lowering for fixed-vector `CLMUL`/`CLMULH` (#210429)

`CLMUL` and `CLMULH` currently expand for fixed vector types on RISC-V,
even if `Zvbc` and/or `Zvbc32e` are available. Add custom lowering to
convert to scalable vector operations according to extension
availability.

Assisted-by: Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/4b60d133e3f80bac153bef496f56ee85936dfea1

Git commit b59d69d79e547a432485c18611efd2ec8d9540ca by GitHub (on behalf of Craig Topper) on 28/07/2026 at 06:51..
[RISCV][P-Ext] Unify pncvt(h) intrinsics between RV32 and RV64. (#210996)

Use __builtin_convertvector for pncvt and __builtin_shufflevector for
pncvth.

Alternatively we could use shift+__builtin_convertvector for pncvth but
that requires combining psrl+unzip(8/16)p to unzip(8/16)hp. I'm not sure
which is better right now.
https://invent.kde.org/qt/clang/llvm/-/commit/b59d69d79e547a432485c18611efd2ec8d9540ca

Git commit ce62aab97e58c52e6bb0972c49d6fd1aaa6a08a0 by GitHub (on behalf of Pavel Labath) on 28/07/2026 at 06:57..
[libc] Add aligned_alloc and delete[] to hermetic tests (#210693)

This lets us run (at least) <search.h> tests in hermetic mode.
https://invent.kde.org/qt/clang/llvm/-/commit/ce62aab97e58c52e6bb0972c49d6fd1aaa6a08a0

Git commit f75eef2acb00eb8ff99cf9d7abb0d1649d0cbc90 by GitHub (on behalf of Alexis Engelke) on 28/07/2026 at 07:07..
[InstCombine] Handle icmp+ptrtoint/addr folds for non-int ptrs (#212101)

Followup of #211991. icmp ptrtoint, ptrtoint cannot be folded away for
non-integral pointers, this is only possible with ptrtoaddr.

For consistency, this also restricts the inttoptr direction, which
causes the change in the phase ordering test. (Note that in this
particular case, not doing the folding is actualle beneficial, as it
keeps the inttoptr-inttoptr comparison outside the loop avoiding one
comparison inside the loop. I wouldn't expect any practical impact,
though.)
https://invent.kde.org/qt/clang/llvm/-/commit/f75eef2acb00eb8ff99cf9d7abb0d1649d0cbc90

Git commit 022bf7ba97fa1897bf52cf3db2e3fa42cd19b29f by GitHub (on behalf of Fangrui Song) on 28/07/2026 at 07:08..
[LoopInfo] Take no dominator tree in verify(). NFC (#212414)

Similar to the recent change that makes analyze() lazy in building
DomTree.
https://invent.kde.org/qt/clang/llvm/-/commit/022bf7ba97fa1897bf52cf3db2e3fa42cd19b29f

Git commit 9ccf2a81a1b86c6b4d953259bbbdc678cc791493 by GitHub (on behalf of Akimasa Watanuki) on 28/07/2026 at 07:09..
[MLIR][LLVM] Preserve default function attributes on invokes (#212263)

Represent `default_func_attrs` on `LLVM::InvokeOp` and translate the
collection onto the generated LLVM invoke instruction. Preserve default
call-site attributes when throwing calls are lowered through the LLVM
dialect, including CIR `try_call` operations.
https://invent.kde.org/qt/clang/llvm/-/commit/9ccf2a81a1b86c6b4d953259bbbdc678cc791493

Git commit 4df68548fcfd82ddfdfe5ae52e691966065cf2e1 by GitHub (on behalf of Lang Hames) on 28/07/2026 at 07:14..
[orc-rt] Reorder wrapper-fn args to trailing-callback style. (#212243)

Bring the wrapper-function call and return prototypes into line with the
convention adopted for orc_rt_Session_callController: the session handle
comes first, then the payload buffer, then the completion callback
immediately followed by its threaded token, with the token last.

  orc_rt_WrapperFunctionReturn: (S, CallId, ResultBytes)
                             -> (S, ResultBytes, CallId)
  orc_rt_WrapperFunction:       (S, CallId, Return, ArgBytes)
                             -> (S, ArgBytes, Return, CallId)

The C++ adapters that mirror these signatures are updated to match --
WrapperFunction::handle, SPSWrapperFunction::handle, the
ORC_RT_SPS_WRAPPER macro, and StructuredYield -- along with the Session
dispatch path and the affected unit tests. No functional change beyond
argument order.
https://invent.kde.org/qt/clang/llvm/-/commit/4df68548fcfd82ddfdfe5ae52e691966065cf2e1

Git commit 7bc2770064d3afbb4ce49c159d99c69a9e4b5c5b by GitHub (on behalf of Pavel Labath) on 28/07/2026 at 07:25..
[libc] Make assert_test hermetic (#210700)

Call our own close() instead of the system one.
https://invent.kde.org/qt/clang/llvm/-/commit/7bc2770064d3afbb4ce49c159d99c69a9e4b5c5b

Git commit f5437c4d4f2e9920614d856158d9683d650acffa by GitHub (on behalf of Matthias Wippich) on 28/07/2026 at 07:31..
[clang][NFC] Refactor flag enum caching (#210632)

Extracts cache insertion logic from `IsValueInFlagEnum`. This allows us
to drop `mutable` on `FlagBitsCache` while making it reusable as work
list for additional flag_enum diagnostics.
https://invent.kde.org/qt/clang/llvm/-/commit/f5437c4d4f2e9920614d856158d9683d650acffa

Git commit b53f2d57b086d93dc8421c74c17913951122e9d9 by GitHub (on behalf of forking-google-bazel-bot[bot]) on 28/07/2026 at 07:39..
[Bazel] Fixes 1e1274b (#212405)

This fixes 1e1274b2ddfe4643eefdd1c6c83d6c2d61dace1d (#212318).

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

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

Git commit 39549cd7c62e9a2db44d186e0fe5d99e1473cb24 by GitHub (on behalf of StefanPaulet) on 28/07/2026 at 07:44..
[clang] Fixed predefined expressions after lambda parameters (#211811)

After the parameter declaration of a lambda expression, `Sema` enters
the declaration context of the lambda call operator (in
`ActOnLambdaClosureParameters`), so the lambda specifiers and the
trailing return type are analyzed within that context. Because of this,
predefined expressions such as `__func__` resolve to the lambda call
operator, and not to the possibly enclosing function. (issue #122657)

Added a member to `LambdaScopeInfo` to mark whether or not the compound
statement of the lambda expression has been entered, to be used when
resolving a `PredefinedExpr`
https://invent.kde.org/qt/clang/llvm/-/commit/39549cd7c62e9a2db44d186e0fe5d99e1473cb24

Git commit 0bcff14b1740cf32f9e0983726238dcf353c6ac8 by GitHub (on behalf of Pavel Labath) on 28/07/2026 at 07:58..
[libc] Make <sys/mman.h> tests hermetic (#210697)

The only issue was in pkey_test, which uses function-local static to do
lazy initialization. This requires the c++ runtime
(__cxa_guard_acquire/release).

There are no threads in this test, so we can just use the
(non-thread-safe) hand-rolled version of that. This is currently our
only test with such a pattern.

This would be something that in gtest would go into a SetUpTestSuite
method, but our test framework currently doesn't have an equivalent.
https://invent.kde.org/qt/clang/llvm/-/commit/0bcff14b1740cf32f9e0983726238dcf353c6ac8

Git commit 7c58d4de4af550ba3d54bf217f27a1e6b3736dbc by GitHub (on behalf of Igor Kudrin) on 28/07/2026 at 08:16..
[lldb][AArch64] Fix launching Arm32 applications on AArch64 Linux (#211692)

When LLDB runs on an AArch64 Linux, it adds both 64- and 32-bit
architectures as supported; see `PlatformLinux` ctor. The triple for the
32-bit variant is computed by replacing the architecture while keeping
all other fields; i.e., for the main host triple
`aarch64-unknown-linux-gnu`, the generated 32-bit triple is
`arm-unknown-linux-gnu`.

When a 32-bit target is created, its triple would be something like
`arm--linux-eabihf`. This triple is incompatible with the one added to
the supported architectures per condition in `ArchSpec::IsMatch()`,
which checks for compatibility between environments. As a result, LLDB
fails to launch this target:

```
> arm-linux-gnueabihf-g++ -g test.cpp -o test.out
> lldb
(lldb) file test.out
Current executable set to '/tmp/test.out' (arm).
(lldb) run
error: failed to launch or debug process
```

Clearing the environment of the computed triple for Arm32 allows the
compatibility check to pass.

---------

Co-authored-by: David Spickett <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/7c58d4de4af550ba3d54bf217f27a1e6b3736dbc

Git commit 162cdf496003e9bed7e7c7d0cbbd507365443b85 by GitHub (on behalf of Florian Hahn) on 28/07/2026 at 08:20..
[SCEV] Rewrite more SCEVAddExpr when applying guards. (#159942)

When re-writing SCEVAddExprs to apply information from guards, check if
we have information for the expression itself. If so, apply it.

When we have an expression of the form (Const + A),  check if we have
have guard info for (Const + 1 + A) and use it. This is needed to avoid
regressions in a few cases, where we have BTCs with a subtracted
constant.

Rewriting expressions could cause regressions, e.g. when comparing 2
SCEV expressions where we are only able to rewrite one side, but I could
not find any cases where this happens more with this patch in practice.

Depends on https://github.com/llvm/llvm-project/pull/160012.

Proofs for some of the test changes: https://alive2.llvm.org/ce/z/RPX6t_


This comes with a slight compile-time increase, mostly due to changes in
downstream optimizations (like extra unrolling).

    stage1-O3: +0.03%
    stage1-ReleaseThinLTO: +0.02%
    stage1-ReleaseLTO-g: +0.04%
    stage1-aarch64-O3: +0.04%
    stage2-O3: +0.03%

https://llvm-compile-time-tracker.com/compare.php?from=42b4ee6383e340c4c3ab4cfddd17f864ab331e0d&to=7b5221e21c2c18152dcb72a82122730690153aed&stat=instructions%3Au

Improves optimizations end-to-end in a number of cases on real-world workloads
(dtcxzyw/llvm-opt-benchmark-nightly#802).

PR: https://github.com/llvm/llvm-project/pull/159942
https://invent.kde.org/qt/clang/llvm/-/commit/162cdf496003e9bed7e7c7d0cbbd507365443b85

Git commit 8e9802b45829d473bce51197ce95f3ab40d94426 by GitHub (on behalf of David Spickett) on 28/07/2026 at 08:24..
[lldb][test] Do not return a PID in TestGdbClientModuleLoad (#212256)

This test has been flaky on x86 Github CI. It expects: 
[  0] {{.*}} 0x0000000000ee0000 {{.*}}module_load
[  1] {{.*}} 0x0000000000ef0000 {{.*}}[vdso]

However in one run it got:
[ 0] 98FC07B8 0x0000000000ef0000 [vdso] (0xef0000)
[ 1] 75B11BBB-EF8B-5645-B9B1-A7261EC8ABCF-05413284 0x0000000000ed8ed0
/home/gha/actions-runner/bin/Runner.Worker

This happened because the responder says it's debugging PID 0x47, which
is usually some root process that we cannot read the /proc/pid/exe link
for. However when it is readable, we will assume that is the program
file and it replaces the "module_load" entry (this never happened on
AArch64 because an AArch64 program file is never compatible with an x86
triple).

In the failing case, 0x47 happened to be a github runner process that
lldb could get the exe for. I was able to reproduce this by putting a
long sleep in the background and replacing 0x47 with that sleep's PID.

To fix this I am returning the value of `PID_MAX_LIMIT` which is the
limit of what `pid_max` can be set to. This should be parsed by lldb
into an invalid PID and cause it to give up looking at the host.

I tried returning 0, this found a process somehow, returning no PID at
all, again it found a process. The only other way is to make this test
connect to a fake remote linux platform first, but this would take much
more code to set up.
https://invent.kde.org/qt/clang/llvm/-/commit/8e9802b45829d473bce51197ce95f3ab40d94426

Git commit 697f9892bef88f22f630e7e78541dd29d3cd716b by GitHub (on behalf of David Green) on 28/07/2026 at 08:29..
[AArch64][GlobalISel] Update regbank tests with concrete types. NFC (#212367)
https://invent.kde.org/qt/clang/llvm/-/commit/697f9892bef88f22f630e7e78541dd29d3cd716b

Git commit 6aeeec83ec1d979ea2a2e3f4629ac361b5cdb70e by GitHub (on behalf of David Spickett) on 28/07/2026 at 08:40..
[lldb][test] Skip TestGuiSpawnThreads.py on Linux (#212431)

See https://github.com/llvm/llvm-project/issues/209874.

We are still hitting the larger timeout.
https://invent.kde.org/qt/clang/llvm/-/commit/6aeeec83ec1d979ea2a2e3f4629ac361b5cdb70e

Git commit c6603cce864078da43741e36fb9586a6c72782fe by GitHub (on behalf of Matthias Wippich) on 28/07/2026 at 08:52..
[clang][NFC] generate TokenKey from tablegen (#210857)

Currently the enumerator constants of `TokenKey` are duplicated between
TokenKinds.h and Traits.td. This patch generates the `TokenKey` enum
from tablegen.

This is a followup patch for
https://github.com/llvm/llvm-project/pull/201491#discussion_r3567423553
https://invent.kde.org/qt/clang/llvm/-/commit/c6603cce864078da43741e36fb9586a6c72782fe

Git commit 564be89eaee5227ec21980ca2054f00d595044c7 by GitHub (on behalf of Matt Arsenault) on 28/07/2026 at 08:53..
clang: Fix subarchless amdgpu triples in offload bundler tests (#212424)
https://invent.kde.org/qt/clang/llvm/-/commit/564be89eaee5227ec21980ca2054f00d595044c7

Git commit 10d1b41f8cd9aa327fb15f698a0b564a3d5c4118 by GitHub (on behalf of Lang Hames) on 28/07/2026 at 08:56..
[ORC] Fix buildSimpleReexportsAliasMap signature. (#212420)

The header declared a `const SymbolNameSet&` argument, but the
implementation took a `SymbolNameSet` by value. Update the
implementation to also take a `const SymbolNameSet&`.

No testcase. The corrected implementation will be used in an upcoming
commit.
https://invent.kde.org/qt/clang/llvm/-/commit/10d1b41f8cd9aa327fb15f698a0b564a3d5c4118

Git commit 1a0871730bec9b06ce586864a9378f43d0135a00 by Matt Arsenault on 28/07/2026 at 08:59..
clang: Use TargetID parsing from AMDGPUTargetParser

We had grown 2 parallel parsing implementations for
triple+gpu name+feature flag target ID strings. Mostly
eliminate the redundant clang version.

Co-authored-by: Claude (Opus 4.8)
https://invent.kde.org/qt/clang/llvm/-/commit/1a0871730bec9b06ce586864a9378f43d0135a00

Git commit acc9e8c8a529c48f3bb44369991d001e0a183f48 by Matt Arsenault on 28/07/2026 at 08:59..
Fix offload bundler usage of getConflictTargetIDCombination
https://invent.kde.org/qt/clang/llvm/-/commit/acc9e8c8a529c48f3bb44369991d001e0a183f48

Git commit 8cf0057a53998dd98ce023e9dfc20c673af640d3 by Matt Arsenault on 28/07/2026 at 09:53..
Fixes and merge
https://invent.kde.org/qt/clang/llvm/-/commit/8cf0057a53998dd98ce023e9dfc20c673af640d3

Git commit 27530c4b239b5dba26c359508d1037e323837aad by Matt Arsenault on 28/07/2026 at 09:54..
test
https://invent.kde.org/qt/clang/llvm/-/commit/27530c4b239b5dba26c359508d1037e323837aad
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.