[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/main'.
Changed from d814be1bb794baf0650158a6bd1dda23f4f86e99 to 6425cf4ce732d660a1cdd08ea830d7734a325eb8
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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/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/-/commit/1e7c2ac9789b166cdb96a6712a694ae08b6f7a91

Git commit 10e0a2ee03b02a456b8d6adca4c44f01464f3d39 by GitHub (on behalf of Ryosuke Niwa) on 23/07/2026 at 16:55..
[WebKit Checkers] Share the safety model of WebKit smart pointers (#210195)

This PR introduces PtrRefSafetyModel to abstract away type checks for
various smart pointer types in WebKit to share more code between
different checkers.
https://invent.kde.org/qt/clang/llvm/-/commit/10e0a2ee03b02a456b8d6adca4c44f01464f3d39

Git commit 8d4f2368a090ca3caed692034422f27498a8d7be by GitHub (on behalf of Jeff Bailey) on 23/07/2026 at 16:59..
[libc] Implement pthread_setschedparam and getschedparam (#205770)

Implemented the pthread_setschedparam and pthread_getschedparam
functions.

Added Linux syscall wrappers:
* sched_setscheduler
* sched_getscheduler
* sched_getparam

Updated the Thread class to support getting and setting scheduling
parameters.

Added integration tests to verify the implementation.

Assisted-by: Automated tooling, human reviewed.
https://invent.kde.org/qt/clang/llvm/-/commit/8d4f2368a090ca3caed692034422f27498a8d7be

Git commit 1e7817c938ef58c015eab4d18538a5509559cd8a by GitHub (on behalf of Benedek Kaibas) on 23/07/2026 at 17:00..
[NFC][analyzer] Apply any_of to detect destructors stack frame (#211582)

Since #210938 is merged I have also applied the same parent-chain helper
to detect if a destructor's stack frame is on the current stack.
https://invent.kde.org/qt/clang/llvm/-/commit/1e7817c938ef58c015eab4d18538a5509559cd8a

Git commit 98e71359dd152335797c274b6dd735eedb70f7b8 by GitHub (on behalf of Karim Alweheshy) on 23/07/2026 at 17:06..
[LCSSA] Avoid rewriting lifetime markers through PHIs (#210811)

Lifetime intrinsics have been required to reference an alloca directly
since #149310. LCSSA can currently violate that invariant when a
loop-local alloca has a lifetime marker outside the loop: SSA
reconstruction rewrites the marker operand through an exit PHI, and the
verifier rejects the result.

Collect lifetime markers while scanning uses. If one crosses the loop
boundary, conservatively erase the complete marker set for that alloca
instead of rewriting any marker. Removing the markers extends the
modeled lifetime and preserves program semantics. This follows the same
strategy adopted for JumpThreading in #188147.

The regression test covers both sides of the behavior:

- a lifetime end outside the loop drops both the start and end markers;
- markers that remain inside the loop are preserved while another alloca
use receives an LCSSA PHI.

Validation:

- opt -passes=function(lcssa),verify followed by FileCheck passes with
the patched LLVM 23 build;
- the reduced input was derived from Swift 6.3 bitcode that failed
during an upstream LLVM full-LTO link;
- the affected full-LTO link completes with this fix applied.
https://invent.kde.org/qt/clang/llvm/-/commit/98e71359dd152335797c274b6dd735eedb70f7b8

Git commit ca204851eb3177d69159a8f8a755e1b622089a19 by GitHub (on behalf of Jonas Devlieghere) on 23/07/2026 at 17:11..
[lldb] Create a GetStartLineEntry helper (#211264)

A WebAssembly function's entry address points at the locals-declaration
header, which carries no line information, so the first line table row
begins past the entry point.

We already handled this in GetPrologueByteSize (dd069b691dd3), but there
are other places that need the same support (GetStartLineSourceInfo,
GetFunctionStartLineEntry). Rather than duplicating the logic, create a
shared helper.
https://invent.kde.org/qt/clang/llvm/-/commit/ca204851eb3177d69159a8f8a755e1b622089a19

Git commit 6425cf4ce732d660a1cdd08ea830d7734a325eb8 by GitHub (on behalf of Ian Li) on 23/07/2026 at 17:12..
[NFC][Clang][Lex] Add assert to prevent null pointer dereference in Preprocessor::HandleModuleContextualKeyword (#211117)

Coverity static analysis scans on clang are unhappy with
[this](https://github.com/llvm/llvm-project/blob/e55d3bca36ff8a23ef598f6f452ec1e3f399dc31/clang/lib/Lex/Preprocessor.cpp#L920)
invocation of `HandleModuleContextualKeyword` due to the fact that
_technically_ nothing is stopping `CurPPLexer` reference in
`Preprocessor` from being `nullptr`, although AFAICT the current code
ensures this doesn't happen when `Preprocessor` is in file-lexing mode.

However, an assertion could be added to `HandleModuleContextualKeyword`
for future debugging's sake.

---------

Co-authored-by: Yihan Wang <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/6425cf4ce732d660a1cdd08ea830d7734a325eb8
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.