[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/main'.
Changed from d9fff42ccd58cb3d95cff60641011d72d38dc300 to 331e5641480d24de1951d30ef6b10362ab3b6acf
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 334708eb100204edc677a546bfa77ef10df71ec9 by GitHub (on behalf of Nico Weber) on 20/07/2026 at 11:23..
[gn build] Port 03b5c5285eaf (#210688)
https://invent.kde.org/qt/clang/llvm-project/-/commit/334708eb100204edc677a546bfa77ef10df71ec9

Git commit 41d76f2763a53517f273c87a1a703f00cb965f09 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 11:26..
AMDGPU/GlobalISel: Fix G_UNMERGE_VALUES lowering for extended LLTs (#209201)

Use integer type for bit twiddling instead of scalar.
https://invent.kde.org/qt/clang/llvm-project/-/commit/41d76f2763a53517f273c87a1a703f00cb965f09

Git commit b21fb937f165898c727030760f0a8ab685ef08eb by GitHub (on behalf of Benedek Kaibas) on 20/07/2026 at 11:26..
[analyzer][NFC] Correct the DanglingPtrDeref checker's filename (#209862)

The alpha `DanglingPtrDeref` checker got implemented in #209278. Since
it is under heavy development and subject to change significantly in the
near future it is in alpha stage. During the development of the
`DanglingPtrDeref` checker its name got changed from
`ReportDanglingPtrDeref` to `DanglingPtrDeref` based on the conversation
here:
https://github.com/llvm/llvm-project/pull/209278#discussion_r3578604913

While the checker's registration got updated in `Checkers.td` the same
change did not get applied to the `
clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt` and the checker's
filename. This PR addresses this issue.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b21fb937f165898c727030760f0a8ab685ef08eb

Git commit 2ec66d76fde71265be83c216d0be3d16bb131fc7 by GitHub (on behalf of Lang Hames) on 20/07/2026 at 11:27..
[orc-rt] Fix wrapper-call managed-code token lifetime (#210686)

d199b284c7d established that ManagedCodeTaskGroup tokens must bracket a
single span of execution on a stack, not a chain of asynchronous
operations (see orc-rt/docs/Design.md's "Managed code execution and
shutdown" section). Session::handleWrapperCall and sendWrapperResult
predated that policy and didn't conform to it: the token was acquired in
handleWrapperCall but only released in sendWrapperResult, holding it for
the whole call/response chain. If Fn deferred sending its result
asynchronously, Session shutdown would incorrectly wait on that deferred
completion instead of proceeding as soon as Fn's stack unwound.

Acquire the token as a TaskGroup::Token scoped to the dispatched call,
and let it release when Fn returns rather than when its result is sent.
https://invent.kde.org/qt/clang/llvm-project/-/commit/2ec66d76fde71265be83c216d0be3d16bb131fc7

Git commit d90634dc185da79a8eb6a993c28614f4788e368e by GitHub (on behalf of 311Volt) on 20/07/2026 at 11:28..
[offload] support arbitrary memoryFill pattern sizes in L0 plugin (#209724)

Even though L0, CUDA and HSA do not directly support filling memory
regions with non-power-of-two-sized patterns, plugins explicitly allow
for such fills by falling back to a slow path whenever a direct API call
is not possible.

The Level Zero plugin is the odd one out, forwarding directly to
`zeCommandListAppendMemoryFill`. This fails for non-power-of-two
patterns, causing unit tests for `olMemFill` to fail when run on L0.

This PR adds fallbacks in L0 plugin's `memoryFill` implementation to
support arbitrary pattern sizes:
- if all pattern bytes are the same, substitute `1` for `patternSize`
and proceed with the native fill
- if memory is host-accessible (host or shared alloc), then simply
`std::copy_n` the pattern
- if memory is device-only, upload a seed to the device, and
`memoryCopy` O(log n) times, doubling the pattern each time, until the
entire region is filled. The seed is the input pattern, but extended on
the host to 1-2KiB to potentially eliminate several small `memoryCopy`
calls that would otherwise be almost pure overhead.

Conceptually, this approach has better worst-case overhead than the one
found in the CUDA plugin (decompose the pattern to then run multiple
strided memsets) and the AMDGPU one (call `pushMemoryCopyH2DAsync` with
the pattern, setting `NumTimes`). Aligning the fallback fill approaches
is outside the scope of this PR, however - the main intent is to fix the
unit test failures.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d90634dc185da79a8eb6a993c28614f4788e368e

Git commit a8ffce42477c909908d6f45511a48fd01a24837d by GitHub (on behalf of Younan Zhang) on 20/07/2026 at 11:32..
[Clang] Fix evaluation of fold expanded constraints for NTTP (#210005)

This is a rework of #200185 and also reflects what we did for TTP in
C++26 fold expression constraints (adc64c6e1745)

Fixes https://github.com/llvm/llvm-project/issues/199569
https://invent.kde.org/qt/clang/llvm-project/-/commit/a8ffce42477c909908d6f45511a48fd01a24837d

Git commit 14f6b9f0a3976f85d3ef509c8361991ae3702002 by GitHub (on behalf of Deepak Shirke) on 20/07/2026 at 11:35..
[VectorCombine] Fold bitcast(bitreverse.v8i8(bitcast(IntTy))) into bswap+bitreverse (#209037)

Add reverse direction to `foldBitOrderReverseAndSwap`:
`bitcast(bitreverse(<N x i8>)(bitcast(IntTy X)))` -->
`bitreverse(bswap(X))`

This avoids GPR<=>vector register crossings when integer ops are
cheaper. On AArch64 for example:

Before:
```asm
  fmov    d0, x0        ; GPR → vector crossing
  rbit    v0.8b, v0.8b
  fmov    x0, d0        ; vector → GPR crossing
```
After:
```asm
  rev     x8, x0        ; stays in integer registers
  rbit    x0, x8
```
The fold is cost-model driven and only fires when the integer version is
cheaper, so targets like X86+GFNI that prefer the vector form (single
`vgf2p8affineqb` instruction) are unaffected.

A new call site for `BitCast` instructions is added alongside the
existing `Call` instruction call site in the dispatch loop.

Fixes #201760
https://invent.kde.org/qt/clang/llvm-project/-/commit/14f6b9f0a3976f85d3ef509c8361991ae3702002

Git commit 06e3180cd141d9a8efdb9e9867b4a32300679038 by GitHub (on behalf of Barbara Mitic) on 20/07/2026 at 11:37..
[AMDGPU] Accept extractelement of a widening cast when folding image ops to a16 (#208207)

canSafelyConvertTo16Bit() recognizes a scalar coordinate that is a
direct sext/zext/fpext from a 16-bit value (sext gated on AllowI16SExt).
Per-dimension coordinates can instead arrive as an extractelement of a
widening vector cast (extractelement((s|z|fp)ext <N x i16/half> Vec),
Idx). When the cast has more than one use, the extractelement(cast) ->
cast(extractelement) canonicalization does not fire, so the cast is left
in place and the coordinate is not recognized.

Strip a leading extractelement before the cast check so the same logic
handles scalar and per-lane coordinates, and mirror this in
convertTo16Bit() by re-extracting from the narrow vector, allowing the
widening cast to be removed once it has no other uses.
https://invent.kde.org/qt/clang/llvm-project/-/commit/06e3180cd141d9a8efdb9e9867b4a32300679038

Git commit bd38dd0ace19c3b9512da2b37bb9690ee6c9e97f by GitHub (on behalf of AntonyCJ30) on 20/07/2026 at 11:39..
[X86] Fix swapped VPTERNLOG231_imm8/VPTERNLOG312_imm8 SDNodeXForm bodies (#209782)

Fixes #157929

VPTERNLOG231_imm8 and VPTERNLOG312_imm8 had their bodies swapped,
causing ISel to emit the wrong truth-table immediate whenever operand
reordering was needed (-O1+, not -O0).

Test changes:
- **avx512-vpternlog-commute.ll: regenerated with
update_llc_test_checks.py**
  (accounts for the large diff)
- Added 4 new cases: vpternlog231_rmik, vpternlog312_rmik,
  vpternlog231_rmbik, vpternlog312_rmbik

Tested: llvm-lit on llvm/test/CodeGen/X86 (no regressions), original
repro verified correct at -O0 through -O3, -Os, -Oz.
https://invent.kde.org/qt/clang/llvm-project/-/commit/bd38dd0ace19c3b9512da2b37bb9690ee6c9e97f

Git commit 60f8b4624badab6bec5e2600d82cf98b6a4e303b by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 11:40..
AMDGPU/GlobalISel: Fix G_MERGE_VALUES lowering for extended LLTs (#209202)

Use integer type for bit twiddling instead of scalar.
https://invent.kde.org/qt/clang/llvm-project/-/commit/60f8b4624badab6bec5e2600d82cf98b6a4e303b

Git commit 648aec12e5e5242c93aa73a21714553c6341ddc3 by GitHub (on behalf of Sander de Smalen) on 20/07/2026 at 11:50..
[AArch64] NFC: Factor out code from FP_TO_INT (SVE). (#207200)

This just moves out some of the SVE lowering code from
LowerVectorFP_TO_INT into a separate function, so that we can reuse that
in LowerVectorFP_TO_INT_SAT.
https://invent.kde.org/qt/clang/llvm-project/-/commit/648aec12e5e5242c93aa73a21714553c6341ddc3

Git commit 25b75a1e41c5fe71ed1f832c36c8bfb1bca1ab35 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 11:51..
AMDGPU/GlobalISel: Stop using changeTo in legalizer actions (#209203)

Use changeElementSizeTo or changeElementCountTo to preserve extended LLT.
https://invent.kde.org/qt/clang/llvm-project/-/commit/25b75a1e41c5fe71ed1f832c36c8bfb1bca1ab35

Git commit 8abc26930cf9ee0f059228acdbd1d22cd1c325e3 by GitHub (on behalf of Simon Pilgrim) on 20/07/2026 at 12:04..
[X86] combineShiftRightLogical - fold srl(vecreduce_umax(x),bw-1) as MOVMSK signbit reduction (#210281)

VectorCombine may have folded:
  icmp_eq(vecreduce_or(splatsign(x)),0) --> icmp_sgt(vecreduce_umax(x),-1)

which DAG folds to:
  srl(vecreduce_umax(x),bw-1).

This match attempts to lower:
  srl(vecreduce_umax(x),bw-1) --> icmp_ne(movmsk(x),0) "any_of negative"
  srl(not(vecreduce_umax(x)),bw-1) --> icmp_eq(movmsk(x),0) "none_of negative"

The correct fix would be to improve vecreduce_or costs to prevent
VectorCombine doing this, but that change is far too big to be merged
into 23.x - so I've created the narrow backend fix.

Fixes #209714
https://invent.kde.org/qt/clang/llvm-project/-/commit/8abc26930cf9ee0f059228acdbd1d22cd1c325e3

Git commit d9c88062ecf9dc8ece4bb1482b0f1789979e3da5 by GitHub (on behalf of rdevshp) on 20/07/2026 at 12:05..
[analyzer] Fix _BitInt support & casting behavior for Z3 symbolic execution (#210525)

Forces symbolic cast to be enabled for z3 symbolic execution, and
switches away from Ctx.getTypeSize for getting the bit width of integral
types.

The current patch might be a bit problematic for z3 cross-check, as this
relies on symbolic integer cast to be always on. I am not sure if
turning on ShouldSupportSymbolicIntegerCasts would cause issues for the
supported range-based solver, so I only kept it turned on when
AnalysisConstraintsOpt == Z3ConstraintsModel.

Assisted-by: Codex
https://invent.kde.org/qt/clang/llvm-project/-/commit/d9c88062ecf9dc8ece4bb1482b0f1789979e3da5

Git commit 27fe16dcf920c92bcb7050e5abf4164ed3b496d1 by GitHub (on behalf of Dan Blackwell) on 20/07/2026 at 12:06..
[Darwin][ASan] Strip MTE-tags for inlined shadow translations (#204827)

https://github.com/llvm/llvm-project/pull/166453 stripped these tags
when the runtime performed the mem-to-shadow translation, but did not
account for ASan's inline translations. When an MTE-tagged address gets
translated, the tag bits are right-shifted too, resulting in a very high
address that faults when accessed.

This patch strips the MTE-tag bits before applying the translation on
Apple platforms.

rdar://180032780
https://invent.kde.org/qt/clang/llvm-project/-/commit/27fe16dcf920c92bcb7050e5abf4164ed3b496d1

Git commit 1caf9e1ef68ef85f1976e82bfc33befe1edc6eff by GitHub (on behalf of Federico Bruzzone) on 20/07/2026 at 12:09..
[mlir][ArmSVE] Fix comment inconsistency for `pack_lhs` in `ArmSVE/pack-unpack-mmt4d.mlir` (NFC) (#210502)

This PR simply fix a comment inconsistency for `pack_lhs` in
[ArmSVE/pack-unpack-mmt4d.mlir](https://github.com/llvm/llvm-project/compare/main...FedericoBruzzone:nfc-armsve?expand=1#diff-7be071860c440806b8dad954ed61946e7e9f27e032ed6044a704f0c0f70e4407)
as identified in #208226.

Signed-off-by: Federico Bruzzone <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/1caf9e1ef68ef85f1976e82bfc33befe1edc6eff

Git commit c30b1fa7a08e36346f80b1798ae587bc1d5e032b by GitHub (on behalf of Nico Weber) on 20/07/2026 at 12:09..
[gn build] Port b21fb937f165 (#210698)
https://invent.kde.org/qt/clang/llvm-project/-/commit/c30b1fa7a08e36346f80b1798ae587bc1d5e032b

Git commit 2cdd343022d4c5848281f4bb3670213f535884a2 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 12:12..
AMDGPU/GlobalISel: Fix legalizer lowering for G_EXTRACT/INSERT_VECTOR_ELT (#210094)

Use LLT::integer in bit twiddling lowering for extract/insert vector element.
https://invent.kde.org/qt/clang/llvm-project/-/commit/2cdd343022d4c5848281f4bb3670213f535884a2

Git commit ca276b4822b1c748aaf9ef631d887143cb03a217 by GitHub (on behalf of Pengcheng Wang) on 20/07/2026 at 12:14..
[ExpandMemCmp][RISCV] Expand memcmp/bcmp for aligned pointers on strict-align targets (#209738)

`RISCVTTIImpl::enableMemCmpExpansion` previously disabled `memcmp`/`bcmp`
expansion whenever the target lacks unaligned scalar memory access. This is
too conservative: when both pointers are statically known to be
sufficiently aligned (e.g. `bcmp(ptr align 8, ptr align 8, 32)`), only
naturally aligned loads are needed, which are fine on strict-align
targets.

`ExpandMemCmp` now keeps a candidate load size only if, given the known
common alignment of the two pointers, the access is naturally aligned or
the target reports it via `allowsMisalignedMemoryAccesses`; otherwise it
falls back to the libcall. The query tests whether the access is
*allowed* (not *fast*), so it is a no-op for targets that already allow
unaligned access (X86, AArch64, ...).

The known alignment now also folds in the `align` attributes on the call
arguments (`CallBase::getParamAlign`), not just the pointer value.

RISCV drops the early return and only offers overlapping loads / tail
expansions when unaligned scalar access is supported.

Fixes #209511.

Assisted-by: TRAE CLI (DeepSeek V4 Pro)
https://invent.kde.org/qt/clang/llvm-project/-/commit/ca276b4822b1c748aaf9ef631d887143cb03a217

Git commit 0000fd1fc63dcc7f0fe87091fe2e5a0daf5ec727 by GitHub (on behalf of Simon Pilgrim) on 20/07/2026 at 12:19..
[VectorCombine] load-widening.ll - add test coverage for all 4 x86-64 cpu levels and aarch64 endian test coverage (#210690)

Removed x86 endianess tests which makes no sense (and are likely to misbehave) and add equivalent test coverage to aarch64

Noticed while reviewing #209775
https://invent.kde.org/qt/clang/llvm-project/-/commit/0000fd1fc63dcc7f0fe87091fe2e5a0daf5ec727

Git commit ac41c58f7b3b26a4bd4260d05afd7c3b2ccc3c72 by GitHub (on behalf of BohdanYehorov) on 20/07/2026 at 12:20..
[clang][docs] Fix include path in InternalsManual (#209458)

The paths `include/Basic/StmtNodes.td` and `include/AST/Expr*.h` in the
Clang Internals Manual are incorrect.
https://invent.kde.org/qt/clang/llvm-project/-/commit/ac41c58f7b3b26a4bd4260d05afd7c3b2ccc3c72

Git commit a35bcaef8c1a0867af4c3b547422b4783c88fc96 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 12:24..
AMDGPU/GlobalISel: Explicitly widen scalar to i32 for load and store (#210095)

Affects f16 and bf16. Earlier, they were widened to f32 and s32 respectively.
The actual error was the artifact combiner creating a copy between f32/i32
which fails in the machine verifier. Maybe we could create a bitcast there.
However i32 is more efficient for us and matches well with how argument
lowering keeps f16 and bf16 in i32 copies to/from physical registers.
Also starting from f16 store, G_STORE %0(f16), %1(p1) :: (store (f16),
and doing widen scalar to 32 bit type, i32 makes more sense since store
will store 16 least significant bits G_STORE %0(i32), %1(p1) :: (store (f16)
compared to G_STORE %0(f32), %1(p1) :: (store (f16), which looks incorrect if
we assume input was really in f32 format.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a35bcaef8c1a0867af4c3b547422b4783c88fc96

Git commit 16e213f7dd3b8a2ec93b3015268efb8f59c9b52d by GitHub (on behalf of Arseniy Obolenskiy) on 20/07/2026 at 12:45..
[AMDGPU][GlobalISel] Fix wrong half selection in wave.shuffle lowering (#210661)

selectWaveShuffleIntrin XORed ThreadID with the shifted index instead of
the original index, picking the wrong lane half on wave64 targets
without wave wide bpermute (GFX10/GFX11)
https://invent.kde.org/qt/clang/llvm-project/-/commit/16e213f7dd3b8a2ec93b3015268efb8f59c9b52d

Git commit 75ee393652ca86f5d9b3670be5fa04d2bd8bb95a by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 12:46..
AMDGPU/GlobalISel: Use integer as MMO type for loads and stores lowering (#210096)

We could get away with just the type from MMO in most cases, but MMO splitting
creates MMO with LLT::scalar and we prefer integer.
https://invent.kde.org/qt/clang/llvm-project/-/commit/75ee393652ca86f5d9b3670be5fa04d2bd8bb95a

Git commit 112aac39131f7fdc8b4a50cb3fb13ef293e1c620 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 12:47..
AMDGPU/GlobalISel: Fix extending load narrow scalar (#210097)

isAnyScalar is explicit LLT::scalar check but we want to narrow scalar
integer types as well.
https://invent.kde.org/qt/clang/llvm-project/-/commit/112aac39131f7fdc8b4a50cb3fb13ef293e1c620

Git commit 88a19bdee051ef4ce15fc4e29f50a328b80b0166 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 12:47..
AMDGPU/GlobalISel: Use integers for read-any-lane split type (#210098)
https://invent.kde.org/qt/clang/llvm-project/-/commit/88a19bdee051ef4ce15fc4e29f50a328b80b0166

Git commit 92873559f90a35f89ebc5ac94a6d7e4c3a419ecb by GitHub (on behalf of Raphael Isemann) on 20/07/2026 at 12:48..
[lldb][test] Bump safety timeout in simulator tests to fix flakyness (#209180)

On really slow machines, the current 10 second timeout can expire and
cause the test to randomly fail. Bump the timeout to 10 minutes which 60
times the current value and should be unreachable even on the slowest of
machines.

To avoid making the tests run for 10 minutes, we now consistently kill
the test process on shutdown using the subprocess list in lldbtest which
gets killed on tearDown.
https://invent.kde.org/qt/clang/llvm-project/-/commit/92873559f90a35f89ebc5ac94a6d7e4c3a419ecb

Git commit 1e18a0f4d758ff796acbb3987c2d01c02bb223a1 by GitHub (on behalf of Antonio Frighetto) on 20/07/2026 at 12:58..
[MemCpyOpt] Precommit tests for PR210667 (NFC) (#210708)
https://invent.kde.org/qt/clang/llvm-project/-/commit/1e18a0f4d758ff796acbb3987c2d01c02bb223a1

Git commit 92539cf3a83e22dd589fa97d223da06339dc304a by GitHub (on behalf of Antonio Frighetto) on 20/07/2026 at 13:01..
[MemCpyOpt] Ensure call slot optz does not lower destination alloca alignment (#210667)

A destination alloca's alignment could have been unconditionally
overwritten, letting a lower-aligned source incorrectly undo a
previous alignment increase. This issue has been addressed by
considering the maximum alignment between the new source target
and current destination, adhering to what the existing comment
already promises.

Fixes: https://github.com/llvm/llvm-project/issues/208092.
https://invent.kde.org/qt/clang/llvm-project/-/commit/92539cf3a83e22dd589fa97d223da06339dc304a

Git commit 4f939577de61ffdf85087499b99aa3686ed362cd by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:04..
GlobalISel: Use extended LLTs in f64 to f16 fptrunc lowering (#210099)
https://invent.kde.org/qt/clang/llvm-project/-/commit/4f939577de61ffdf85087499b99aa3686ed362cd

Git commit e3016ce1a9a14c690c90a343849d45837d9d95d7 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:04..
GlobalISel: Use extended LLTs in extract lowering (#210100)
https://invent.kde.org/qt/clang/llvm-project/-/commit/e3016ce1a9a14c690c90a343849d45837d9d95d7

Git commit e8969304fe0ca32088120702267772a622f5f746 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:05..
AMDGPU/GlobalISel: Use integers for clamp i64 to i16 prelegalizer combine (#210101)
https://invent.kde.org/qt/clang/llvm-project/-/commit/e8969304fe0ca32088120702267772a622f5f746

Git commit 066fba24b425211e80deb4486ba56ddf70472c37 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:06..
AMDGPU/GlobalISel: Use extended LLTs in AMDGPUCombinerHelper (#210102)

Here we also had to change comparisons to extended LLTs to avoid
matching bfloats. In the old scalar version, before the switch to extended
LLTs, s16 was treated as f16 and bf16 was combined as if it were f16.
https://invent.kde.org/qt/clang/llvm-project/-/commit/066fba24b425211e80deb4486ba56ddf70472c37

Git commit 499fd10534993eec4aefc8f06026fc4876bbd371 by GitHub (on behalf of Louis Dionne) on 20/07/2026 at 13:09..
[libc++] Run macOS CI on self-hosted runners instead of Github ones (#210124)

This should increase our capacity and allow better turn around times,
and potentially unblock additional test coverage.

Note that this change implies that the self-hosted runners provide a
version of Xcode that is supported by libc++ (the latest released one),
which is currently the case.
https://invent.kde.org/qt/clang/llvm-project/-/commit/499fd10534993eec4aefc8f06026fc4876bbd371

Git commit 03b780679bdb5152aef0182dfc8b2f1d182a94e0 by GitHub (on behalf of Thurston Dang) on 20/07/2026 at 13:13..
[libc++][test] Fix build failure from typo in #171785 (#210552)

If `__STDCPP_DEFAULT_NEW_ALIGNMENT__` is not defined, these tests will
fail to build due to a typo that was added in #171785.
https://invent.kde.org/qt/clang/llvm-project/-/commit/03b780679bdb5152aef0182dfc8b2f1d182a94e0

Git commit 8888665966f14abfac4f2c352846abfc1212d8e5 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:18..
AMDGPU/GlobalISel: Fix type mismatch in regbank combiner for applyD16Load (#210103)
https://invent.kde.org/qt/clang/llvm-project/-/commit/8888665966f14abfac4f2c352846abfc1212d8e5

Git commit 743813d10023a0616833062f5d448284022b8063 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 13:18..
GlobalISel: Use extended LLTs in lshr narrow combine (#210298)
https://invent.kde.org/qt/clang/llvm-project/-/commit/743813d10023a0616833062f5d448284022b8063

Git commit a8617034c4a7cc733676a31b736d3118fec34259 by GitHub (on behalf of Hubert Tong) on 20/07/2026 at 13:36..
[libc++][utils] Fix LIT `%if` substitution support (#209358)

Update the applySubstitutions call in `libcxx/utils/libcxx/test/format.py` to match the
change to `llvm/utils/lit/lit/TestRunner.py` done in 1041a9642ba0.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a8617034c4a7cc733676a31b736d3118fec34259

Git commit 3fc6711ccaf60c15371402c3ee7776fde5f01b4f by GitHub (on behalf of zhijian lin) on 20/07/2026 at 13:37..
[PowerPC]optimize the epilogue for restore non volatile cr fields (#202339)

For AIX and ELFv2 ABI, 
1. When we only spill one non-volatile CR field , using one
mfocrf/mtocrf instruction.
2. when spill two or more non-volatile CR fields, using one mfcr/mtcr
instead of multi mfocrf/mtocrf instructions
https://invent.kde.org/qt/clang/llvm-project/-/commit/3fc6711ccaf60c15371402c3ee7776fde5f01b4f

Git commit faf7261308da236627ae8f813d17d6e1ef1e9d68 by GitHub (on behalf of Louis Dionne) on 20/07/2026 at 13:38..
[libc++] Bring std::{any,all,none}_of tests up to current standards (#209266)

The tests for these algorithms were minimal, didn't test all iterator
categories, and the constexpr coverage didn't follow our current
practice. This patch brings all three tests (which are very similar) up
to our current standards.

Assisted by Claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/faf7261308da236627ae8f813d17d6e1ef1e9d68

Git commit 44e37579d19c7d0965166808c77f9e7ebf407df9 by GitHub (on behalf of Kareem Ergawy) on 20/07/2026 at 13:43..
[flang][PFT-to-MLIR] reset Evaluation blocks between entry-point passes (#210681)

A subprogram with an alternate ENTRY is lowered by walking the shared
PFT once per entry. Evaluation::block is populated during each walk
(top-level createEmptyBlocks and inside wrapUnstructuredConstruct's own
createEmptyBlocks), but the second pass previously inherited stale
pointers into the first entry's function/wrap regions. For a wrappable
IfConstruct nested inside a structured container, the entry block that
genFIR(IfConstruct) starts before creating its scf.execute_region then
sent the builder into the previous entry's region, and the wrap plus its
inner load ended up in the wrong func:

    subroutine foo(a)
      integer a
    entry bar(a)
      if (a .eq. 1) then
        if (a .ne. 3) stop
      end if
    end subroutine

produced both scf.execute_region ops in _QPfoo, with an inner fir.load
referencing bar's %arg0 — 'fir.load' op using value defined outside the
region.

Fix: null every Evaluation::block in the shared PFT at the start of each
entry-point pass, so createEmptyBlocks fills a clean tree and later
reads (in particular the landing-pad reposition in genFIR(IfConstruct))
never see a pointer from a prior pass.

Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/44e37579d19c7d0965166808c77f9e7ebf407df9

Git commit 2a33792a2ec1a980259bd9388834e3c1fa53af3d by GitHub (on behalf of Matthias Wippich) on 20/07/2026 at 13:50..
[clang][NFC] move traits to tablegen (#201491)

This patch moves all traits to a tablegen file. 

The motivation for this change is a review comment in
https://github.com/llvm/llvm-project/pull/142341 - since then about a
year has passed and we've accumulated 9 standard names that are
maintained separately from their corresponding trait definitions. For
transform type traits we keep the standard names around as well. While
this is still a reasonably low number, it is definitely going to keep
increasing.
https://invent.kde.org/qt/clang/llvm-project/-/commit/2a33792a2ec1a980259bd9388834e3c1fa53af3d

Git commit 0549fbe55ba4f9fc172591a61b04700d4ff5045e by GitHub (on behalf of Daemon) on 20/07/2026 at 13:54..
[GlobalISel] Synchronize GISelValueTrackingAnalysis behavior across Legacy and New PM paths (#207013)

This patch aligns the New Pass Manager (NPM) implementation of
`GISelValueTrackingAnalysis::run()` with the Legacy pass manager by
dynamically adjusting the maximum search depth based on the optimization
level. This eliminates behavioral discrepancies between the two code
paths, reducing migration risks and ensuring consistent compilation
performance and code generation quality across both code paths.
https://invent.kde.org/qt/clang/llvm-project/-/commit/0549fbe55ba4f9fc172591a61b04700d4ff5045e

Git commit 97a105f8e681e8e9e5778b6f8bf95a8c365a05f6 by GitHub (on behalf of Sergio Afonso) on 20/07/2026 at 14:01..
[Flang][OpenMP] Allow `parallel loop` inside of `teams` (#210679)

A missing `parallel_loop` directive in the `nestedTeamsAllowedSet`
currently causes code like the following to report a semantics issue:
```f90
!$omp teams
  !$omp parallel loop
  do i=1, 10
  end do
!$omp end teams
```
This patch makes sure to accept it, since `parallel` is an allowed
construct to be immediately nested inside of `teams`, even when combined
with another construct.
https://invent.kde.org/qt/clang/llvm-project/-/commit/97a105f8e681e8e9e5778b6f8bf95a8c365a05f6

Git commit e16e6077cbc2b0ab6335dd4dc67e3a6318b1ad3a by GitHub (on behalf of Florian Hahn) on 20/07/2026 at 14:21..
[SCEV] Use m_scev_AffineAddRec in get{Zero,Sign}ExtendExprImpl (NFC) (#210082)

It's a small win in number of lines, and reduces the nesting level a
bit.

Suggested in https://github.com/llvm/llvm-project/pull/208805

PR: https://github.com/llvm/llvm-project/pull/210082
https://invent.kde.org/qt/clang/llvm-project/-/commit/e16e6077cbc2b0ab6335dd4dc67e3a6318b1ad3a

Git commit 35aa7b529ebeafc9767a4c5398047a92b86bd4a8 by GitHub (on behalf of Erich Keane) on 20/07/2026 at 14:32..
Ensure that we properly propagate template decl attributes to redecls (#209873)

Variable and class templates weren't forwarding their declaration
attributes that were attached directly to them (at the moment, the only
one I could find that had this issue is the no_specialization attr). The
result was that intermediate redeclarations would prevent the
diagnostics from happening.

This patch ensures we propagate them properly for variable and class
templates. It seems our function templates already do the right thing.

Fixes: #209812
https://invent.kde.org/qt/clang/llvm-project/-/commit/35aa7b529ebeafc9767a4c5398047a92b86bd4a8

Git commit b16c5f7cc88c9f41d904cc73d5618cc7453ac862 by GitHub (on behalf of yinghao) on 20/07/2026 at 14:33..
[NVPTX] Clear unsafe kill flags in NVPTXProxyRegErasure (#198143)

Fixes #198142

After replacing regsiter, stale `killed` flags my leave on non-terminal
uses, breaking liveness and triggering MachineVerifier errors.
    
Fix this by conservatively dropping the `killed` flag on `ToReg`.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b16c5f7cc88c9f41d904cc73d5618cc7453ac862

Git commit bb5c8d5bea4817a2447d9acfdb7ef11c4323ddac by GitHub (on behalf of Ömer Sinan Ağacan) on 20/07/2026 at 14:33..
[LangRef] Add immarg attributes to memcpy, memset, memmove isvolatile args (#210669)
https://invent.kde.org/qt/clang/llvm-project/-/commit/bb5c8d5bea4817a2447d9acfdb7ef11c4323ddac

Git commit 1ed1ca59245bfa949919f31cef5fd5c87c20c6ec by GitHub (on behalf of Momchil Velikov) on 20/07/2026 at 14:35..
Re-commit: [GVN] Remove the "private" `llvm::gvn` namespace (NFC) (#210712)

Re-commit of https://github.com/llvm/llvm-project/pull/210323 after
adding
a forward declaration for GVNLegacyPass class to work around GCC
compilation
failure.

Move `AvailableValue` and `AvailableValueInBlock` into GVNPass, similar
to other helper types.
  
Retain `llvm::gvn::GVNLegacyPass` as just `llvm::GVNLegacyPass` -
"legacy" is already a sufficent hint and it is not going to become more
"private" by stacking "gvn" prefixes to the name.

Ideally, `GVNLegacyPass` should be defined in an anonymous namespace,
but
that is not possible because it is declared as a friend of GVNPass.
https://invent.kde.org/qt/clang/llvm-project/-/commit/1ed1ca59245bfa949919f31cef5fd5c87c20c6ec

Git commit 6998fd59e16026a00fee8e83243c0ec91047fee3 by GitHub (on behalf of Yaxun (Sam) Liu) on 20/07/2026 at 14:37..
[AMDGPU] Print max-BB inline rejections
https://invent.kde.org/qt/clang/llvm-project/-/commit/6998fd59e16026a00fee8e83243c0ec91047fee3

Git commit 6f744fb04cf1cf30b45ff73883566eeebb7eeb7d by GitHub (on behalf of forking-google-bazel-bot[bot]) on 20/07/2026 at 14:45..
[Bazel] Fixes 2a33792 (#210726)

This fixes 2a33792a2ec1a980259bd9388834e3c1fa53af3d.

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

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

Git commit 4c5b4f40c4ac77f1b50a90451fd040356748ac6a by GitHub (on behalf of Sergey Semenov) on 20/07/2026 at 14:54..
[libsycl][E2E] Compile all E2E tests with -fsycl (#204115)
https://invent.kde.org/qt/clang/llvm-project/-/commit/4c5b4f40c4ac77f1b50a90451fd040356748ac6a

Git commit 2549a2c39b4b86b035df052948bd3f867728b075 by GitHub (on behalf of Sergey Semenov) on 20/07/2026 at 14:55..
[libsycl][NFC] Move the cmake msvc DLL check (#193485)

Addresses a review comment from
https://github.com/llvm/llvm-project/pull/188770
https://invent.kde.org/qt/clang/llvm-project/-/commit/2549a2c39b4b86b035df052948bd3f867728b075

Git commit 7bbed7999de1a60c790a3b0f01d965c18fd832e8 by GitHub (on behalf of Slava Zakharin) on 20/07/2026 at 15:10..
[flang] Fold reads of fir.create_box components (#210388)

Fold fir.box_addr and constant-dimension fir.box_dims of a descriptor
built by fir.create_box back to the operands that built it, so the
create_box can die when nothing consumes it as a real descriptor.
fir.array_coor is intentionally not folded through create_box, since
that would drop its explicit byte strides.

Assisted-by: Cursor
https://invent.kde.org/qt/clang/llvm-project/-/commit/7bbed7999de1a60c790a3b0f01d965c18fd832e8

Git commit b2d3db9bfb01ceb821b38dfc57f7965b09f602cf by GitHub (on behalf of Jinsong Ji) on 20/07/2026 at 15:17..
[SCEV] Derive element size from the access's own pointer address space (#209824)

ScalarEvolution::getElementSize always derived the element-size SCEV
using a generic address-space-0 pointer index type. On targets whose
data layout uses different pointer index widths per address space (for
example, where some address spaces use 32-bit pointers and others
64-bit), a load/store through a narrow address space produced an access
function SCEV of one width but an element-size SCEV of another.

Delinearization then called SCEVDivision::divide with numerator and
denominator of mismatched types, tripping the assertion added in
a9d295d615a8 once the implicit sign-extension was removed in
23a32bcedb91.

Derive the index type from the memory access's actual pointer operand
address space so the element-size SCEV matches the width of the access
function's SCEV.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b2d3db9bfb01ceb821b38dfc57f7965b09f602cf

Git commit 9c024f3a83cf2469b27ae42c1a8d3ab635da3dc1 by GitHub (on behalf of YongKang Zhu) on 20/07/2026 at 15:35..
[BOLT] Drop option --instrument-funcs-file (#210217)
https://invent.kde.org/qt/clang/llvm-project/-/commit/9c024f3a83cf2469b27ae42c1a8d3ab635da3dc1

Git commit 34aefe9744fa83fa222d7f28e073c693c2c4ff5b by GitHub (on behalf of Brian Cain) on 20/07/2026 at 15:42..
[Hexagon] Fix compiler-rt install dir type, scope sanitizers (#209375)

COMPILER_RT_INSTALL_LIBRARY_DIR must be CACHE STRING, not CACHE PATH: a
relative PATH-typed cache entry resolves against the runtimes sub-build
directory instead of CMAKE_INSTALL_PREFIX, misplacing sanitizer libs.

Replace the explicit COMPILER_RT_BUILD_* ON list with
COMPILER_RT_SANITIZERS_TO_BUILD=all, since those options already default
ON upstream and infeasible sanitizers self-exclude via their own
ALL_<X>_SUPPORTED_ARCH lists.

Add FORCE to the dylib overrides so they take effect after
hexagon-unknown-linux-musl-clang-dist.cmake has already cached them OFF.
https://invent.kde.org/qt/clang/llvm-project/-/commit/34aefe9744fa83fa222d7f28e073c693c2c4ff5b

Git commit c84d20b18026fc230a7957c8faf3cf3a40d9cb55 by GitHub (on behalf of Pavel Labath) on 20/07/2026 at 15:44..
[libc] Fix sockatmark test (#210655)

When writing the test, I assumed that (linux) domain sockets do not
support OOB data, and that sockatmark returns 0, because it can never
read it.

In fact, as of 2021, linux does support OOB on domain sockets, but this
feature can be turned off at build time (CONFIG_AF_UNIX_OOB). In this
case (or in the case of older kernels), the kernel returns an error (and
the test fails).

Armed with this knowledge, I modify the test to test both "1" (OOB
present) and "0" (no OOB data) cases by actually sending OOB data into
the socket. I use the send call to determine the presence of OOB
support, and have the test skip itself if it is absent. OOB data only
makes sense on stream sockets, so change the socketpair type to that.

---------

Co-authored-by: Jeff Bailey <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/c84d20b18026fc230a7957c8faf3cf3a40d9cb55

Git commit 5a19a3a4b9915d19fff1b8298e723ee2b24ebc6a by GitHub (on behalf of Nerixyz) on 20/07/2026 at 15:45..
[lldb][Windows] Only embed Python home in Debug config (#209464)

On Windows, we used to embed `PYTHONHOME` by default on Windows. In the
documentation, we say

> This is most useful for developers who simply want to run LLDB after
they build it.

Since we use the limited/stable API now, we're less restricted in the
Python version, so I think it's less of an issue that LLDB won't find
Python. The only configuration where it might cause issues is the debug
configuration, since, when installing Python, you usually don't include
the debug libraries. Thus, you might not have the debug version
(`python3_d.py`) of Python in your PATH.
https://invent.kde.org/qt/clang/llvm-project/-/commit/5a19a3a4b9915d19fff1b8298e723ee2b24ebc6a

Git commit 0c0d9ff3b01b5709bda34198a01da2f19b88650e by GitHub (on behalf of Alexey Bataev) on 20/07/2026 at 15:47..
[SLP][NFC]Add a test with fmuladd copyables candidates, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/210744
https://invent.kde.org/qt/clang/llvm-project/-/commit/0c0d9ff3b01b5709bda34198a01da2f19b88650e

Git commit b7810e97d6281f65e255b36af7b39af18d3d2006 by GitHub (on behalf of Tom Stellard) on 20/07/2026 at 15:52..
workflows/release-documentation: Add missing secrets (#210421)
https://invent.kde.org/qt/clang/llvm-project/-/commit/b7810e97d6281f65e255b36af7b39af18d3d2006

Git commit 9ba8a3c8ebf0dee73c7e3e1aa8ae0a81dd6439c7 by GitHub (on behalf of Jay Foad) on 20/07/2026 at 15:54..
[AMDGPU] Use simpler form of applyWaitcnt. NFC. (#210736)
https://invent.kde.org/qt/clang/llvm-project/-/commit/9ba8a3c8ebf0dee73c7e3e1aa8ae0a81dd6439c7

Git commit 95f39100f1c1dab2aefbdc42d6e9ca26955535d1 by GitHub (on behalf of Caroline Newcombe) on 20/07/2026 at 16:04..
Redo [flang][OpenMP] Implement collapse for imperfectly nested loops (#208528)

Relands https://github.com/llvm/llvm-project/pull/202435, reverted in
https://github.com/llvm/llvm-project/pull/208456 because it broke
lowering of labeled DO loops under collapse with host-evaluated bounds.
https://invent.kde.org/qt/clang/llvm-project/-/commit/95f39100f1c1dab2aefbdc42d6e9ca26955535d1

Git commit bf2c381c6f9609428f1bfcc8e572cadefdf7e5c9 by GitHub (on behalf of parya03) on 20/07/2026 at 16:09..
[ARM] Add strict uint to FP conversion handling during operation legalization (#208554)

Currently, strict uint to FP conversions for the ARM backend end up
falling through to software emulation.

This commit allows them to be correctly handled using the corresponding
vcvt instruction.
https://invent.kde.org/qt/clang/llvm-project/-/commit/bf2c381c6f9609428f1bfcc8e572cadefdf7e5c9

Git commit 65bd2df84bb9e6ee8513a313840d8e2096c82e4d by GitHub (on behalf of Aleksandr Popov) on 20/07/2026 at 16:19..
[SCEV] Tighten loop guards range check idiom (#210387)

Previously, the idiom matcher derived the clamp range only from the raw
`(LHS + C1) u< C2` form and rejected wrapped or full ranges.

Intersect the derived range with the known unsigned range of `LHSUnknown`.
This can reduce wrapped or full ranges to a usable interval and allows the
matcher to extract clamps in more cases.

Related to https://github.com/llvm/llvm-project/issues/208778
https://invent.kde.org/qt/clang/llvm-project/-/commit/65bd2df84bb9e6ee8513a313840d8e2096c82e4d

Git commit 53136bd4b70071169edbae1fd9149a9f4fca6c8c by GitHub (on behalf of Eugene Epshteyn) on 20/07/2026 at 16:25..
[flang][NFC] Remove unreachable legacy FORALL/WHERE lowering code from Bridge.cpp (#210639)

The HLFIR lowering migration left a cluster of legacy, now-unreachable
code in Bridge.cpp behind. None of it has a live caller (FORALL is
lowered by genForallNest; DO CONCURRENT by getConcurrentControl):

- forceControlVariableBinding and the old DoLoopOp-based genFIR(const
parser::ConcurrentHeader &) FORALL-nest lowering (the ConcurrentHeader
is not a PFT evaluation node and is never visited).
- The member genInitializerExprValue, implicitIterationSpace/
explicitIterationSpace, genArrayAssignment, and the NDEBUG-only
isFuncResultDesignator.
- The analyzeExplicitSpace overload set, analyzeExplicitSpacePop, and
addMaskVariable.
  - The explicitIterSpace / implicitIterSpace members.

These were the only Bridge.cpp users of the legacy expression lowering
(createSome*Assignment / createSomeInitializerExpression) and of
IterationSpace, so their includes (ConvertExpr.h, IterationSpace.h, and
Runtime/Ragged.h, used only by addMaskVariable) are removed as well.

Assisted-by: AI
https://invent.kde.org/qt/clang/llvm-project/-/commit/53136bd4b70071169edbae1fd9149a9f4fca6c8c

Git commit 4158229224381e8038617d9e25b8e152551f5e08 by GitHub (on behalf of Matheus Izvekov) on 20/07/2026 at 16:27..
[clang] fix a crash for uses of a pseudo-destructor of enum without definition (#210424)

Lookup for the destuctor name in the object type only applies to record
types.

Since this will be backported, there are no release notes.

Fixes #209808
https://invent.kde.org/qt/clang/llvm-project/-/commit/4158229224381e8038617d9e25b8e152551f5e08

Git commit 272378ef3ce1cbddb37b5c2b1ffe595a123e04fd by GitHub (on behalf of Matthias Wippich) on 20/07/2026 at 16:30..
[clang][NFC] Extract LookupOverloadedUnaryOp (#210567)

This patch extracts `LookupOverloadedUnaryOp` from
`CreateOverloadedUnaryOp` for consistency with
`LookupOverloadedBinOp`/`CreateOverloadedBinOp`.
https://invent.kde.org/qt/clang/llvm-project/-/commit/272378ef3ce1cbddb37b5c2b1ffe595a123e04fd

Git commit bdfcef52762c746d82326b2e4ce9b2ba470551f4 by GitHub (on behalf of Matthias Wippich) on 20/07/2026 at 16:34..
[clang] improve diagnostics for enums (#204682)

This patch makes clang attempt printing enumerator names rather than
C-style cast expressions in more diagnostics (notably static_assert) iff
the value matches an enumerator exactly.

For example, consider a static assertion `static_assert(E ==
TestEnum::B);` where `E` is a constant template argument. Assuming
`(TestEnum)1 == TestEnum::A`, this changes emitted diagnostics as
follows:
```
// old
static assertion failed due to requirement '(TestEnum)1 == TestEnum::B'

// new
static assertion failed due to requirement 'TestEnum::A == TestEnum::B'
```
https://invent.kde.org/qt/clang/llvm-project/-/commit/bdfcef52762c746d82326b2e4ce9b2ba470551f4

Git commit b80af9cc2d856e211fa6ac58959e46b5707e9d71 by GitHub (on behalf of Nishant Patel) on 20/07/2026 at 16:37..
[MLIR][XeGPU] Enhance unrolling of convert layout (#209822)

This PR adds rewriteWithRegrouping to unroll ConvertLayoutOp by
extracting at the input inst_data granularity and inserting at the
target inst_data granularity for cancellation during canonicalization.

Assisted by Claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/b80af9cc2d856e211fa6ac58959e46b5707e9d71

Git commit 160f9c15b9f1627364d33d56cd7d30fdcb0225ed by GitHub (on behalf of Ron Green [NVIDIA]) on 20/07/2026 at 16:46..
[flang][OpenACC] Allow blanks around ':' in more clause separators (#210446)

Several OpenACC clause parsers glue a keyword directly to its `:`
separator in the token string (`"DEVNUM:"`, `"QUEUES:"`, `"FORCE:"`,
`"ZERO:"`, `"READONLY:"`). A blank in a `TokenStringMatch` pattern is
the only place a blank is accepted between characters of the token, so
these spellings rejected an otherwise valid separating space, e.g.

```fortran
!$acc wait(devnum : 1 : 2, 3)
!$acc loop collapse(force : 2)
!$acc data copyin(readonly : a) create(zero : b)
```

This moves the blank in each token string to before the `:` so zero or
more blanks are accepted on either side of the separator, matching
free-form Fortran's treatment of blanks and the spec grammar (which
writes these with spaces around the `:`). It mirrors the earlier fix for
the gang `static`/`dim`/`num` arguments.

Parser/unparse coverage is added for the spaced spellings of the wait
`devnum`/`queues` argument, the collapse `force` modifier, and the
`zero` and `readonly` data modifiers.

Assisted-by: AI
https://invent.kde.org/qt/clang/llvm-project/-/commit/160f9c15b9f1627364d33d56cd7d30fdcb0225ed

Git commit cfddcac22dabf01901424b746c94d3b6c9bddc4a by GitHub (on behalf of Caroline Newcombe) on 20/07/2026 at 16:59..
[flang][OpenMP] Fix new metadirective-loop-nest.f90 test expectation with collapse changes in #208528 (#210753)
https://invent.kde.org/qt/clang/llvm-project/-/commit/cfddcac22dabf01901424b746c94d3b6c9bddc4a

Git commit 331e5641480d24de1951d30ef6b10362ab3b6acf by GitHub (on behalf of Bhavesh M) on 20/07/2026 at 17:01..
[mlir][EmitC] Create a pass to add a reflection map to a class (#205464)

This creates the `add-reflection-map` pass to add a reflection map and a
helper method to EmitC classes for runtime field lookup.

Details:
- Add headers to import `map` and `string` if not already present.
- For every `ClassOp`:
- Collect all the `FieldOp`s that contain the attribute whose value we
want as the reflection map key. We ignore all `FieldOp`s that contain an
attribute present in `excludedFieldAttrs` and if there's a `FieldOp`
that neither has the attribute we're looking for and isn't excluded by
the presence of one of the `excludedFieldAttrs`, emit and error.
- Create the reflection map where the key is the value of the attribute
in each applicable `FieldOp`'s attribute dictionary and the value is a
pointer to the field's contents.
- Create a `getBufferForName` method which serves as a getter method for
the reflection map.

Based on PR #150572. Key differences:
- Adds a `excluded-field-attrs` option which is a list of attributes
that if present on a field exclude it from the reflection map.
- Adds a helper method called `getBufferForName` which given a string
key returns a pointer to the field's buffer.

Co-authored-by: Jaden Angella <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/331e5641480d24de1951d30ef6b10362ab3b6acf
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.