[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/arsenm/clang/driver-amdgpu-avoid-redundant-target-cpu'.
Changed from 37beabbfbd8cfa038aebd81ca7a1b58eefdcf270 to cef2ec3eecdd7b2683d185d4d4bfdd91ece675c2
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 de7cd6542afd53d66f730dfca5f4e47e5c35e16b by GitHub (on behalf of Balázs Benics) on 23/07/2026 at 11:15..
[analyzer][Z3] Fix z3-bitint-arithmetic.c test RUN line (#211515)
I used to get these errors on M4 with `LLVM_ENABLE_Z3_SOLVER`:
```
error: 'expected-error' diagnostics seen but not expected:
File clang/test/Analysis/z3/z3-bitint-arithmetic.c Line 26: unsigned _BitInt of bit sizes greater than 128 not supported
File clang/test/Analysis/z3/z3-bitint-arithmetic.c Line 29: unsigned _BitInt of bit sizes greater than 128 not supported
```
Fixes up #210525
Another nail in the coffin of #184695
https://invent.kde.org/qt/clang/llvm-project/-/commit/de7cd6542afd53d66f730dfca5f4e47e5c35e16b
Git commit ecf4c970ddbcda2c2c65e7e5f208ffc86ed7c654 by GitHub (on behalf of Balázs Benics) on 23/07/2026 at 11:21..
[analyzer][NFC] Remove leftover PreElideState stash in copy elision (#211518)
computeObjectUnderConstruction stashed the program state into
PreElideState "before trying to elide, as it'll get overwritten", but
never used it. That comment and stash are fossils of the old
prepareForObjectConstruction, which returned and threaded the state
(`std::tie(State, V) = ...`); the failure path then reverted it with
`State = PreElideState;`.
The refactor to the SVal-returning computeObjectUnderConstruction (State
is now passed by value and the state updates moved to
updateObjectsUnderConstruction) dropped that revert but left the stash
and comment behind. State is never overwritten here anymore, so remove
the dead PreElideState and reword the comment to describe only the
CallOpts stash, which is still needed (CallOpts is passed by reference
and genuinely overwritten by the elision attempt).
Found with a clang-query matcher over clang/lib/StaticAnalyzer.
Assisted-by: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/ecf4c970ddbcda2c2c65e7e5f208ffc86ed7c654
Git commit ad1b24345203b059226d6a43a5bb4ae79ad22184 by GitHub (on behalf of Simon Pilgrim) on 23/07/2026 at 11:25..
[VectorCombine] foldShuffleToIdentity - ensure we push any created instructions to the WorkList (#211508)
generateNewInstTree is recursive - ensure all new instructions are
pushed to the WorkList (and in the correct order).
I also renamed the local Worklist variable -> Candidates to stop
shadowing VectorCombine::WorkList - there's more "WorkLists" in
VectorCombine that need fixing but this was causing a particular
annoyance to this patch.
https://invent.kde.org/qt/clang/llvm-project/-/commit/ad1b24345203b059226d6a43a5bb4ae79ad22184
Git commit 48d5c3edb02a950c58a25711f729f3e6a7f3b624 by GitHub (on behalf of Balázs Benics) on 23/07/2026 at 11:26..
[analyzer][NFC] Remove unused ProgramStateRef local variables (#211517)
Several checkers and ExprEngine declare a ProgramStateRef local that is
never read (typically `State = C.getState();` immediately followed by
code that re-fetches the state directly). These are not flagged by
-Wunused-variable because ProgramStateRef has a non-trivial destructor.
Found with a clang-query matcher over clang/lib/StaticAnalyzer.
Assisted-by: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/48d5c3edb02a950c58a25711f729f3e6a7f3b624
Git commit 38b7237069f2e51ee8562cbce2014ae29e6459b5 by GitHub (on behalf of Alex Duran) on 23/07/2026 at 11:30..
[OFFLOAD][L0] Add NUM_LANES info (#211526)
https://invent.kde.org/qt/clang/llvm-project/-/commit/38b7237069f2e51ee8562cbce2014ae29e6459b5
Git commit fd67f99275f586c48ae6432bca2623a29c82bf8c by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 11:39..
clang/AMDGPU: Fix handling of subarch triples with no -mcpu (#211467)
https://invent.kde.org/qt/clang/llvm-project/-/commit/fd67f99275f586c48ae6432bca2623a29c82bf8c
Git commit 7d566aa440eece854c4103cbada67a215e416ec8 by GitHub (on behalf of Alex Duran) on 23/07/2026 at 11:42..
[OFFLOAD][L0] Restore function pointer lookup. (#211520)
PR #201352 incorrectly removed the calls to zeModuleGetGlobalPointer
when looking up a symbol.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7d566aa440eece854c4103cbada67a215e416ec8
Git commit 5f31853af85c36ac16bc92972fd877e04b93831a by GitHub (on behalf of Ömer Sinan Ağacan) on 23/07/2026 at 11:51..
[AArch64] Fix volatile flags in mops tests (NFC) (#211511)
https://invent.kde.org/qt/clang/llvm-project/-/commit/5f31853af85c36ac16bc92972fd877e04b93831a
Git commit 144595f400eaa08691c8fda82b80e83329c779ed by GitHub (on behalf of guyfischman) on 23/07/2026 at 12:11..
[SelectionDAG][AArch64][X86] Don't scalarize vector smul.fix.sat/umul.fix.sat (#209351)
Vector SMULFIXSAT/UMULFIXSAT were not handled by expandFixedPointMul in
the vector legalizer (a FIXME) and were unrolled to per-lane scalar
code: a single <8 x i16> smul.fix.sat was ~100 instructions on both
AArch64 and x86.
Expand the saturating variants like the non-saturating ones, and build
the saturation clamp with SETCC + VSELECT for vector types so it stays
vectorized instead of being scalarized by SELECT_CC legalization. Scalar
lowering is unchanged: the clamp change is guarded on isVector(), so
scalar fixed-point codegen on every target is bit-identical.
Additionally custom-lower SMULFIXSAT on AArch64 for scale == eltbits-1,
which is exactly sqdmulh, to a single instruction.
To the FIXME note - results in a ~12x speedup over the unroll fallback.
AI was used in the making of this PR, and if its feedback is to be
believed, this PR is a masterpiece of engineering.
Fixes #209334
https://invent.kde.org/qt/clang/llvm-project/-/commit/144595f400eaa08691c8fda82b80e83329c779ed
Git commit b0b0a53e670bf15075c34514d82ce2a2c32c167a by GitHub (on behalf of Ariel-Burton) on 23/07/2026 at 12:13..
Write original source language when writing and reading AST (#209353)
FAIL: Clang :: Frontend/ast-main.c
FAIL: Clang :: Frontend/ast-main.cpp
were failing on z/OS; this change fixes these lit failures.
The issue here is that on z/OS the original source code language needs
to be passed through to the IR so that the backend can encode this
information in the PPA2 in the object file. That means that it needs to
be exported to the AST so that going from saved AST -> IR will carry the
language through.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b0b0a53e670bf15075c34514d82ce2a2c32c167a
Git commit a7d2602abf4f211e8027288f23629f8cc93ec30c by GitHub (on behalf of Louis Dionne) on 23/07/2026 at 12:13..
[libc++] Update release procedure for libc++ & friends (#210383)
The release procedure implied that some tasks were done by the release
manager, but in practice they are done by the libc++ developers.
Also, mention using the `llvm-premerge-libcxx-release-runners` runner
set on the release branch, which was overlooked in the previous notes.
Other than that, minor reformulations.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a7d2602abf4f211e8027288f23629f8cc93ec30c
Git commit 8fb7dfe629b94f57eead9b8fa3423606492fac31 by GitHub (on behalf of Arseniy Obolenskiy) on 23/07/2026 at 12:20..
[SPIR-V] Cache PartialOrderingVisitor in Splitter instead of rebuilding per call (#211198)
https://invent.kde.org/qt/clang/llvm-project/-/commit/8fb7dfe629b94f57eead9b8fa3423606492fac31
Git commit a65df8a1d42a34217bba1354c064b3fa40529507 by GitHub (on behalf of Karthika Devi C) on 23/07/2026 at 12:26..
[Polly] Fix memory leak in DependenceAnalysis::Result::abandonDepende… (#211514)
abandonDependences() uses unique_ptr::release() which releases
ownership without freeing the Dependences object, causing a memory
leak. Use unique_ptr::reset() instead to properly delete the object
before nullifying the pointer.
The issue was found when AddressSanitizer is enabled in the build.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a65df8a1d42a34217bba1354c064b3fa40529507
Git commit eb992b762c2e94d4671340f15f05e7fb8fb4215f by GitHub (on behalf of Paulius Velesko) on 23/07/2026 at 12:29..
[SPIRV] Lower llvm.ldexp via OpenCL/GLSL ldexp ext-inst (#195402)
## Summary
The SPIR-V backend handled only `G_STRICT_FLDEXP` (from
`llvm.experimental.constrained.ldexp`). Plain `Intrinsic::ldexp` lowers
to `G_FLDEXP` in `IRTranslator.cpp`, so device code that calls `ldexp()`
(or any libcall lowered to `llvm.ldexp.*`, including `scalbn`,
`scalbln`, integer-exponent `exp2`) failed legalization with `unable to
legalize instruction: G_FLDEXP`.
## Change
- `SPIRVLegalizerInfo.cpp`: extend the existing legalizer rule from
`{G_STRICT_FLDEXP}` to `{G_FLDEXP, G_STRICT_FLDEXP}`, sharing the same
`(allFloatScalarsAndVectors, allIntScalars)` cartesian product.
- `SPIRVInstructionSelector.cpp`: add a `case TargetOpcode::G_FLDEXP:`
next to the strict case, both selecting `selectExtInst(..., CL::ldexp,
GL::Ldexp)`. The `GL::Ldexp` opcode (53) was already declared in
`SPIRVBuiltins.td:447` but never referenced from a selector case -- this
also enables the GLSL.std.450 path for shader-mode targets.
- New lit test `test/CodeGen/SPIRV/llvm-intrinsics/ldexp.ll` covering
`f16`, `f32`, `f64` scalar and `<4 x f32>` vector forms under both
`spirv32` and `spirv64` triples. The pre-existing `transcoding/ldexp.ll`
only exercised the OpenCL-mangled-builtin path, which never reaches
`Intrinsic::ldexp`.
Originally observed compiling Kokkos device code through chipStar -- the
same gap exists in SPIRV-LLVM-Translator and is being fixed there in
parallel.
https://invent.kde.org/qt/clang/llvm-project/-/commit/eb992b762c2e94d4671340f15f05e7fb8fb4215f
Git commit cb383a37440d27238f8a01eee05228910d65d63e by GitHub (on behalf of Evgenii Kudriashov) on 23/07/2026 at 12:33..
[Clang][X86] Introduce Clang ABI Gate for MSVC alignment (#210305)
On x86_64-windows-msvc after 8ecec455183f, clang applies the MSVC
size-based global-alignment scheme (Microsoft64BitMinGlobalAlign) and
does not apply the Sys V "large array" alignment increase. Users may
want to preserve the earlier ABI for compatibility with objects produced
by older clang releases.
Gate this behavior on the Clang ABI compatibility level. When
`-fclang-abi-compat=22` (or lower) is in effect,
MicrosoftX86_64TargetInfo restores LargeArrayMinWidth/LargeArrayAlign to
128 and getMinGlobalAlign skips the Microsoft64BitMinGlobalAlign step,
matching the older alignment choices.
Assisted by Claude (Anthropic).
https://invent.kde.org/qt/clang/llvm-project/-/commit/cb383a37440d27238f8a01eee05228910d65d63e
Git commit d4427f75155f90238d997b3d4046bcc89f2de78c by GitHub (on behalf of Yingwei Zheng) on 23/07/2026 at 12:39..
[llubi][NFC] Use context-aware value printer (#211275)
As discussed in
https://github.com/llvm/llvm-project/pull/200672#discussion_r3624927046,
we need information from the global state to provide a better debugging
representation of byte SSA values.
This patch adds a wrapper to pass `Context&` into the actual printer.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d4427f75155f90238d997b3d4046bcc89f2de78c
Git commit e635f27b622a6c1256ea8c1bed21bec3b836c15a by GitHub (on behalf of Tõnu Samuel) on 23/07/2026 at 12:49..
[TLI] Add x86 libmvec mappings for GLIBC 2.35 vector functions (#206274)
## Summary
glibc 2.35 extended x86_64 libmvec with vector implementations of `erf`,
`erfc`,
`cbrt`, `expm1`, `log1p`, `asinh`, `acosh` and `atanh` (among others),
but LLVM's
`LIBMVEC_X86` table in `VecFuncs.def` was never updated past the
original glibc-2.22
set. As a result `clang -fveclib=libmvec` cannot vectorize loops over
these functions
on x86_64, even though the vector symbols are present in the linked
`libmvec.so`. The
AArch64 libmvec table already maps several of them.
This patch adds the x86 mappings for the 8 GLIBC-2.35 functions that
have **no
corresponding LLVM intrinsic** (pure named/TLI mappings). The
intrinsic-backed
additions (`sinh`, `cosh`, `tanh`, `asin`, `acos`, `atan`, `exp2`,
`exp10`, `log2`,
`log10`) are left for a follow-up. The mappings mirror the existing
`exp`/`log`
entries — only the SSE (`_ZGVbN…`) and AVX2 (`_ZGVdN…`) widths; the
**AVX-512
(`_ZGVeN…`) variants are intentionally omitted** until the
512-bit-call-on-narrower-
target miscompilation (#204930) is resolved. The symbols are verified
present in
glibc ≥ 2.35.
Tracks #206273.
## Test
Extends `llvm/test/Transforms/LoopVectorize/X86/libm-vector-calls.ll`
with a
vectorization check per added function. `add-TLI-mappings.ll` is
unaffected
(verified locally for both the x86 and AArch64 run lines).
## Motivation
These functions are currently unreachable via `-fveclib=libmvec` on x86,
so loops
over them stay scalar. best-of-20 timing of a 16M-element scalar libm
loop vs the
libmvec-vectorized loop (AVX2 / `ZGVdN` path — i.e. exactly what this
patch enables):
| function | Zen (AVX2) | Xeon W-2235 (AVX2) |
|---|---|---|
| erf | 13.4× | 15.7× |
| erfc | 8.8× | 12.4× |
| cbrt | 6.8× | 9.1× |
| expm1 | 7.5× | 12.0× |
| log1p | 6.7× | 10.8× |
| asinh | 1.9× | 3.9× |
| acosh | 1.6× | 4.1× |
| atanh | 4.2× | 8.5× |
gcc already emits these via libmvec; this brings clang
`-fveclib=libmvec` to parity.
---
Human, assisted by robot. The human reviews all the posts.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e635f27b622a6c1256ea8c1bed21bec3b836c15a
Git commit 728522b6644457367b7ce9056bb3d0577bf128a8 by GitHub (on behalf of Ebuka Ezike) on 23/07/2026 at 12:51..
[lldb-dap] Miragte the DAP step and stop hooks tests (#209936)
Migrated Tests:
- TestDAP_step.py
- TestDAP_stepInTargets.py
- TestDAP_stop_hooks.py
https://invent.kde.org/qt/clang/llvm-project/-/commit/728522b6644457367b7ce9056bb3d0577bf128a8
Git commit bd3546eaedaa0bc89f6706c619074d59ba00bafe by GitHub (on behalf of Ebuka Ezike) on 23/07/2026 at 12:52..
[lldb-dap] Migrate DAP attach tests. (#210814)
Address some issues with the previous tests.
- Always wait for the continued event after sending a continue request.
since the continue response is just an acknowlegement that we send a
continue packet.
- Retry reading stdin if it has an error when the debugger attaches.
- Update and enable the attachByPortNum test, this may now run on NetBSD
and Windows. will try to enable in a different PR.
https://invent.kde.org/qt/clang/llvm-project/-/commit/bd3546eaedaa0bc89f6706c619074d59ba00bafe
Git commit 94404723f0dff00d07bd13d2f420b953d57a6db4 by GitHub (on behalf of Yusuke MINATO) on 23/07/2026 at 12:55..
Revert "[NFC][clang][Driver] Add tests for --driver-mode=flang"
Reverts llvm/llvm-project#207658 due to buildbot failure
https://invent.kde.org/qt/clang/llvm-project/-/commit/94404723f0dff00d07bd13d2f420b953d57a6db4
Git commit 70b67433644e3b9cb206a7d2c3dbb062dc854e9a by GitHub (on behalf of David Green) on 23/07/2026 at 13:00..
[AArch64] Add a ctpop cost with CSSC (#211189)
FEAT_CSSC adds a CNT instruction that can perform ctpop. This adds a
specific cost for it to prevent us from using the neon cost.
https://invent.kde.org/qt/clang/llvm-project/-/commit/70b67433644e3b9cb206a7d2c3dbb062dc854e9a
Git commit 882a1381942c3bb4208136743ca7d743947a00a2 by GitHub (on behalf of Louis Dionne) on 23/07/2026 at 13:21..
[libc++] Remove workaround for Clang < 20 in clang-tidy plugin (#211314)
The clang-tidy plugin is now always built with Clang >= 20, so the
workaround can be removed.
https://invent.kde.org/qt/clang/llvm-project/-/commit/882a1381942c3bb4208136743ca7d743947a00a2
Git commit d1d3891077f6f803a8d2dc000f7a4cd11a66ac3c by GitHub (on behalf of Jon Roelofs) on 23/07/2026 at 13:27..
[libunwind] XFAIL the za unwind test on Apple targets older than OS 27.0 (#211379)
When linking against the system unwinder on macOS < 27, the test
fails on platforms that support SME.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d1d3891077f6f803a8d2dc000f7a4cd11a66ac3c
Git commit 624569002f06a27543ac964b2b338d677deb4e37 by GitHub (on behalf of zhijian lin) on 23/07/2026 at 13:32..
[PowerPC] improve performance on the isNan and !isNan function in case of -ffp-model=strict (#204170)
For the IR representation:
isnan(x) → %0 = tail call noundef i1 @llvm.is.fpclass.f64(double %x, i32
3)
!isnan(x) → %0 = tail call noundef i1 @llvm.is.fpclass.f64(double %x,
i32 1020)
Under `-ffp-model=strict`, the generic
TargetLowering::expandIS_FPCLASS() is used to lower these when
Subtarget.hasP9Vector() && Subtarget.useCRBits() is false. However,
PowerPC has more optimal assembly sequences for isnan(x) and !isnan(x)
on POWER7/8 and generic PPC targets.
We implement a custom lowering for isnan(x) and !isnan(x) under
`-ffp-model=strict`, using `fcmpu `for POWER7/8 and generic PPC targets,
and` xscmpudp` for targets where VSX is available.
https://invent.kde.org/qt/clang/llvm-project/-/commit/624569002f06a27543ac964b2b338d677deb4e37
Git commit b142e77672d2992640e4f31c54d771191a0b8610 by GitHub (on behalf of Syadus Sefat) on 23/07/2026 at 13:33..
[AMDGPU][GlobalISel] Don't combine uniform fmin/max into clamp/fmed3 (#211456)
Uniform fmin/fmax/fmed3 makes the reg-bank combiner produce a
clamp/fmed3 with an sgpr-banked destination. As these clamp/fmed3 only
have VALU selection patterns, the sgpr bank cannot be selected. Only
combine when the destination is vgpr-banked.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b142e77672d2992640e4f31c54d771191a0b8610
Git commit be86221af36d62be2e25a8b6e89ae8199d9dce0a by GitHub (on behalf of Louis Dionne) on 23/07/2026 at 13:38..
[libc++] Implement any_of in terms of find_if (#207274)
This way, any optimizations in find_if will be picked up by any_of.
Closes #129310
https://invent.kde.org/qt/clang/llvm-project/-/commit/be86221af36d62be2e25a8b6e89ae8199d9dce0a
Git commit aab7e0b08d30ddca5858069a4c14c1ea3da042e6 by GitHub (on behalf of Luke Hutton) on 23/07/2026 at 13:41..
[mlir][tosa] Combine unranked/ranked tensor types into single type (#209737)
This commit refactors the defined TOSA types to combine unranked and
ranked tensor types into a single type `TosaTensorOf`. This helps
simplify the type definitions and allows all tensor types to support
both unranked and ranked tensors.
https://invent.kde.org/qt/clang/llvm-project/-/commit/aab7e0b08d30ddca5858069a4c14c1ea3da042e6
Git commit ea99db7e4a0277eb0c327a72ac2f3cd9017315f1 by GitHub (on behalf of Alexey Bataev) on 23/07/2026 at 13:53..
[SLP]Combine fma and fmuladd into a single vector fma node
fmuladd permits the fused form and fma requires it, so a mixed bundle is
vectorized as one vector fma, with fma as the representative to avoid
weakening the fma lanes; an all-fmuladd bundle still stays fmuladd.
Reviewers: bababuck, RKSimon, hiraditya
Pull Request: https://github.com/llvm/llvm-project/pull/211291
https://invent.kde.org/qt/clang/llvm-project/-/commit/ea99db7e4a0277eb0c327a72ac2f3cd9017315f1
Git commit c2811362b9dd240583ffaa59fabd16d29c644931 by GitHub (on behalf of Aiden Grossman) on 23/07/2026 at 13:59..
[WebAssembly] Port WebAssemblyMCLowerPrePass
Standard NewPM pass porting.
Reviewers: sbc100, dschuff, aheejin
Pull Request: https://github.com/llvm/llvm-project/pull/210440
https://invent.kde.org/qt/clang/llvm-project/-/commit/c2811362b9dd240583ffaa59fabd16d29c644931
Git commit b9f17dd9d7604129f35eb30124f713b819197972 by GitHub (on behalf of Aiden Grossman) on 23/07/2026 at 14:03..
[WebAssembly] Port AsmPrinter
Lots of boilerplate, but this is standard and there's probably not much
we can do to improve the situation until we have deleted the LegacyPM.
Reviewers: dschuff, sbc100, aheejin
Pull Request: https://github.com/llvm/llvm-project/pull/210448
https://invent.kde.org/qt/clang/llvm-project/-/commit/b9f17dd9d7604129f35eb30124f713b819197972
Git commit 3cbb24bd5412a5ecea5a0e4d1603e0a38676432d by GitHub (on behalf of Andrzej Warzyński) on 23/07/2026 at 14:10..
[mlir][vector] Update CastAway{Extract|Insert}StridedSliceLeadingOneDim (#210902)
Update both:
* CastAwayExtractStridedSliceLeadingOneDim
* CastAwayInsertStridedSliceLeadingOneDim
to use vector.shape_cast, rather than vector.extract and
vector.broadcast, as the canonical form for stripping unit dimensions.
This change was originally implemented by @krzysz00 in #196206, but was
subsequently reverted in #199546. This PR intentionally restores only a
subset of #196206, making it easier to identify and triage any potential
regressions.
Co-authored-by: Krzysztof Drewniak <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/3cbb24bd5412a5ecea5a0e4d1603e0a38676432d
Git commit dcbf87542b26480c365b6388b5accf05d0507626 by GitHub (on behalf of Federico Bruzzone) on 23/07/2026 at 14:33..
[mlir][sparse] Avoid vectorizing non-contiguous COO coordinate loads (#211004)
`SparseVectorization` assumes direct loop accesses (`a[lo:hi]`) are
contiguous and vectorizes them with `vector.maskedload/maskedstore`.
This is false for `sparse_tensor.coordinates` of a level inside a
trailing AoS COO region, whose buffer is interleaved with other levels:
a silent miscompile.
The true stride is already known from the tensor's encoding, even though
the memref type is still dynamic at this point. Use it to fall back to a
scalar loop when the stride is provably non-unit.
---------
Signed-off-by: Federico Bruzzone <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/dcbf87542b26480c365b6388b5accf05d0507626
Git commit bb22aa8127450930eb27215eb9f2c70acdee69fc by GitHub (on behalf of Nikita Popov) on 23/07/2026 at 14:34..
[IR] Slightly optimize getElementAsInteger() (#211550)
This regressed with the introduction of the byte type, because
getElementPointer() calls getElementByteSize() calls
getPrimitiveSizeInBits(), but the switch used getScalarTypeInBits(),
which means we need to do two separate calls for the element size. Use
getElementByteSize() in both places so these can be CSEd.
https://invent.kde.org/qt/clang/llvm-project/-/commit/bb22aa8127450930eb27215eb9f2c70acdee69fc
Git commit 8b690a085406337f7a02ab466df494bce5f75f41 by GitHub (on behalf of Andrzej Warzyński) on 23/07/2026 at 14:40..
[mlir][vector] Make CompressstoreOp + ExpandloadOp support scalable vectors (#210288)
Extends `vector.compressstore` + `vector.expandload` to support scalable
vectors and updates relevant tests.
An e2e test for `vector.compressstore` is added. For
`vector.expandload`, we need to wait for QEMU support:
https://github.com/llvm/llvm-project/issues/210942.
https://invent.kde.org/qt/clang/llvm-project/-/commit/8b690a085406337f7a02ab466df494bce5f75f41
Git commit 97a5889383220967c7ed4eb8d23470d875f8cbcc by GitHub (on behalf of Akash Agrawal) on 23/07/2026 at 15:06..
[Clang][Sema] Don't delay the access check when computing implicit deletion (#210254)
Sema::isMemberAccessibleForDeletion treats AR_delayed as unreachable,
but CheckAccess returns AR_delayed whenever it runs inside an enclosing
delayed-diagnostics scope. That happens when deletion checking runs
synchronously while parsing a later declaration -- e.g. while explaining
why a defaulted operator<=> is deleted for an expression in that
declaration's initializer. The caller cannot consume a delayed
diagnostic, so letting CheckAccess delay always hits
llvm_unreachable("cannot delay =delete computation") and crashes.
Force an immediate answer by wrapping the CheckAccess call in
DelayedDiagnostics.pushUndelayed()/popUndelayed() via llvm::scope_exit,
mirroring the existing Sema::CheckEnableIf pattern in SemaOverload.cpp.
Fixes https://github.com/llvm/llvm-project/issues/210692
Co-authored-by: Claude-Sonnet
https://invent.kde.org/qt/clang/llvm-project/-/commit/97a5889383220967c7ed4eb8d23470d875f8cbcc
Git commit 2697ad154734e49f15f787c180fde969433f2968 by GitHub (on behalf of Nico Weber) on 23/07/2026 at 15:10..
[gn build] Port e04cf35fc64c (#211576)
https://invent.kde.org/qt/clang/llvm-project/-/commit/2697ad154734e49f15f787c180fde969433f2968
Git commit 9b3cc3c1d466f698abb3f59353f9dc638b20ea38 by GitHub (on behalf of Ken Matsui) on 23/07/2026 at 15:11..
[LVI] Infer ranges from mul nuw square conditions (#173127)
A non-poison comparison involving `mul nuw X, X` implies that the
multiplication does not overflow. This bounds X by:
X <= floor(sqrt(2^bitwidth(X) - 1)) (e.g., i16: X <= 255)
An unsigned constant comparison can tighten the bound, e.g.,
`X * X <= 120` implies `X <= 10`.
Fixes https://github.com/llvm/llvm-project/issues/122412
https://invent.kde.org/qt/clang/llvm-project/-/commit/9b3cc3c1d466f698abb3f59353f9dc638b20ea38
Git commit 6690cd6f9f5f0c1ee5157f013b50dfcfcb665f2b by GitHub (on behalf of Dmitry Sidorov) on 23/07/2026 at 15:12..
[DOC] Update SPIR-V Support on HIPAMD ToolChain (#211542)
SPIR-V backend now is the default path.
https://invent.kde.org/qt/clang/llvm-project/-/commit/6690cd6f9f5f0c1ee5157f013b50dfcfcb665f2b
Git commit 4d777c139fc23303e8fc5cc9a78069aef94ab0ab by GitHub (on behalf of Prem C) on 23/07/2026 at 15:17..
[mlir] Handle null region in LoopLikeOpInterface::isDefinedOutsideOfLoop (#204521)
Fixes #203860
In LoopLikeOpInterface::isDefinedOutsideOfLoop default implementation,
value.getParentRegion() can return null during signature conversion
rollbacks when blocks/ops are unlinked. Check for null region to avoid a
segmentation fault.
Also, add a regression test for convert-func-to-llvm with
index-bitwidth=32 on functions with affine.for loops.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4d777c139fc23303e8fc5cc9a78069aef94ab0ab
Git commit d2f164231c6cf5ed24ae67ea6bd9c7ea89257076 by GitHub (on behalf of vangthao95) on 23/07/2026 at 15:28..
AMDGPU/GlobalISel: RegBankLegalize G_ANYEXT s16 to s64 (#205470)
Add rules for G_ANYEXT s16->s64 matching SEXT and ZEXT s16->s64.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d2f164231c6cf5ed24ae67ea6bd9c7ea89257076
Git commit e2a39f504fee836e4def9581bed817ecc327b9dc by GitHub (on behalf of Siu Chi Chan) on 23/07/2026 at 15:30..
[AMDGPU] Use global_prefetch_b8 for GFX1250 unclaused VMEM workaround (#210874)
Replace GLOBAL_WB with GLOBAL_PREFETCH_B8
https://invent.kde.org/qt/clang/llvm-project/-/commit/e2a39f504fee836e4def9581bed817ecc327b9dc
Git commit 8543a5b116c03289b7659cd1d2cbd85fa51a7175 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 15:35..
AMDGPU: Use llvm-mc -triple= arguments instead of space separator (#211510)
-triple=amdgcn... is the dominant form over -triple amdgcn. Convert
the outliers for easier subarch triple conversion.
https://invent.kde.org/qt/clang/llvm-project/-/commit/8543a5b116c03289b7659cd1d2cbd85fa51a7175
Git commit 8e473468609ada1c03770343ce81299db68c07c4 by GitHub (on behalf of Arseniy Obolenskiy) on 23/07/2026 at 15:41..
[AMDGPU] Fix v32f16 FMINIMUMNUM/FMAXIMUMNUM lowering in non-IEEE mode (#207896)
v32f16 was marked Custom but omitted from the handler split-list, so it
fell through to selection and failed with "Cannot select"
The dead v16bf16 branch (never marked Custom) is dropped in the same
change
https://invent.kde.org/qt/clang/llvm-project/-/commit/8e473468609ada1c03770343ce81299db68c07c4
Git commit 3beb48b6bfeffe70d0e794171901f6d6f391fcda by GitHub (on behalf of Arseniy Obolenskiy) on 23/07/2026 at 15:41..
[AMDGPU] Fix SIPreAllocateWWMRegs to reserve AV-class WWM defs (#211560)
isVGPR() rejects the unified VGPR+AGPR register class used on gfx90A+,
so strict-WWM defs allocated to an AV-class register were left out of
WWMReservedRegs and could be clobbered by the post-WWM allocator
https://invent.kde.org/qt/clang/llvm-project/-/commit/3beb48b6bfeffe70d0e794171901f6d6f391fcda
Git commit 66d6316c9f00ff67b763ce30583c34b1a92fa438 by GitHub (on behalf of Michael Jones) on 23/07/2026 at 15:56..
[libc] Fix missed errno deps for integration tests (#211415)
Fullbuild testing pulls in LLVM-libc's errno, which needs to be linked
explicitly.
https://invent.kde.org/qt/clang/llvm-project/-/commit/66d6316c9f00ff67b763ce30583c34b1a92fa438
Git commit 45250b2db177add3433035ce09069b1c219499d4 by GitHub (on behalf of Nick Sarnie) on 23/07/2026 at 16:00..
[SPIRV][NFCI] Refactor selection of atomic operations with pointer operands (#208294)
We do similar things for the three different cases (load, store,
exchange), so share some logic.
Suggested
[here](https://github.com/llvm/llvm-project/pull/207830#issuecomment-4912670227).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/45250b2db177add3433035ce09069b1c219499d4
Git commit a8bb2e0ce207f903b05fb101bc6909594e008552 by GitHub (on behalf of Harrison Hao) on 23/07/2026 at 16:02..
[MergeFuncs] Account for elementwise loads and atomicrmw in FunctionComparator (#211478)
Distinguish elementwise atomic loads and atomicrmw instructions from
their
whole-vector counterparts when comparing functions, preventing
MergeFunctions
from merging functions with different atomic semantics.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a8bb2e0ce207f903b05fb101bc6909594e008552
Git commit c050c487e9edb97ef44f53cb29fe1d8bcddb8f76 by GitHub (on behalf of Jon Roelofs) on 23/07/2026 at 16:02..
[llvm][AArch64] Eliminate redundant mov's sandwiching aut's in tail calls (#211105)
When the target has +pauth, we don't have to use the hint space compatible encodings (auti[ab]1716), and instead can directly authenticate lr with auti[ab].
https://invent.kde.org/qt/clang/llvm-project/-/commit/c050c487e9edb97ef44f53cb29fe1d8bcddb8f76
Git commit 10600d0f4825a1896f571abc154eb9ddf47eee9d by GitHub (on behalf of Lucas Ly Ba) on 23/07/2026 at 16:09..
[analyzer] Make pointer/null comparison commutative for addresses of fields of symbolic regions (#209875)
Fixes #206798
A reversed ("Yoda") null check `nullptr == p` produced a false
`core.NullDereference` when `p` is the address of a field of a symbolic
region (e.g. `&r->s`). The natural form (`p == nullptr`) worked fine.
https://invent.kde.org/qt/clang/llvm-project/-/commit/10600d0f4825a1896f571abc154eb9ddf47eee9d
Git commit 557e5c12f88e607628048b7768a30d19e9c95670 by GitHub (on behalf of Rithik Sharma) on 23/07/2026 at 16:15..
[CIR] Recognize strlen in the IdiomRecognizer pass (#210400)
This patch adds the operation cir.std.strlen and teaches the recognizer
to raise strlen calls, following the ClangIR incubator. A C library
function carries no identity tag, so strlen is matched by its callee
symbol, which works since C names have no mangling.
The symbol alone is not enough when builtins are disabled, so the
recognizer honors the no builtin state CIRGen records, the mark on the
call and the list on the calling function. A call is raised only when it
is a direct call named strlen with one pointer to an 8 bit character of
either signedness, since the signedness of plain char follows the
target, and a fundamental unsigned integer result. A _BitInt is excluded
even at width 8.
The raised operation lowers back through the same generic function as
the other raised operations, and every call attribute is carried across,
so a no builtin mark or list survives the round trip. Tests cover the
raise, the symbol match, the no builtin cases, and the type guard.
Aided by Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm-project/-/commit/557e5c12f88e607628048b7768a30d19e9c95670
Git commit 3bf4e7382579b9c91590a6ead7007e612de40245 by GitHub (on behalf of Ian Li) on 23/07/2026 at 16:23..
[analyzer] Add some speculative hardening (#210823)
Coverity uncovered some potential hardening opportunities -
mainly to prevent nullptr derefs.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3bf4e7382579b9c91590a6ead7007e612de40245
Git commit 9a378643f160dfc5a1cf8a596651b46e9b36e378 by GitHub (on behalf of Ömer Sinan Ağacan) on 23/07/2026 at 16:27..
[GlobalISel] Fix volatile flag handling in memmove legalizer (#206025)
Also refactors memmove and memcpy legalization for consistency, and adds
some assertions.
https://invent.kde.org/qt/clang/llvm-project/-/commit/9a378643f160dfc5a1cf8a596651b46e9b36e378
Git commit 8b37951e1180c88619e1276c3df65f303735cd02 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 16:27..
AMDGPU: Migrate more machine verifier tests to subarch triples (#211509)
https://invent.kde.org/qt/clang/llvm-project/-/commit/8b37951e1180c88619e1276c3df65f303735cd02
Git commit e40b94bde99b0e990c51d821a54bafec82964cb2 by GitHub (on behalf of Twice) on 23/07/2026 at 16:37..
[MLIR][CAPI][Python] Add support for constructing memory effect instances (#210586)
Python implementations of `MemoryEffectsOpInterface` receive a
`MemoryEffectInstancesList` (added in #176920), but currently have no
generic way to populate it.
This adds the C API for constructing and appending memory effect
instances and exposes it in Python through `MemoryEffect`,
`SideEffectResource`, and `MemoryEffectInstancesList.append`. The tests
use CSE and DCE to verify that the declared effects are observed by MLIR
passes.
Assisted-by: GPT 5.6 Sol
https://invent.kde.org/qt/clang/llvm-project/-/commit/e40b94bde99b0e990c51d821a54bafec82964cb2
Git commit 7f7618b66a2cba7497ace5d4513be6d95e7bb4d5 by GitHub (on behalf of vangthao95) on 23/07/2026 at 16:42..
[AMDGPU] Regenerate failing test (#211598)
Regenerate test due to another in-flight patch that made a slight change
to global prefetch instruction.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7f7618b66a2cba7497ace5d4513be6d95e7bb4d5
Git commit fcff12829ecee44d715d9f901c0195fb1f30a881 by GitHub (on behalf of Eli Friedman) on 23/07/2026 at 16:42..
[LoopInfo] Fix makeLoopInvariant to strip UB-implying attributes. (#211413)
isSafeToSpeculativelyExecute gained an argument to check for UB-implying
attributes in 830cf36bd4c49, but the default is to ignore them. Update
this code to account for that.
Fixes #210137
https://invent.kde.org/qt/clang/llvm-project/-/commit/fcff12829ecee44d715d9f901c0195fb1f30a881
Git commit c1f5a36babad4ae87cef6f2cd18e7865ea28402a by GitHub (on behalf of Aiden Grossman) on 23/07/2026 at 16:43..
[CI] Drop replacement comment in monolithic-* workflows (#211580)
These workflows have been around for a while and I don't think we have
any plans to migrate to per project specific testing given how the LLVM
build is currently wired up. I believe these comments were from an era
where it was believed that testing would look a lot more like libc++
across the board with projects contributing all of their own individual
configurations.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c1f5a36babad4ae87cef6f2cd18e7865ea28402a
Git commit d77e1617b7e6d857dc9cb42d449126e4cb2b3783 by GitHub (on behalf of Shilei Tian) on 23/07/2026 at 16:46..
[NFC][AMDGPU] Fix redundant target feature datacachelinesize128 (#211586)
https://invent.kde.org/qt/clang/llvm-project/-/commit/d77e1617b7e6d857dc9cb42d449126e4cb2b3783
Git commit 1e7c2ac9789b166cdb96a6712a694ae08b6f7a91 by GitHub (on behalf of Alex Duran) on 23/07/2026 at 16:48..
[OFFLOAD] Add level_zero to list of default plugins (#210070)
Adds level_zero to the list of LIBOMPTARGET_ALL_PLUGIN_TARGETS which are
build by default.
https://invent.kde.org/qt/clang/llvm-project/-/commit/1e7c2ac9789b166cdb96a6712a694ae08b6f7a91
Git commit 4a100a99e408e9f1777073d324087151db16c543 by Matt Arsenault on 23/07/2026 at 16:54..
clang: Start using new amdgpu subarch triples
Fixup invocations using --target=amdgcn + -mcpu to introduce
the subarch in the triple.
For offload toolchains, a single toolchain is constructed for the
top level amdgpu architecture, and the effective triple is used for
target specific tool invocations.
The specifics of the resource directory layout are tbd. This does
try to find resources in the subarch named directory. The paths
are searched at toolchain creation time, so that does not work
when there are multiple subarches.
Fixes #154925
https://invent.kde.org/qt/clang/llvm-project/-/commit/4a100a99e408e9f1777073d324087151db16c543
Git commit cef2ec3eecdd7b2683d185d4d4bfdd91ece675c2 by Matt Arsenault on 23/07/2026 at 16:54..
clang/AMDGPU: Stop passing redundant -target-cpu to cc1
Now that the exact target is encoded in the triple's subarch field,
-target-cpu is redundant. This avoids polluting the resultant IR with
unwanted "target-cpu" attributes. The net result is the desired codegen
when compiling libraries for a major subarch and linking it into a
program compiled for a specific arch. e.g., compiling for "gfx9-generic"
would pollute the IR with "target-cpu"="gfx9-generic", so codegen
would ultimately be performed for the generic target even after
linking into the concrete gfx9 cpu. The specialization will now be
achieved by merging the triples without the linker or optimization
passes needing to fixup function attributes.
https://invent.kde.org/qt/clang/llvm-project/-/commit/cef2ec3eecdd7b2683d185d4d4bfdd91ece675c2