[qt/clang/llvm]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 00:12:21 +0000 (UTC)
| 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/arichardson/spr/main.riscv-change-riscvabicomputetargetabi-to-return-expectedabi'.
Changed from 0000000000000000000000000000000000000000 to 6f056c5e3f1c6c5c732c80f47dc01c0d5c00a405
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 7609cb83bf5fc5c25e287770db277dbb34e674b8 by GitHub (on behalf of Finn Plummer) on 04/08/2026 at 17:33..
[DirectX] Prevent `dxil-resource-access` from inserting a resource access in-between phi nodes (#211343)
The pass can incorrectly place a load/store within the phi nodes at top
of the basic block: https://godbolt.org/z/x5Ec4GWGT
This is resolved by updating `replaceHandleWithIndices` to adjust the
insertion point when the ptr comes from a phi node.
Resolves, in part, https://github.com/llvm/llvm-project/issues/211121
Assisted by: Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/7609cb83bf5fc5c25e287770db277dbb34e674b8
Git commit 5382f7d64ff59d198091ffd263d7adecf5d7dd5a by GitHub (on behalf of Benjamin Maxwell) on 04/08/2026 at 17:48..
[CostModel][AArch64] Add initial costs for `masked.compressstore` (#213712)
This adds an initial cost model for `masked.compressstore`. The tests
are based on `masked_expand_load.ll`, which covers all configurations
for the `expand`/`compact` instructions.
Note: Right now, we only report valid costs for `masked.compressstore`
operations that can be lowered with SVE1 (as that's all we handle ISEL
for at the moment).
https://invent.kde.org/qt/clang/llvm/-/commit/5382f7d64ff59d198091ffd263d7adecf5d7dd5a
Git commit af14456a2bac55026b2d57cbf14b3905c452b8a4 by GitHub (on behalf of arsnyder16) on 04/08/2026 at 17:52..
[OpenMP] Simplify generic microtask dispatch (#214004)
Replace the generic microtask dispatcher's handwritten function-pointer
types and calls with a variadic-template helper and a macro for each
supported argument count.
The dispatcher still casts each microtask to the exact fixed-arity
signature required by platforms such as WebAssembly. This is intended as
a refactor only: the existing limit of 15 microtask arguments and the
diagnostic for larger argument counts remain unchanged.
This reduces the repetitive code and makes future changes to the
supported argument range easier to review.
Split out from #211071
https://invent.kde.org/qt/clang/llvm/-/commit/af14456a2bac55026b2d57cbf14b3905c452b8a4
Git commit 2a2adde35937667dd93dc5594ac5d52842e116d2 by GitHub (on behalf of Chinmay Deshpande) on 04/08/2026 at 17:56..
[AMDGPU][GISel] Add RegBankLegalize rules for llvm.amdgcn.fdot2.bf16.bf16 (#214013)
https://invent.kde.org/qt/clang/llvm/-/commit/2a2adde35937667dd93dc5594ac5d52842e116d2
Git commit 500962298d624a74ade58c2aeb65313fb32dda5a by GitHub (on behalf of Alexey Bataev) on 04/08/2026 at 17:57..
[InstCombine]Fold fcmp+select to min/max if its zero sign is missing
Look through phis, chained selects and the loop back edge to the
select itself and fold if no use can observe the sign of zero of the
result. This restores the fold for loop-carried and unrolled running
min/max values (fcsel -> fminnm on AArch64) lost to the signed zero
handling fix in matchSelectPattern (#210077).
Reviewers: nikic, dtcxzyw
Pull Request: https://github.com/llvm/llvm-project/pull/213133
https://invent.kde.org/qt/clang/llvm/-/commit/500962298d624a74ade58c2aeb65313fb32dda5a
Git commit 70ecc5bb62187ca70e6fe4e563dbd60f88c2e7a0 by GitHub (on behalf of Timur Golubovich) on 04/08/2026 at 17:58..
Revert "[GlobalISel] Combine merge-unmerge with mixed scalar and vector types" (#214010)
Reverts llvm/llvm-project#213086
https://invent.kde.org/qt/clang/llvm/-/commit/70ecc5bb62187ca70e6fe4e563dbd60f88c2e7a0
Git commit 6326f14cdc12babfdc4359f5ddd4dfcd66b53f33 by GitHub (on behalf of Adam Smith) on 04/08/2026 at 18:03..
[CIR] Lower variadic calls in CallConvLowering for x86_64 (#213315)
CallConvLowering classified each function once from its declared
signature and reused that classification at every call site. An argument
passed through an ellipsis has no entry in the callee's parameter list,
so on x86_64 an ellipsis argument that needed an extension attribute, a
register coercion, or a byval slot was emitted unchanged whenever the
callee's declared parameters happened to need no rewrite, and reported
NYI when they did.
An ellipsis argument competes for the same registers as a declared one,
so the same two-eightbyte record goes in a register pair early in the
list and byval once the integer registers are gone. Variadic call sites
under the x86_64 driver are now classified from the call's own operand
types, and the declared parameter count reaches
`llvm::abi::FunctionInfo::create` as its `NumRequired` argument, which
is what lets the classifier tell a named argument from one passed
through the ellipsis. Today that flag only decides whether a large
vector goes in a register, and the CIR type bridge admits no vector
types, so the boundary changes no output yet.
`prependIndirectCallee` also rebuilt the callee pointer's pointee
without `isVarArg`, dropping the ellipsis from a lowered indirect call
and with it the vector-register count the x86_64 SysV ABI passes in AL.
A void return and a return the ABI drops, such as an empty record, both
classify as `Ignore` while needing opposite treatment, so
`FunctionClassification` now records which one it was where the
classification is produced. `needsRewrite` moves from the CIR rewriter
to `mlir/include/mlir/ABI/ABIRewriteContext.h`, over a new per-argument
`isPassThrough`, so the pass and the rewriter share one definition.
Two things are newly diagnosed rather than newly broken. The
operand-count check moves ahead of the pass-through early return, so a
call whose operand count disagrees with a `no_proto` callee's
declaration is reported instead of lowered with operands the
classification never covered. And the indirect-call walk visits
`cir::CIRCallOpInterface` rather than only `cir.call`, so a variadic
indirect `cir.try_call` is accounted for, and one that needs a rewrite
is reported instead of left as written while the signature around it is
coerced. A non-variadic indirect `cir.try_call` is filtered out where
the walk collects, since rewriting one is unimplemented either way and
that gap has nothing to do with the ellipsis. Reported NYI: variadic
indirect calls that need a rewrite, variadic calls under the other
drivers, and an ellipsis argument whose ABI coercion the type bridge
cannot represent.
https://invent.kde.org/qt/clang/llvm/-/commit/6326f14cdc12babfdc4359f5ddd4dfcd66b53f33
Git commit c9f2ba22849e50df1277db8225a6410ba9ddcb5e by GitHub (on behalf of Sam Elliott) on 04/08/2026 at 18:09..
[RISCV] Fix Xqci Fusions with Frame Indexes (#213815)
Pre-RA, the ADDI can contain a frame index rather than a register, which
causes `getReg()` to assert. These were missing the `CheckIsRegOperand`
that most other fusions have.
https://invent.kde.org/qt/clang/llvm/-/commit/c9f2ba22849e50df1277db8225a6410ba9ddcb5e
Git commit cafd36bfce67682193c3d5da591b051a460e50f6 by GitHub (on behalf of Erich Keane) on 04/08/2026 at 18:11..
[NFC][CIR] Propagate SymbolTables better (#213972)
This came up during self-build, we are spending a lot of time in some
cases looking up using the global symbol table, which does no caching.
Previously we'd propagated this in a few places, but this patch removes
all uses of SymbolTable::lookup and adds the cache everywhere.
This involved changing the tablegen to include it in each of our
rewriters, plus the CirAttr lowering everywhere.
The only thing we have to take care of is to make sure we invalidate the
cache/update the cache whenever we add something with a name (see
createLLVMFuncOpIfNotExist).
This is NFC, as it isn't observable, other than being a build time
improvement.
https://invent.kde.org/qt/clang/llvm/-/commit/cafd36bfce67682193c3d5da591b051a460e50f6
Git commit 1f69a16289478c9a7b2cda5df4cd16d6609eb2c2 by GitHub (on behalf of Simon Pilgrim) on 04/08/2026 at 18:15..
[CostModel][X86] getArithmeticReductionCost - ensure we test the vXi1 reductions types before legalisation (#211043)
Pre-AVX512 these will be legalized to wider vector types and might match
against other reductions tables.
Noticed while working on improving logic reductions, but hit a case
with/without popcnt for bool sum reduction patterns - I've added a AVX2
test pass to check the (corrected) costs are still working
https://invent.kde.org/qt/clang/llvm/-/commit/1f69a16289478c9a7b2cda5df4cd16d6609eb2c2
Git commit 08a8739ac89a27c7dbd0349266611ca94866ae2f by GitHub (on behalf of Nerixyz) on 04/08/2026 at 18:16..
[lldb][Python] Inline `lldb_iter` for better type inference (#214000)
Currently, the `lldb_iter` helper is used for providing `__iter__` in
the Python bindings:
```python
def lldb_iter(obj, getsize, getelem):
"""A generator adaptor to support iteration for lldb container objects."""
size = getattr(obj, getsize)
elem = getattr(obj, getelem)
for i in range(size()):
yield elem(i)
```
A type checker or LSP can't see through this function. Currently, that's
no problem, because it doesn't know the return type of any Swig wrapper,
but when we add type annotations (hopefully with Swig 4.5 in #213463),
`__iter__` remains untyped. So iterating through the wrappers won't show
the correct type.
As the functionality is fairly simple, it's easier to inline it. That's
what this PR does. Then a type checker can infer the return type.
https://invent.kde.org/qt/clang/llvm/-/commit/08a8739ac89a27c7dbd0349266611ca94866ae2f
Git commit ab4f210a3127e3ba177381891194144f92798ba6 by GitHub (on behalf of Matt Arsenault) on 04/08/2026 at 18:17..
clang: Replace Is*OffloadArch free functions with OffloadArch methods (#213363)
https://invent.kde.org/qt/clang/llvm/-/commit/ab4f210a3127e3ba177381891194144f92798ba6
Git commit a9a6edb5935c9f42c592836612356bea56e3c08b by GitHub (on behalf of Alexey Bataev) on 04/08/2026 at 18:18..
[SLP]Vectorize single-user instructions as the last-attempt seeds
Instructions with the single user cost one extract per lane, so they are
vectorized after all other roots in the function are exhausted, grouped by
the key/subkey pairs. Loads, addresses, compares and the operations, folded
away or contracted into the scalar FMA, are excluded. The rejected bundles
and the members of the priced minimal nodes are not retried, unless the
tree was dropped by the repacking overhead rather than by the members.
Reviewers: hiraditya, RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/212579
https://invent.kde.org/qt/clang/llvm/-/commit/a9a6edb5935c9f42c592836612356bea56e3c08b
Git commit 402c9f9a776dc20d03e33c447d86634c486a5434 by GitHub (on behalf of Henry Jiang) on 04/08/2026 at 18:23..
[NFC][Cuda][test] Fix CHECK-NOT patterns matching the build directory (#213799)
`cuda-omp-unsupported-debug-options.cu`'s COMMON-NOT: ...|lldb|... can
match against the build directory path that may contain `lldb` in the
pathname. Change the test to check the exact cc1 arguments.
rdar://183501558
https://invent.kde.org/qt/clang/llvm/-/commit/402c9f9a776dc20d03e33c447d86634c486a5434
Git commit f59d6f5f866b97413510fa119144651fbbbc7123 by GitHub (on behalf of Usama Hameed) on 04/08/2026 at 18:49..
[clang][test] Add test for stack_protector_ignore in system macros (#213770)
d3184bc6c6a8 ("[clang] Don't warn on stack_protector_ignore in system
macros") added SuppressInSystemMacro to
warn_stack_protection_ignore_attribute but only added an LLVM CodeGen
test for the stack-protector metadata, so the diagnostic change itself
was untested.
Add a test using the self-include system_header idiom: the attribute
from a system header macro does not warn under -fstack-protector-all,
while one written in user code still does.
rdar://183962985
https://invent.kde.org/qt/clang/llvm/-/commit/f59d6f5f866b97413510fa119144651fbbbc7123
Git commit 4376b8d66961db360945db44abe510d9f13abf61 by GitHub (on behalf of Alexey Bataev) on 04/08/2026 at 18:57..
[SLP]Flatten add/sub and fadd/fsub chains into one reassociated node
A peeled subtract keeps the column sign for its first operand and flips
it for the second, so mixed add/sub (fadd/fsub with reassoc) chains
linearize into positive and negative operand columns combining as
sum(positive) - sum(negative), with subtrahend columns reordered by
value family. nuw is now also dropped on non-exact combines when a
negated leaf exists, since a regrouped subtrahend sum can exceed the
original running total.
Reviewers: RKSimon, bababuck, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/213544
https://invent.kde.org/qt/clang/llvm/-/commit/4376b8d66961db360945db44abe510d9f13abf61
Git commit b07fc8a44aa6ac03ec8e0c79b04134bda87b5279 by GitHub (on behalf of Folkert de Vries) on 04/08/2026 at 19:00..
[SPARC] Do not use the unimp struct-return convention for zero-sized types (#213733)
GCC has special handling for an `sret` of a zero-sized type, match that
handling.
https://godbolt.org/z/Tcraao7rT
It seems unlikely someone is actually relying on this, so I haven't
added the abi compatibility logic. Rust however uses zero-sized types
quite heavily, so having this work correctly is useful there.
https://invent.kde.org/qt/clang/llvm/-/commit/b07fc8a44aa6ac03ec8e0c79b04134bda87b5279
Git commit 8cf3268b3a65e186f104139a3f53d07de8d5032a by GitHub (on behalf of Andy Kaylor) on 04/08/2026 at 19:10..
[CIR][AArch64] Use CIR's fma and sqrt for Neon builtins (#213800)
This change replaces some locations where the Neon builtin handling was
calling LLVM intrinsics directly for FMA and sqrt operations rather than
using the CIR operations. Using the CIR operations will be necessary to
get the best constrained FP handling.
This will still require setting the fenv attribute on these operations
when needed. This change is just the first of a few preliminary changes
needed to get us in a good state to add the constrained FP handling.
Assisted-by: Cursor / Grok 4.5
https://invent.kde.org/qt/clang/llvm/-/commit/8cf3268b3a65e186f104139a3f53d07de8d5032a
Git commit d4628526bdd2c8bd03acdcbf0f9d8710ef243486 by GitHub (on behalf of Andy Kaylor) on 04/08/2026 at 19:15..
[CIR] Apply FP constraints to global initializers (#213776)
Because CIR handles global initializers using a region of the cir.global
operation during initial code generation, these initializers don't
automatically get the strictfp setup in CIRGenFunction::startFunction.
This change adds an attribute to the cir.global operation to track
floating-point constraints so that the `strictfp` attribute can be set
on the initialization function when it is created during EHABI lowering.
Assisted-by: Cursor / various models
https://invent.kde.org/qt/clang/llvm/-/commit/d4628526bdd2c8bd03acdcbf0f9d8710ef243486
Git commit 32b645d9d69b8c2e62890fed19203337beddf797 by GitHub (on behalf of Eric Christopher) on 04/08/2026 at 19:21..
[DebugInfo] Treat tag offsets as non-emitting (#211969)
DW_OP_LLVM_tag_offset doesn't emit anything into the DWARF expression,
so look past it when deciding whether a register expression is complex
or whether appendToStack needs to add a dereference.
Tested with make check.
Assisted with AI.
https://invent.kde.org/qt/clang/llvm/-/commit/32b645d9d69b8c2e62890fed19203337beddf797
Git commit 70253af8709617b860865ce8d74204718e8a1975 by GitHub (on behalf of Vitaly Buka) on 04/08/2026 at 19:27..
[NFC][libFuzzer] Remove unused GetModuleName helper in TracePC (#214032)
Fixing build bots after
https://github.com/llvm/llvm-project/pull/203084.
https://invent.kde.org/qt/clang/llvm/-/commit/70253af8709617b860865ce8d74204718e8a1975
Git commit 7f498d9d36d102a653089e86cc07d0a7f90bfaec by GitHub (on behalf of Qiongsi Wu) on 04/08/2026 at 19:38..
[clang][DependencyScanning] Use CompilerInstanceWithContext for TU Scanning (#211408)
After `CompilerInstanceWithContext`'s relocation to
`DependencyScanningWorker.cpp`, we can use it freely as an
implementation engine for TU scanning. This PR does that, and unifies
the by-name scanning and TU scanning so they all go through
`CompilerInstanceWithContext`.
rdar://167034309
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
https://invent.kde.org/qt/clang/llvm/-/commit/7f498d9d36d102a653089e86cc07d0a7f90bfaec
Git commit 04722a4a32e6fec1897cc3cb5a54809fcd8c9cae by GitHub (on behalf of Qiongsi Wu) on 04/08/2026 at 19:38..
[clang][DependencyScanning] Dissolve DependencyScannerImpl.h/cpp (#211409)
`DependencyScannerImpl.h/cpp` were created to share code between TU
scanning and by-name scanning when they were on different code paths.
After unifying the implementation through `CompilerInstanceWithContext`,
we no longer need a separate header/cpp pair and all the code are moved
into `DependencyScanningWorker.cpp`. This PR is mechnical and does not
intend to introduce behavivor changes.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
https://invent.kde.org/qt/clang/llvm/-/commit/04722a4a32e6fec1897cc3cb5a54809fcd8c9cae
Git commit b3ce07b9999000e6fad1c3aa8f429e2ff26b598f by GitHub (on behalf of Abhina Sree) on 04/08/2026 at 19:41..
[SystemZ][z/OS] use LLVM_THREAD_LOCAL instead of thread_local (#214039)
This patch is to fix the following error on z/OS
```
llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h:75:12: error: thread-local storage is not supported for the current target
75 | static thread_local std::vector<AllocatorTy *> Cache;
| ^
```
https://invent.kde.org/qt/clang/llvm/-/commit/b3ce07b9999000e6fad1c3aa8f429e2ff26b598f
Git commit cddc107899bdf09ee3ffd60b00b32455e699b130 by GitHub (on behalf of Arseniy Obolenskiy) on 04/08/2026 at 19:48..
[AMDGPU] Do not widen constant loads that may not be dereferenceable (#184790)
https://invent.kde.org/qt/clang/llvm/-/commit/cddc107899bdf09ee3ffd60b00b32455e699b130
Git commit dee70a0fc948ce9060f4225ee5b707af4287e5dc by GitHub (on behalf of Alexander Richardson) on 04/08/2026 at 19:55..
[TableGen] Generate `getRegClassFromMatchKind()` for AsmMatchers
This helper can be useful in validateTargetOperandClass to get the
MCRegisterClass for the MCK_* enum.
Migrate the RVY logic to use this new generated function. Checking all
register classes instead of just the RVY ones will marginally slow down
validateTargetOperandClass, but since this is already a slow path it
should not matter.
If multiple RegisterOperands share a ParserMatchClass but map to different
RegisterClasses, omit them from the generated getRegClassFromMatchKind
mapping function. I originally tried to emit an error here, but it turns
out there are many targets that rely on sharing the ParserMatchClass with
different (but similar) RegisterClasses so ignoring them is safer.
Reviewed By: lenary
Pull Request: https://github.com/llvm/llvm-project/pull/200453
https://invent.kde.org/qt/clang/llvm/-/commit/dee70a0fc948ce9060f4225ee5b707af4287e5dc
Git commit 0d1b54604dac73adc16af15f433ae0c92069fcc2 by GitHub (on behalf of Alexander Richardson) on 04/08/2026 at 19:57..
[TableGen][AsmMatcher] Resolve RegClassByHwMode kinds for all operands
validateOperandClass() only remapped a RegClassByHwMode operand kind
when the actual parsed operand was a register. When the operand was
something else entirely (e.g. a bare immediate where a register was
expected), this fell through to the generic "Kind <= MCK_LAST_REGISTER"
diagnostic check, so we end up with a generic Match_InvalidOperand.
No test changes here, but this is needed to avoid diagnostic regressions
with the RVY load/store support (PR #177073).
Pull Request: https://github.com/llvm/llvm-project/pull/213479
https://invent.kde.org/qt/clang/llvm/-/commit/0d1b54604dac73adc16af15f433ae0c92069fcc2
Git commit c740c54517fafdfb6a3dd3522700076d5184c842 by GitHub (on behalf of Abhina Sree) on 04/08/2026 at 19:57..
[SystemZ][z/OS] Add guard for SI_USER (#213101)
SI_USER is not defined on z/OS and is causing the following build
failure. `error: use of undeclared identifier 'SI_USER'`
This patch adds a guard to check whether SI_USER is defined
before using it.
https://invent.kde.org/qt/clang/llvm/-/commit/c740c54517fafdfb6a3dd3522700076d5184c842
Git commit 8343c538f0e7edee8bfc2c800f6d1bfaef664c12 by GitHub (on behalf of forking-google-bazel-bot[bot]) on 04/08/2026 at 20:09..
[Bazel] Fixes 04722a4 (#214049)
This fixes 04722a4a32e6fec1897cc3cb5a54809fcd8c9cae (#211409).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=04722a4a32e6fec1897cc3cb5a54809fcd8c9cae
Co-authored-by: Google Bazel Bot <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/8343c538f0e7edee8bfc2c800f6d1bfaef664c12
Git commit 44c6aed9bd9b9cda993f4e93f2cbdb4fbba890d0 by GitHub (on behalf of Spencer Bryngelson) on 04/08/2026 at 20:15..
[flang][OpenMP] Diagnose failed construct decomposition instead of falling through (#214012)
`buildConstructQueue` asserts that decomposition produced output:
```cpp
ConstructDecomposition decompose(modOp, semaCtx, eval, compound, clauses);
assert(!decompose.output.empty() && "Construct decomposition failed");
```
Release builds have no check, so the empty queue falls through to the
loop below and out to the
caller. That is undefined behaviour, and it is reachable — semantics
does not catch every
directive/clause combination that cannot be decomposed. The result is an
intermittent segfault
rather than a diagnostic.
#211430 is one way in: `allocate` is an OpenMP 5.0 clause, but most
directives declare it in
`OMP.td` without a minimum version, so semantics accepts it below 5.0
and decomposition then
correctly refuses it. flang defaults to OpenMP 3.1, so no unusual flags
are needed. The
intermittency is what made that report hard to pin down — 40 trials at
`-fopenmp-version=31`:
| | segfaults |
|---|---|
| ASLR on | 25/40 |
| ASLR off (`setarch -R`) | 0/40 |
which is an uninitialized read.
After this patch the same input fails deterministically with a located
diagnostic, 40/40:
```
error: loc("repro.f90":6:11): OpenMP construct decomposition failed: a clause on
'target teams distribute parallel do' cannot be applied to any of its leaf constructs
```
`genCrashDiag=false` so it exits non-zero without a backtrace, rather
than presenting as a compiler
crash.
This is a hardening fix for the lowering path and is independent of any
particular clause: it covers
every combination that decomposes empty. It does not make the `allocate`
case a *good* diagnostic —
that belongs in semantics, and #213980 is the separate change for it.
`check-flang` is clean (4808 tests). No test is added: the only in-tree
way to reach this path is
through the `OMP.td` gap that #213980 fixes, so a test here would encode
that gap as expected
behaviour and have to be removed when it lands. Happy to add one if
you'd prefer.
---
Parts of this change were written or audited with Claude Code. I have
reviewed all of it and take
full responsibility for the contribution. See
`llvm/docs/AIToolPolicy.md`.
https://invent.kde.org/qt/clang/llvm/-/commit/44c6aed9bd9b9cda993f4e93f2cbdb4fbba890d0
Git commit 83fb72a904e8231bf6879076b9c10bdbf25e4744 by GitHub (on behalf of Arthur Eubanks) on 04/08/2026 at 20:20..
[DWP] Eagerly clear buffers after writing (#213345)
Lowers peak memory usage on a llvm-dwp invocation from 12.37GB ->
11.19GB.
This actually now beats out GNU dwp (11.35GB) at least when the output
file is in tmpfs.
https://invent.kde.org/qt/clang/llvm/-/commit/83fb72a904e8231bf6879076b9c10bdbf25e4744
Git commit d52e98814c41487e5635a186d97bf5803e202457 by GitHub (on behalf of Henry Jiang) on 04/08/2026 at 20:25..
[NFC][AMDGPU] Fix exit code mismatch with EXPENSIVE_CHECK in schedule… (#214027)
…-amdgpu-tracker-physreg-crash.ll
Observed in
https://ci.swift.org/job/llvm.org/job/clang-stage1-RA-expensive/job/main/1155
with LLVM_ENABLE_EXPENSIVE_CHECKS enabled,
`CodeGen/AMDGPU/schedule-amdgpu-tracker-physreg-crash.ll` fails due to
MachineVerifier running, causing an exit 1.
Modified to always run the `-verify-machineinstrs`.
rdar://184010766
https://invent.kde.org/qt/clang/llvm/-/commit/d52e98814c41487e5635a186d97bf5803e202457
Git commit f20b64ffe5c81e0ef35bcf9990f60a1ff9157f7b by GitHub (on behalf of Dmitry Vasilyev) on 04/08/2026 at 20:26..
[lldb] Disable TestProcessSaveCoreMinidumpSizeMismatch on Windows hosts (#214044)
The buildbot
[lldb-remote-linux-win](https://lab.llvm.org/buildbot/#/builders/197) is
red after #212861. #212861 cannot be reverted automatically now because of
#212641. So disable TestProcessSaveCoreMinidumpSizeMismatch on Windows
hosts to make the buildbot green again.
https://invent.kde.org/qt/clang/llvm/-/commit/f20b64ffe5c81e0ef35bcf9990f60a1ff9157f7b
Git commit 03f86c6d4d55809f9531b5e37eb8249e569746aa by GitHub (on behalf of David Young) on 04/08/2026 at 20:32..
[Support][Driver][LLDB] Guard WIN32_LEAN_AND_MEAN definitions with #ifndef (#213045)
Several Windows headers/TUs unconditionally `#define
WIN32_LEAN_AND_MEAN`. When a build predefines the macro on the compiler
command line (e.g. a toolchain that passes -DWIN32_LEAN_AND_MEAN, which
clang treats as `#define WIN32_LEAN_AND_MEAN 1`), the differing token
lists trigger -Wmacro-redefined, which becomes a hard error under
-Werror.
Guard the definitions with #ifndef, matching the adjacent NOMINMAX
handling and the existing pattern in
llvm/lib/Support/rpmalloc/rpmalloc.c. The macro is only a presence flag,
so keeping an externally-provided definition is correct.
Sites guarded:
llvm/include/llvm/Support/Windows/WindowsSupport.h
llvm/lib/WindowsDriver/MSVCPaths.cpp
clang/lib/Driver/ToolChains/MSVC.cpp
lldb/include/lldb/Host/windows/windows.h
Meta ran into this internally building lldb on window after a sync with
upstream from July commit, so adding guards would allow us to drop a
workaround of ignoring the duplicate defines.
Error:
llvm\include\llvm/Support/Windows/WindowsSupport.h(29,9): error:
'WIN32_LEAN_AND_MEAN' macro redefined [-Werror,-Wmacro-redefined]
29 | #define WIN32_LEAN_AND_MEAN
| ^
<command line>(10,9): note: previous definition is here
10 | #define WIN32_LEAN_AND_MEAN 1
| ^
1 error generated.
https://invent.kde.org/qt/clang/llvm/-/commit/03f86c6d4d55809f9531b5e37eb8249e569746aa
Git commit 46b8eb861352d0d34623a3139ed11de763317323 by GitHub (on behalf of Nikita Terentev) on 04/08/2026 at 20:39..
[NFC][Clang][Docs] Fix minor typos in Constant Interpreter doc. (#211608)
First: Typo is obvious.
Second: In the example, the a.y field is missing and field a.b.y is
required.
https://invent.kde.org/qt/clang/llvm/-/commit/46b8eb861352d0d34623a3139ed11de763317323
Git commit 2178db6d3de4ad9fb9794f55e6d6d38cdf2b0347 by GitHub (on behalf of Timur Golubovich) on 04/08/2026 at 20:42..
[X86] Handle multi-use setcc in commuteSelect (#213645)
When a setcc condition is shared between multiple vselects,
commuteSelect previously bailed out due to the m_OneUse constraint.
Extend it to check all users of the setcc and, if they all benefit from
commuting, invert the condition once with ReplaceAllUsesOfValueWith and
swap all vselect operands.
This fixes a write-mask fusion regression where masked min/max
reductions produced unfused vminps + vmovaps {%k} instead of a single
write-masked vminps {%k}.
https://invent.kde.org/qt/clang/llvm/-/commit/2178db6d3de4ad9fb9794f55e6d6d38cdf2b0347
Git commit aa76963ec039f485d05c1235bac5a5edf3605378 by GitHub (on behalf of Simon Pilgrim) on 04/08/2026 at 20:43..
[X86] LowerPARITY - use countMaxActiveBits to determine if representable as uint8_t. NFC. (#214056)
Much cleaner than using the MaskedValueIsZero check.
Fix i64 -> xor(i32,i32) parity stage comment as well.
https://invent.kde.org/qt/clang/llvm/-/commit/aa76963ec039f485d05c1235bac5a5edf3605378
Git commit cd459f2466e408ebf9dcd455c58a43952d6a5903 by GitHub (on behalf of Farzon Lotfi) on 04/08/2026 at 20:47..
[SPIRV] Split wide shader PHIs before applying explicit supported types (#213806)
fixes #213802
Apply the maximum-vector-size rule before the explicit PHI legality
rules for type. This way if we see a size 16 vector we split it
beforehand.
In more precise words this preserves existing legality rules while
ensuring shader PHIs wider than four lanes are split first.
Assisted by Copilot (GPT 5.6 Sol)
https://invent.kde.org/qt/clang/llvm/-/commit/cd459f2466e408ebf9dcd455c58a43952d6a5903
Git commit 6f056c5e3f1c6c5c732c80f47dc01c0d5c00a405 by Alexander Richardson on 04/08/2026 at 21:52..
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.8-beta.1-arichardson
[skip ci]
https://invent.kde.org/qt/clang/llvm/-/commit/6f056c5e3f1c6c5c732c80f47dc01c0d5c00a405