[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/skc7/asan/swlds_fn_flat_arg'.
Changed from 3298029722ed55ee3292769944be4aef16d362bf to 25d57b23b33ff21483d4ec5e3c322f02bf1a22c5
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 4bd1a447e136e60ea441370ac5d7b898aa4efab0 by GitHub (on behalf of Pavel Labath) on 21/07/2026 at 05:18..
[libc] Make hermetic test syscall deps linux-only (#210715)

They are only used on linux, so this matches that.

They are also only used in full build mode, but hermetic tests only work
in full build mode, so we don't need to check that here. The darwin
check is a noop as (AAIU) we don't support full_build on darwin, but
I've kept it for symmetry.
https://invent.kde.org/qt/clang/llvm/-/commit/4bd1a447e136e60ea441370ac5d7b898aa4efab0

Git commit 375231d8ea9b4f5a3a71f4afb3d76ba6e1dcefc5 by GitHub (on behalf of Pavel Labath) on 21/07/2026 at 05:19..
[libc] Add struct group_req, struct group_source_req, and related socket options (#210029)

Add definitions for struct group_req and struct group_source_req in
llvm-libc-types and wire them into <netinet/in.h>.

Also define the multicast socket options using these structs:
- MCAST_JOIN_GROUP
- MCAST_LEAVE_GROUP
- MCAST_BLOCK_SOURCE
- MCAST_UNBLOCK_SOURCE
- MCAST_JOIN_SOURCE_GROUP
- MCAST_LEAVE_SOURCE_GROUP

Add layout assertions for struct group_req and struct group_source_req
to the netinet/in.h unit test.

Assisted by Gemini.
https://invent.kde.org/qt/clang/llvm/-/commit/375231d8ea9b4f5a3a71f4afb3d76ba6e1dcefc5

Git commit ea52aa03750fd51857f47b6a901edc0b283a7aec by GitHub (on behalf of Ken Matsui) on 21/07/2026 at 05:34..
[clang] Use key-value initialization for LangASMap (NFCI) (#210259)

The original implementation requires each target to list a value for
every LangAS in exact enum order. This forces targets to specify
mappings for unrelated address spaces and makes it easy to introduce
ordering bugs, such as the one fixed in
4479f3397f827291c51698fbaa685b1a9493467a.

Address this by introducing a class that supports order-independent
key-value initialization and defaults unspecified entries to 0.
https://invent.kde.org/qt/clang/llvm/-/commit/ea52aa03750fd51857f47b6a901edc0b283a7aec

Git commit 0b16957f41f96f14aa014f119e4180538bcb4f80 by GitHub (on behalf of Jim Lin) on 21/07/2026 at 05:46..
[RISCV] Don't transfer (select c, t, f) to Zicond when optimizing for size (#163501)

The Zicond form of (select c, t, f), (or (czero_eqz t, c),
(czero_nez f, c)), has no compressed encodings and is always 12 bytes.
The branch form (branch + mv) is at most 8 bytes, and with the C
extension
4 bytes when the branch compresses (c.mv always does) or 6 bytes when it
does not; it shrinks further when a condition is shared across selects.
Since it is never larger by byte count, skip the Zicond transform under
optsize via !DAG.shouldOptForSize().

Fixes https://github.com/llvm/llvm-project/issues/158633.
https://invent.kde.org/qt/clang/llvm/-/commit/0b16957f41f96f14aa014f119e4180538bcb4f80

Git commit 921f4da4a05f93391937ccc337aa448b3d8de539 by GitHub (on behalf of Madhur Amilkanthwar) on 21/07/2026 at 06:00..
[SLP][Modularisation][NFC] Extract free cost helpers into SLPCostAnalysis (#210278)

Move the BoUpSLP-independent cost helpers out of SLPVectorizer.cpp into
SLPVectorizer/SLPCostAnalysis.{h,cpp} (namespace llvm::slpvectorizer).

Moved:
  * getShuffleCost
  * getGEPCosts

RFC: https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
https://invent.kde.org/qt/clang/llvm/-/commit/921f4da4a05f93391937ccc337aa448b3d8de539

Git commit 8f48e1980f9da4e4d859c1c2713561195d043454 by GitHub (on behalf of qyingwu) on 21/07/2026 at 06:12..
[mlir][LLVMIR] Add export coverage for retained local variables (#209911)

Adds export coverage for a retained local variable case where MLIR may
contain separate `DILocalVariableAttr`s for the same source-level
variable.

A local variable can appear both in a `DISubprogram`'s `retainedNodes`
and in a debug intrinsic such as `dbg.value` or `dbg.declare`. During
import, the `retainedNodes` path may see the variable while the
containing subprogram is represented by a self-recursive placeholder,
while the debug intrinsic path later sees the finalized subprogram. This
can produce two MLIR local variable attrs with different subprogram
scopes.

The exported LLVM IR debug metadata is still canonical for this case:
both the debug intrinsic and the subprogram `retainedNodes` reference
the same `DILocalVariable` metadata node. This patch adds regression
coverage for that export behavior without extending the recursive
debug-info machinery.
https://invent.kde.org/qt/clang/llvm/-/commit/8f48e1980f9da4e4d859c1c2713561195d043454

Git commit 9aebd4b405d7299337d4561de8d35c579ab5d88b by GitHub (on behalf of Luke Lau) on 21/07/2026 at 06:33..
[RISCV] Run EarlyMachineLICM before VLOptimizer to hoist constant splats (#210028)

RISCVVLOptimizer runs before the machine SSA optimization passes. This
includes EarlyMachineLICM, which causes previously loop invariant
vmv.v.i/vmv.v.x/vfmv.v.f splats to use a loop variant VL defined by a
PseudoVSETVLI. This prevents splats from being hoisted out:
https://godbolt.org/z/Wf49roo7s

This fixes it by adding another pass of EarlyMachineLICM before
RISCVVLOptimizer.

As measured on llvm-test-suite w/ `-march=rva23u64 -O3` this increases
the number of vector splat instructions hoisted by MachineLICM by 4.4x,
from 2140 to 9327.

Compile time wise, the number of instructions executed increases geomean
+0.2% on CTMark for -O3. -O0 builds are unaffected.

Two other approaches were considered:

- Use MachineLoopInfo in RISCVVLOptimizer to avoid changing the VL of
any loop invariant pseudos. But that results in more vsetvli toggles,
and still involves running the same analysis that EarlyMachineLICM
depends on anyway
- Hoist loop invariant pseudos ourselves in RISCVVLOptimizer. But in
order to catch all cases that EarlyMachineLICM handles, we need to split
critical edges and modify the CFG (which would invalidate the CFG
analyses), and also hoist scalar non-pseudo instructions. In some cases
it also led to more spilling due to increased register pressure, which
EarlyMachineLICM has heuristics for avoiding.
https://invent.kde.org/qt/clang/llvm/-/commit/9aebd4b405d7299337d4561de8d35c579ab5d88b

Git commit e747c8b850d20add682ea25d0f8709129f158c09 by GitHub (on behalf of Henrik G. Olsson) on 21/07/2026 at 06:40..
[clang] Remove stale TransformTypeTraits.def entry from module map (#210878)

Commit 2a33792a2ec1 ("[clang][NFC] move traits to tablegen", #201491)
deleted clang/include/clang/Basic/TransformTypeTraits.def in favor of a
tablegen-generated clang/Basic/Traits.inc. The stale module map entry
broke module builds. Renaming it to "clang/Basic/Traits.inc" doesn't
seem to work, ('clang/Basic/Traits.inc' not found) but the build
succeeds with the entry dropped entirely.

Assisted-by: Claude Sonnet 5

rdar://182772346
https://invent.kde.org/qt/clang/llvm/-/commit/e747c8b850d20add682ea25d0f8709129f158c09

Git commit 4c8e5c3e8b462ebd664ac1ccd621005d9b365644 by GitHub (on behalf of Mayank) on 21/07/2026 at 06:57..
[TTI] Fix haveFastClmul to access inherited DL via thisT() (#210647)

haveFastClmul() called DL.getIndexType()/DL.getAllocaAddrSpace()
directly, relying on the `using TargetTransformInfoImplBase::DL;`
declaration in BasicTTIImplBase to bring the inherited DataLayout
reference into scope. Because DL is reached through a two-level
dependent base chain (BasicTTIImplBase<T> ->
TargetTransformInfoImplCRTPBase<T>-> TargetTransformInfoImplBase), some
compilers (observed with GCC 8.5.0) mis-resolve the member access and
reject the code with a misleading diagnostic naming
TargetTransformInfoImplBase rather than DataLayout.

Access DL via thisT()->DL instead, matching the pattern already used
elsewhere in this file (e.g. getABITypeAlign() call sites), which forces
lookup to be deferred to instantiation time and avoids the
compiler-version-dependent behavior.
https://invent.kde.org/qt/clang/llvm/-/commit/4c8e5c3e8b462ebd664ac1ccd621005d9b365644

Git commit 9a49fc244be7400e550b2c014e6d370b586dc854 by GitHub (on behalf of Fangrui Song) on 21/07/2026 at 07:01..
[LoopInfo] Replace raw loop-container accessors with semantic operations (#210653)

getBlocksVector, mutable getBlocksSet, getSubLoopsVector, and
getTopLevelLoopsVector expose LoopInfo's internal containers, so every
caller open-codes loop-nest surgery, keeps the block vector and set in
sync by hand, and freezes the representation. Replace them with two
LoopInfoBase operations:

* removeBlocksIf(LoopT &, Pred): drop matching blocks from a loop.
* takeChildrenIf(LoopT *Parent, Pred): detach and return matching
  children, clearing their parent; a null Parent means the top level.

Both preserve the relative order of what remains. Mutation inside
LoopInfoBase also lets the analysis repair derived state once per edit
and finish a multi-step edit before any query observes it, which an
accessor returning a container cannot.

For the same reason, move hasNoExitBlocks, getExitEdges, and
getUniqueLatchExitBlock onto LoopInfoBase.

Two behavior changes: SimpleLoopUnswitch's deleteDeadBlocksFromLoop runs
its per-child deletion callbacks while the forest is still consistent,
before detaching and destroying dead children; FixIrreducible's
reconnectChildLoops keeps children in their original order rather than
std::partition's.

Aided by Claude Fable 5
https://invent.kde.org/qt/clang/llvm/-/commit/9a49fc244be7400e550b2c014e6d370b586dc854

Git commit 13822d0b1808b759dd4f4d237ea347729f93b3ed by GitHub (on behalf of Fabian Ritter) on 21/07/2026 at 07:17..
[RFC][LangRef] Specify that the accessed bytes of concurrent atomics must be either disjoint or the same (#204329)

So far, the LangRef hasn't been clear on the semantics of partially overlapping
concurrent atomics in LLVM IR (specifically: a set of accesses marked as
`atomic` that would be in a data race if they weren't `atomic` and not all of
them access the exact same set of bytes).

What loads read is defined in terms of individual bytes, but the memory
ordering constraints are formulated closely to the C/C++ (and Java for
`unordered`) memory model, where partially overlapping atomics are not
possible. It's not obvious how concepts like C/C++'s per-location total
modification order for `monotonic` accesses map to accesses that can partially
overlap. While C/C++ relies on the modification order to ensure that atomics
cannot tear (i.e., atomic reads return bytes from two or more atomic writes),
our IR semantics (as written) currently does not guarantee this in the presence
of partially overlapping accesses.

This PR proposes a solution to this problem: It specifies that concurrent
overlapping atomics must access the exact same set of bytes to act atomically.
If they don't, they form a data race (i.e., participating loads read `undef`
for affected bytes) and the atomic ordering constaints do not apply. This empowers the rest of the specification to imply that
`monotonic` (or stronger) accesses do not tear. The PR also adds a constraint
to ensure non-tearing for `unordered` atomic accesses.

This solution implies that transformations that merge adjacent atomic
loads/stores into wider atomic loads/stores are generally incorrect.

Related RFC: https://discourse.llvm.org/t/rfc-semantics-of-partially-overlapping-atomic-accesses/91092
https://invent.kde.org/qt/clang/llvm/-/commit/13822d0b1808b759dd4f4d237ea347729f93b3ed

Git commit 9b5c0571afd6b2c1918db5585a05b9756ea19c28 by GitHub (on behalf of Madhur Amilkanthwar) on 21/07/2026 at 07:25..
Enforce single-operand form for llvm.loop.distribute metadata (#201077)

This patch implements Phase 1 of the
[RFC](https://discourse.llvm.org/t/rfc-enforce-single-operand-format-for-all-enable-metadata-nodes/90571)
"Enforce Single-Operand Format for All .enable Metadata Nodes". The
two-operand boolean form !{!"llvm.loop.distribute.enable", i1 0/1} is
replaced by a single-operand enable/disable pair:

  !{!"llvm.loop.distribute.enable"}    ; force distribution
  !{!"llvm.loop.distribute.disable"}   ; suppress distribution
https://invent.kde.org/qt/clang/llvm/-/commit/9b5c0571afd6b2c1918db5585a05b9756ea19c28

Git commit e3dfa82a46b6df7cdc92657b27e75470b74459cb by GitHub (on behalf of David Green) on 21/07/2026 at 07:47..
[AArch64] Update abs cost with scalar costs and CSSC. NFC (#210900)
https://invent.kde.org/qt/clang/llvm/-/commit/e3dfa82a46b6df7cdc92657b27e75470b74459cb

Git commit b7f642fdb262e2ed3c2209b9a10017084e1595ad by GitHub (on behalf of Pavel Labath) on 21/07/2026 at 07:47..
[ilbc] Revert recent changes to the hermetic tests (#210889)

PR #209999 (9e2e9b33e14808541c0470b92ade34bee6608bf6) "broke" the GPU
build by causing many/most tests to not run.

The follow-up in #210715 (4bd1a447e136e60ea441370ac5d7b898aa4efab0)
broke it for real
(https://lab.llvm.org/buildbot/#/builders/10/builds/32254) by causing
too many tests to run.

I think we just need to disable the extra tests, but I want to start out
by reverting both patches so that it's easier to compare the
before/after state in the next attempt.
https://invent.kde.org/qt/clang/llvm/-/commit/b7f642fdb262e2ed3c2209b9a10017084e1595ad

Git commit d80b9a5e358de107da3a58730c89e512daffd9a7 by GitHub (on behalf of Iurii Khosoi) on 21/07/2026 at 07:51..
[X86] MIR-level tests for bitcnt/bls/compress/expand false dependencies (#209879)

Followup to #207079. This replaces IR-level tests introduced in
c311e7b3d that were using inline assembler hack with MIR-level tests, as
suggested by @ganeshgit. Older test for bit counting instruction with
more complex functions is kept alongside a new one that tests affected
instructions in isolation.
https://invent.kde.org/qt/clang/llvm/-/commit/d80b9a5e358de107da3a58730c89e512daffd9a7

Git commit ca80eecf34d041e55b60e202bce1c606288ffa71 by GitHub (on behalf of David Spickett) on 21/07/2026 at 08:00..
[lldb][AArch64][Linux] Use memcpy when serialising data (#210710)

In few places we are reinterpreting raw bytes as typed data. This works
but is undefined behaviour if the address being used isn't at the same
alignment as the target type.

It likely has always been because we've got 4 and 8 byte types and 4 or
8 byte registers. However I prefer to use memcpy anyway to be safe.

m_sve_state is a single byte but for consistency I'm using memcpy for it
also.
https://invent.kde.org/qt/clang/llvm/-/commit/ca80eecf34d041e55b60e202bce1c606288ffa71

Git commit ba9d799b1bf2433bf960a08ff995497f5b6d2feb by GitHub (on behalf of David Spickett) on 21/07/2026 at 08:02..
[lldb][test] Add test for qSymbol handling when using an ELF (#200411)

qSymbol is sent to the debug server every time libraries are loaded. It
can respond to this with symbols it wants to know the value for. It's
rarely used so I expect that's why we had zero test coverage for it.

In this commit I'm adding a test case, derived from the bug being
reported in #200134. The mock debug server has a list of symbols to ask
for and records the results. After LLDB has connected we check with the
mock that it got all the answers it wanted. Right now, 2 of the symbols
don't have values, but should according to the author of the bug report.
One symbol is intentionally missing to check that LLDB handles that
situation properly, even when the others have been fixed.

While I was doing this I realised the documentaiton for an unknown
symbol response was wrong. You can cross check this with GDB's:
https://sourceware.org/gdb/current/onlinedocs/gdb.html/General-Query-Packets.html#General-Query-Packets

In theory we should test the MachO behaviour too. However I was not able
to create a MachO example that did not end up using a host AArch64 Linux
binary that it found via. PID, while also getting far enough to send
qSymbol. Every workaround broke one of those 2 things. ELF testing is
better than the nothing we currently have.

Assisted by: ChatGPT 5.5
https://invent.kde.org/qt/clang/llvm/-/commit/ba9d799b1bf2433bf960a08ff995497f5b6d2feb

Git commit 62e843ac959f2ad617f18bea20141d6c33913572 by GitHub (on behalf of Arseniy Obolenskiy) on 21/07/2026 at 08:09..
[AMDGPU] Reject illegal image atomic data widths in SelectionDAG (#210366)
https://invent.kde.org/qt/clang/llvm/-/commit/62e843ac959f2ad617f18bea20141d6c33913572

Git commit d13b8625eef0941f48b5af74e9fab953b6430eb2 by GitHub (on behalf of Yanzuo Liu) on 21/07/2026 at 08:09..
[clang][Parser] Warn when the body of expansion statement is not a compound statement (#209229)

<https://eel.is/c++draft/stmt.expand#nt:expansion-statement>:

_expansion-statement_:  
template for ( _init-statement<sub>opt</sub>_ _for-range-declaration_ :
_expansion-initializer_ ) _compound-statement_
https://invent.kde.org/qt/clang/llvm/-/commit/d13b8625eef0941f48b5af74e9fab953b6430eb2

Git commit 285a3cb74ef4cdc080cb264d44d1e3c9aa3a33be by GitHub (on behalf of Fangrui Song) on 21/07/2026 at 08:22..
[CycleInfo] Store entries in the block layout. NFC (#210866)

A reducible loop has a single entry (header), which flatten() places at
BlockLayout[IdxBegin], as its minimum-preorder block. A reducible loop
then needs no storage at all.

For the uncommon irreducible loop case, we append its full entry list
(header first) after the Euler tour, referenced by [EntryBegin,
EntryBegin+EntrySize), making `GenericCycleInfo::Cycle` (named only
because "loop" is occupied by LoopInfo) trivially destructible.
https://invent.kde.org/qt/clang/llvm/-/commit/285a3cb74ef4cdc080cb264d44d1e3c9aa3a33be

Git commit 0228facbd558a55e7db6646572d857d1b0cf9596 by GitHub (on behalf of Craig Topper) on 21/07/2026 at 08:25..
[RISCV][P-Ext] Add RISCVISD::WADD/WSUB. (#210862)
https://invent.kde.org/qt/clang/llvm/-/commit/0228facbd558a55e7db6646572d857d1b0cf9596

Git commit c096c8ddf1fee7777f9724c05f04fa3f5d2033d3 by GitHub (on behalf of Matt Arsenault) on 21/07/2026 at 09:06..
PPC: Remove manual run of machine verifier (#208032)

This is redundant with using the standard -verify-machineinstrs.
It's also confusing / worse, since the error is not produced to
stderr.
https://invent.kde.org/qt/clang/llvm/-/commit/c096c8ddf1fee7777f9724c05f04fa3f5d2033d3

Git commit 9e2664e70c55bfd68b6c982a0087eadc5edc37f9 by GitHub (on behalf of Momchil Velikov) on 21/07/2026 at 09:07..
[GVN] Rename some functions to follow LLVM naming conventions (NFC) (#210332)
https://invent.kde.org/qt/clang/llvm/-/commit/9e2664e70c55bfd68b6c982a0087eadc5edc37f9

Git commit bd07f0c81cad3510d3a0288e6f6feb2b2b475970 by GitHub (on behalf of Ramkumar Ramachandra) on 21/07/2026 at 09:14..
[VPlan] Drop redundant ArrayRef constructions (NFC) (#210680)
https://invent.kde.org/qt/clang/llvm/-/commit/bd07f0c81cad3510d3a0288e6f6feb2b2b475970

Git commit feabbb0f4611a9c26d6ae694232bfca7964e6233 by GitHub (on behalf of Benedek Kaibas) on 21/07/2026 at 09:15..
[analyzer] Fix false positive when a lifetimebound method is called during destruction (#210801)

When a `lifetimebound` method is called during destruction the checker
emits warnings which leads to false positives. To avoid this a dangling
stack source is not reported if any frame on the current stack belongs
to a destructor.
https://invent.kde.org/qt/clang/llvm/-/commit/feabbb0f4611a9c26d6ae694232bfca7964e6233

Git commit 46fb353e5d48097b0056ec3eddf77d6ce41bf226 by GitHub (on behalf of Simi Pallipurath) on 21/07/2026 at 09:18..
[compiler-rt][test] Skip page-size feature detection under emulators. (#210683)

This avoids adding a page-size-* lit feature when compiler-rt tests are
configured to run through an emulator.

Perviously this used to work because failure to detect the page size
would fall back to 4096. Now after this change
https://github.com/llvm/llvm-project/pull/209175, the code tries to
execute config.python_executable through the emulator. For
emulator-based test configurations, this is inappropriate. The function
now returns None when an emulator is configured, and the lit feature is
only added when a concrete page size is available.
https://invent.kde.org/qt/clang/llvm/-/commit/46fb353e5d48097b0056ec3eddf77d6ce41bf226

Git commit dce3dc80492263e263535627b80ce948db4b2fcc by GitHub (on behalf of Younan Zhang) on 21/07/2026 at 09:18..
[Clang] Add NormalizedConstraint::dump() (#210498)

This facilitates debugging with concepts, particularly when we need to
check complex parameter mappings.

Since this is mainly for debugging purpose, we don't promise any text
stability and hence no tests provided.
https://invent.kde.org/qt/clang/llvm/-/commit/dce3dc80492263e263535627b80ce948db4b2fcc

Git commit bcde1af59d0a3c9c6f596c9144b89e61f30ce40f by GitHub (on behalf of Wenju He) on 21/07/2026 at 09:20..
[OFFLOAD][L0] Fix PatternSize assert in L0QueueTy::memoryFill (#210867)

The message was the opposite of the assert condition.

In addition, when PatternSize == Size the caller wants to fill the
region with exactly one copy of the pattern, which is a valid operation.

The issue was found by AI.

Also check `Size % PatternSize == 0` per L0 spec.
https://invent.kde.org/qt/clang/llvm/-/commit/bcde1af59d0a3c9c6f596c9144b89e61f30ce40f

Git commit d0cc9123eb14cae514e6f4e77cf5d1e3c32b6ebe by GitHub (on behalf of Ramkumar Ramachandra) on 21/07/2026 at 09:23..
[VPlan] Use equal_to in isUsedByLoadStoreAddr (NFC) (#210911)
https://invent.kde.org/qt/clang/llvm/-/commit/d0cc9123eb14cae514e6f4e77cf5d1e3c32b6ebe

Git commit fd9e690cdbeb02832cc36d455bffda9e7e813785 by GitHub (on behalf of Jolyon) on 21/07/2026 at 09:32..
[RegisterCoalescer] Avoid retrying high-cost joins for live intervals (#207976)

Recently we found a compile time problem in the case that contains much
high-cost live
interval. And normal interference failures still set `Again=true` and
can be retried
(it cost N^2 complexity). We tracks when a join failed only because of
the high-cost
guard, so that avoids putting such copies back into the retry worklist.

This reduce our huge function case from 14.6h to 12.8min in register
coalescer pass.
https://invent.kde.org/qt/clang/llvm/-/commit/fd9e690cdbeb02832cc36d455bffda9e7e813785

Git commit e2c012fa55eb16d74f890209dfdd97b0dfd96b15 by GitHub (on behalf of Akash Agrawal) on 21/07/2026 at 09:45..
[Clang][Sema] Fix crash on lambda parameter pack with illegal default argument (#210718)

`Sema::ActOnParamDefaultArgument` checked a default-argument expression
for unexpanded parameter packs before checking whether the parameter
itself is a pack. For a lambda parameter pack given a default argument
that is a pack expansion referencing an enclosing function's parameter
pack (e.g. `[](Types... = args...) {}`), the first check runs while
still inside the lambda's scope and sets
`LambdaScopeInfo::ContainsUnexpandedParameterPack` (a mechanism meant
for legitimate outer-pack references). The subsequent
`isParameterPack()` check then correctly diagnoses the real error and
discards the default argument, but the stale flag survives into the
built `LambdaExpr`'s dependence bits. A later unexpanded-pack check on
that `LambdaExpr` finds nothing to report and hits
`assert(!Unexpanded.empty() || LambdaReferencingOuterPacks)`, aborting
instead of just diagnosing the error.

Fix: check `Param->isParameterPack()` first and return immediately after
discarding the default argument, before ever calling
`DiagnoseUnexpandedParameterPack` on an expression that is about to be
thrown away. [dcl.fct.default]p3 forbids a default argument on a pack
parameter unconditionally, so this ordering is also semantically
correct, not just a crash workaround.

Fixes #210714
https://invent.kde.org/qt/clang/llvm/-/commit/e2c012fa55eb16d74f890209dfdd97b0dfd96b15

Git commit d8d1d444a2a69293292f10f19691da05207630f7 by GitHub (on behalf of Kigyosi Alexandru) on 21/07/2026 at 09:53..
[MLIR] Rerun control for actions in execution context (#209197)

Adds a Rerun control value to ExecutionContext::Control that allows the
re-execution of the current action immediately after it completes,
without restarting the full compilation pipeline. This is analogous to
GDB's ability to restart execution from a breakpoint. When the callback
returns Rerun, the action is executed normally, then re-dispatched
through the full ExecutionContext::operator() pipeline, including
breakpoint matching, so the user gets a fresh opportunity to inspect or
control the re-execution. As a practical usage example, a breakpoint +
an observer can be added, to save and restore IR between runs to check
if each run produces the same IR or something different each time. A
depth-keyed structure is used, so rerun requests survive nested action
dispatch and are consumed by the correct stack frame.
https://invent.kde.org/qt/clang/llvm/-/commit/d8d1d444a2a69293292f10f19691da05207630f7

Git commit 914d5a1841dedf2148e21bd6de3b92409fe79285 by GitHub (on behalf of Ben Dunbobbin) on 21/07/2026 at 09:53..
[DTLTO] Overlap temporary file removal (#209423)

Deleting the temporary files produced by the DTLTO pipeline can be
expensive on Windows hosts. For a Clang link (Debug build with
sanitizers and instrumentation) using an optimized toolchain (PGO
non-LTO, llvmorg-22.1.0) on a Windows 11 Pro (Build 26200), AMD Family
25 @ ~4.5 GHz, 16 cores/32 threads, 64 GB RAM machine, the mean duration
of the "Remove DTLTO temporary files" time trace scope was 1267.789 ms
(measured over 10 runs).

This patch performs the deletions on a background thread, allowing them
to overlap with the tail of the link to hide this cost.

This is a re-implementation of the asynchronous cleanup idea from
https://github.com/llvm/llvm-project/pull/186988, which had to be
reverted in https://github.com/llvm/llvm-project/pull/189043 because
cleanup was not guaranteed to complete before LLD invoked
timeTraceProfilerCleanup(). In certain cases timeTraceProfilerCleanup()
was called before temporary file deletion had completed in LLD, which
caused memory leaks that were flagged by sanitizer builds.

Note that the DTLTO implementation has been refactored heavily since
https://github.com/llvm/llvm-project/pull/186988, so this is a
re-implementation along the same lines.

To solve the ordering issue, LLD now calls a hook that defaults to a
no-op, and DTLTO overrides it to drain the background deletion work.
LLD calls this hook before time-trace write/cleanup.
https://invent.kde.org/qt/clang/llvm/-/commit/914d5a1841dedf2148e21bd6de3b92409fe79285

Git commit 818fd11b95108b1b2a879f474f3c3bf54630b01b by GitHub (on behalf of Sushant Gokhale) on 21/07/2026 at 10:12..
[SelectionDAG] Merge consecutive loads feeding as shuffle operands (#207303)

Perform the following fold given loadA and loadB can be proven
consecutive:
```
concat(shuffle(loadA, loadB, mask0), shuffle(loadA, loadB, mask1))
 -> shuffle(loadAB, poison, concat(mask0, mask1))
```
https://invent.kde.org/qt/clang/llvm/-/commit/818fd11b95108b1b2a879f474f3c3bf54630b01b

Git commit b227ed7c9d42c43a8d3f4a0bbe55d80ac8101de5 by GitHub (on behalf of David Spickett) on 21/07/2026 at 10:13..
[lldb][docs] Add platform/target support requirements doc (#207166)

This is a very delayed follow up to:

https://discourse.llvm.org/t/rfc-surveying-lldbs-supported-platforms-and-architectures/83978

Where I realised that even for upstream supported targets, the level of
testing and attention they get varies a lot. Which I think is not a bad
thing, because LLDB would be much more chaotic if it were a bad thing.

The problem I see is that no one really knows how to start writing
proposals for new targets, and no one really knows how to properly
assess one.

Me included, but what I can do is write out some starting points for
both parties. Hopefully this makes the process a bit more fair for those
not used to writing RFCs.

(and if we want to make the rules more strict, we will now have a place
to document that)

The document also includes some technical guidance, but I don't want to
get stuck in the
"How to Write an LLVM backend" type cycle. Where we write a thing and it
becomes outdated instantly.

So what's there is deliberately high level because Developers will have
to learn the codebase anyway
to have any chance of writing target support.

A bit like adding a new language, which has unknown scope. But unlike a
new language, there are plenty of targets to look at, so I think it's
more justifiable here.

In terms of the famous meme:
This document isn't going to tell you how to
"draw the rest of the owl", but it gives you the names of some key
techniques in owl drawing and advice for how to best present your owl to
the "drawings of owls" society when you're done.

Please note that this new requirement of an RFC does not apply to
targets that are in progress or in discussion right now.
https://invent.kde.org/qt/clang/llvm/-/commit/b227ed7c9d42c43a8d3f4a0bbe55d80ac8101de5

Git commit 46e8d53390a0f2aeff3e738ac39623b0eafc03cd by GitHub (on behalf of Simon Pilgrim) on 21/07/2026 at 10:14..
[X86] Synchronise middle and backend test coverage for ADDSUBPS/PD patterns (#210919)

Use the same test names wherever possible and ensure sse3-avx-addsub.ll
has test coverage for the IR emitted by the middle-end (no matter how
poor it is)

Prep work for #144489 (sse3-avx-addsub-2.ll will be deleted along with
lowerToAddSubOrFMAddSub)
https://invent.kde.org/qt/clang/llvm/-/commit/46e8d53390a0f2aeff3e738ac39623b0eafc03cd

Git commit c6bb072d9e40fcf66b26f4896ae0beb2d2f44646 by GitHub (on behalf of Younan Zhang) on 21/07/2026 at 10:15..
[Clang] Don't print extra whitespace for comma expression in StmtPrinter (#210920)

For binary expression `1, 2`, StmtPrinter used to print it as `1 , 2`
which doesn't look very pretty.
https://invent.kde.org/qt/clang/llvm/-/commit/c6bb072d9e40fcf66b26f4896ae0beb2d2f44646

Git commit be25717739a8b4f15fd4ccc2f8b28490ed67e922 by GitHub (on behalf of Alexey Gerenkov) on 21/07/2026 at 10:17..
[Xtensa] Support 'f' Inline Assembly Constraint (#202345)

This adds the 'f' inline assembly constraint, as supported by GCC. An
'f'-constrained operand is passed in a floating point register.
https://invent.kde.org/qt/clang/llvm/-/commit/be25717739a8b4f15fd4ccc2f8b28490ed67e922

Git commit b3ce81298eb4b3e6fdebc62a7430fd2c848d9fb7 by GitHub (on behalf of Raphael Isemann) on 21/07/2026 at 10:31..
[lldb][NFC] Remove Stream::Printf calls with constant strings in Interpreter/* (#210289)

`Stream::Printf` needs to call various other (variadic) functions, needs
to parse the input string and potentially handle too-long format
outputs. Calling in with a constant string is wasting a lot of
instruction on doing nothing.

assisted-by: claude
https://invent.kde.org/qt/clang/llvm/-/commit/b3ce81298eb4b3e6fdebc62a7430fd2c848d9fb7

Git commit 45289c7113eee43b38f7feb798f4b4d4a6db1025 by GitHub (on behalf of Raphael Isemann) on 21/07/2026 at 10:31..
[lldb][NFC] Remove Stream::Printf calls with constants in Commands/ (#210291)

`Stream::Printf` needs to call various other (variadic) functions, needs
to parse the input string and potentially handle too-long format
outputs. Calling in with a constant string is wasting a lot of
instruction on doing nothing.

assisted-by: claude
https://invent.kde.org/qt/clang/llvm/-/commit/45289c7113eee43b38f7feb798f4b4d4a6db1025

Git commit 7aa17579b6299c67996aa1eb0aeed963ae506c93 by GitHub (on behalf of Raphael Isemann) on 21/07/2026 at 10:32..
[lldb][NFC] Remove Stream::Printf calls with constant strings in Target/* (#210287)

`Stream::Printf` needs to call various other (variadic) functions, needs
to parse the input string and potentially handle too-long format
outputs. Calling in with a constant string is wasting a lot of
instruction on doing nothing.

assisted-by: claude
https://invent.kde.org/qt/clang/llvm/-/commit/7aa17579b6299c67996aa1eb0aeed963ae506c93

Git commit 3ef7c5afbc977d238ab1d69473dbf3da3e3347b3 by GitHub (on behalf of Alan Li) on 21/07/2026 at 10:36..
[GlobalISel][AMDGPU][test] fix cttz/cltz tests in no-assert builds (#210926)

A follow up PR of https://github.com/llvm/llvm-project/pull/198438 

This is to address post commit test issues:
https://lab.llvm.org/buildbot/#/builders/202/builds/726

Keep the normal combine and unknown-input baseline coverage enabled in
all builds, and move the named rule-disable checks into an
assertion-only test.
https://invent.kde.org/qt/clang/llvm/-/commit/3ef7c5afbc977d238ab1d69473dbf3da3e3347b3

Git commit 6d8d3f851820a61054000dbeaed3ab8e212685d3 by GitHub (on behalf of eleviant) on 21/07/2026 at 10:44..
[clang] Add flag for making pointer subtraction defined (#196392)

The C and C++ standards require both operands of pointer subtraction to
refer to elements of the same array object. Clang/LLVM currently relies
on this rule in several optimizations:

- `inbounds` GEP introduces UB assumptions once the computed address
escapes the originating object bounds.

- `sdiv exact` assumes %op1 is divisable by %op2 otherwise it is a
poison value.

The first issue may be addressed with -fwrapv-pointer command line
option, however there is no option in clang to mitigate the second
issue. Patch adds a new -fdefined-pointer-subtraction to address this.
https://invent.kde.org/qt/clang/llvm/-/commit/6d8d3f851820a61054000dbeaed3ab8e212685d3

Git commit acfaabebcfd10d4dbabeb54cf0c60509648fb82f by GitHub (on behalf of Luke Lau) on 21/07/2026 at 10:46..
Revert "[RISCV] Run EarlyMachineLICM before VLOptimizer to hoist constant splats" (#210937)

Reverts llvm/llvm-project#210028

I've bisected the hangs on rva20 to this commit:
https://lab.llvm.org/buildbot/#/builders/210/builds/11806
https://invent.kde.org/qt/clang/llvm/-/commit/acfaabebcfd10d4dbabeb54cf0c60509648fb82f

Git commit c256325bb70344fd067978a14ce77aa8f7d04af7 by skc7 on 21/07/2026 at 10:53..
[AMDGPU] Fix LDS access via flat pointer argument in amdgpu-sw-lower-lds
https://invent.kde.org/qt/clang/llvm/-/commit/c256325bb70344fd067978a14ce77aa8f7d04af7

Git commit 25d57b23b33ff21483d4ec5e3c322f02bf1a22c5 by skc7 on 21/07/2026 at 10:53..
update
https://invent.kde.org/qt/clang/llvm/-/commit/25d57b23b33ff21483d4ec5e3c322f02bf1a22c5
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.