[qt/clang/llvm]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/clang/llvm
Pushed by mirror-service into branch 'upstream/users/gandhi56/sandbox-vectorizer/scheduler-fix'.
Changed from a14ac6f6c4682bf849cab1ff4b1c95fa8ed68d70 to d5c1b6cb92a9b77eee3d986171ed2dd6bb7bf972
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 c56ea6d942e7160d6d2ec82ace17a31c7806ae9e by GitHub (on behalf of Tomer Shafir) on 29/07/2026 at 23:29..
[MacroFusion] Add SDep param to predicates(NFC) (#212255)

This patch aims to extend the API for macro fusion predicates with an
additional SDep param which allows each predicate to individually decide
wether a pair should be macro fused based on the kind of dependency
between the 2 instructions.
    
A followup patch https://github.com/llvm/llvm-project/pull/212603
introduces a real user in AArch64.
https://invent.kde.org/qt/clang/llvm/-/commit/c56ea6d942e7160d6d2ec82ace17a31c7806ae9e

Git commit 397743f4301326b23f70d0f8505090eb8be30dcf by GitHub (on behalf of Erich Keane) on 29/07/2026 at 23:34..
[CIR] Implement complex rvalues NYI (#211645)

emitReturnOfRValue had an NYI for _Complex types, so returning one as an
Rvalue (see example of a lambda invoker) would NYI. Since the logic to
the store is already handled in the lower-to-LLVM, this ended up being a
pretty trivial patch.

Note; There are some differences in how this lowers, because our calling
convention for the ret is different here, and we maintain the 'complex'
type differently even through LLVM-IR. However, the IR looks to be
equivilent.
https://invent.kde.org/qt/clang/llvm/-/commit/397743f4301326b23f70d0f8505090eb8be30dcf

Git commit d998634dbeaa1b651026f1180043f68ba62c2313 by GitHub (on behalf of Daniil Kovalev) on 29/07/2026 at 23:43..
[PAC][clang] Enable `-fptrauth-elf-got` as part of pauthtest (#212446)
https://invent.kde.org/qt/clang/llvm/-/commit/d998634dbeaa1b651026f1180043f68ba62c2313

Git commit 3ca8b6e0afef0370c189721f71cb9092ea8009fd by GitHub (on behalf of Ayokunle Amodu) on 29/07/2026 at 23:48..
[CIR][CUDA] Add support for NVVM xchg builtins (#211815)

Adds codegen support for the scoped and unscoped NVVM atomic exchange
builtins:
`atom_xchg,` `atom_cta_xchg,` and `atom_sys_xchg.`

These are lowered to the corresponding CIR `cir.atomic.xchg` operations
and subsequently lowered to LLVM `atomicrmw xchg` instructions.
https://invent.kde.org/qt/clang/llvm/-/commit/3ca8b6e0afef0370c189721f71cb9092ea8009fd

Git commit 5e0a2aa0d72b832ee9a9b2f29d6183e1d94f4354 by GitHub (on behalf of compilersutra) on 30/07/2026 at 00:09..
[X86] Make WinEH crash test reliable under ASan (#212820)

The WinEH unwind `v2 error` test uses `not --crash` for malformed MIR
inputs.
In AddressSanitizer builds, the default `abort_on_error=0` can prevent
the
expected fatal error from being reported as a crash, causing FileCheck
to
  receive no diagnostic output.

Set `ASAN_OPTIONS=abort_on_error=1` for the expected-crash invocations
in
  `win64-eh-unwindv2-errors.mir`.

  ## Testing

  - ASan build focused test passes.
  - Non-ASan build focused test passes.
  - Five additional serial ASan reruns pass.
  - `git diff --check` passes.

  Fixes #212684

Co-authored-by: aabhinavg1 <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/5e0a2aa0d72b832ee9a9b2f29d6183e1d94f4354

Git commit e82a934f56d27a06168d2e8c04edf3b223f4920f by GitHub (on behalf of Anshul Nigham) on 30/07/2026 at 00:14..
[docs] de-highlight code snippet errors in dark mode (#212894)

Apply https://github.com/llvm/llvm-project/pull/212698 to dark mode as
well as light mode.
https://invent.kde.org/qt/clang/llvm/-/commit/e82a934f56d27a06168d2e8c04edf3b223f4920f

Git commit 3889ccc1a35fdd3f18eecbc01663534fb3f64478 by GitHub (on behalf of wieDasDing) on 30/07/2026 at 00:46..
[llvm-ml] make TEXTEQU directive not to eagerly expand macros in arguments (#209526)

We observed a crash in `TEXTEQU` that pastes two macros into one.

```masm
.data
part1 TEXTEQU <1>
part2 TEXTEQU <0>
joined TEXTEQU part1, part2 ; crash
```

`part1` is immediately rewritten into `1` as integer, which is rejected
by `TEXTEQU` parser. We need to keep `part1` as identifier for `TEXTEQU`
to pick up later.
https://invent.kde.org/qt/clang/llvm/-/commit/3889ccc1a35fdd3f18eecbc01663534fb3f64478

Git commit e7b04c15e6b18294c923f874f16e2d5a8e885706 by GitHub (on behalf of Alexey Samsonov) on 30/07/2026 at 00:49..
[libc] Modernize and extend dirent.h header. (#212902)

Extend the `<dirent.h>` header with macro and types specified in recent
POSIX.1-2024:
* Add `posix_dent` structure, which has more fields than `dirent`, that
are actually used in practice. This struct would be identical to
`dirent` that we have on Linux
* Add `reclen_t` type for `d_reclen` field.
* Add macro `DT_BLK` and friends

Also, extend the tests to verify the values of `d_type` field, now that
we have the proper macro defined.

Assisted by: Gemini, human-verified
https://invent.kde.org/qt/clang/llvm/-/commit/e7b04c15e6b18294c923f874f16e2d5a8e885706

Git commit 5857e09ae75d08c93de717f5a2e1c0e2c1ddd06f by GitHub (on behalf of Finn Plummer) on 30/07/2026 at 01:05..
[NFC][HLSL] Fix msan errors in tests (#212901)

Some of the tests were not initializing all the fields prior to
generating metadata, this caused a read of uninitialized memory and
caused the sanitizer to fail.

Assisted by: Claude Opus 5

Caught here: https://lab.llvm.org/buildbot/#/builders/94/builds/19767
https://invent.kde.org/qt/clang/llvm/-/commit/5857e09ae75d08c93de717f5a2e1c0e2c1ddd06f

Git commit 1a5fc1c6b6bfff561f767d5e2ffe8b0a7d81cb34 by GitHub (on behalf of Chuanqi Xu) on 30/07/2026 at 01:21..
[mlir] [linalg] Fold broadcast/transpose into linalg.generic (#212415)

Currently we are able to fold broadcast/transpose into
linalg.elementwise. This patch extends the ability to fold
broadcast/transpose into linalg.generic.

For example,

```
  %empty = tensor.empty() : tensor<8x16xf32>
  %broadcasted = linalg.broadcast ins(%A : tensor<8xf32>) outs(%empty : tensor<8x16xf32>) dimensions = [1]
  %result = linalg.generic {
    indexing_maps = [affine_map<(d0, d1) -> (d0, d1)>,
		     affine_map<(d0, d1) -> (d0, d1)>],
    iterator_types = ["parallel", "parallel"]
  } ins(%broadcasted : tensor<8x16xf32>) outs(%B : tensor<8x16xf32>) {
  ^bb0(%in: f32, %out: f32):
    %v = arith.addf %in, %in : f32
    linalg.yield %v : f32
  } -> tensor<8x16xf32>
```

we can fold the broadcast into:

```
  %result = linalg.generic {
     indexing_maps = [affine_map<(d0, d1) -> (d0)>,
                      affine_map<(d0, d1) -> (d0, d1)>],
    iterator_types = ["parallel", "parallel"]
  } ins(%A: tensor<8xf32>) outs(%B : tensor<8x16xf32>) {
  ^bb0(%in: f32, %out: f32):
    %v = arith.addf %in, %in : f32
    linalg.yield %v : f32
  } -> tensor<8x16xf32>
```

For simplicity, we only consider all parallel linalg.generic right now.

AI assisted.
https://invent.kde.org/qt/clang/llvm/-/commit/1a5fc1c6b6bfff561f767d5e2ffe8b0a7d81cb34

Git commit 44a11330d9c246c7c042c16f26a10373956731f7 by GitHub (on behalf of Med Ismail Bennani) on 30/07/2026 at 01:44..
[lldb/script] Add class-based summary providers via ScriptedStringSummaryInterface (#210469)
https://invent.kde.org/qt/clang/llvm/-/commit/44a11330d9c246c7c042c16f26a10373956731f7

Git commit dc57785129b1e3dfd489ef8c39e74a262d90a0c2 by GitHub (on behalf of Jianjian Guan) on 30/07/2026 at 01:54..
[CIR][RISCV] Support XAndesPerf builtins (#211490)
https://invent.kde.org/qt/clang/llvm/-/commit/dc57785129b1e3dfd489ef8c39e74a262d90a0c2

Git commit bdddd3e7202477e37c0a73dd036a0377d762f2e6 by GitHub (on behalf of Zane Hambly) on 30/07/2026 at 02:37..
[X86] Apply the data32 mode switch in the Intel matcher (#212417)

In .code16, `data32 push 8` in Intel syntax assembled as `pushw $8` with
the 66 prefix dropped, and `data32 push 0x1234` truncated the immediate
to 16 bits. AT&T syntax gets both right.

`ForcedDataPrefix` is set while parsing either syntax, but only
`matchAndEmitATTInstruction` switched mode on it, so the Intel path took
the operand size from the mode and never saw the prefix.

Do the same switch in `matchAndEmitIntelInstruction`. The mode has to go
back to 16-bit before the instruction is emitted, otherwise the 32-bit
form is emitted without its 66 prefix. That function has several error
returns partway through matching, so a scope guard covers those.

Encodings after the change match both AT&T syntax and GNU as:

```
data32 push 8       [0x6a,0x08]      -> [0x66,0x6a,0x08]
data32 push 0x1234  [0x68,0x34,0x12] -> [0x66,0x68,0x34,0x12,0x00,0x00]
```

Fixes #156286
https://invent.kde.org/qt/clang/llvm/-/commit/bdddd3e7202477e37c0a73dd036a0377d762f2e6

Git commit a01f8c85bcac35be5b6b9d5f081a3763feb5b530 by GitHub (on behalf of higher-performance) on 30/07/2026 at 02:38..
Speed up compilation of typical invocations of std::visit(std::variant<...>) for up to 11 types (#164196)

Similar to https://reviews.llvm.org/D90168 which was reverted (https://github.com/llvm/llvm-project/issues/62648#issuecomment-1832315651), but uses `switch` statements rather than function pointer tables.
https://invent.kde.org/qt/clang/llvm/-/commit/a01f8c85bcac35be5b6b9d5f081a3763feb5b530

Git commit 7ded638ea33b96d9fd628e2a5cbc06df12ede153 by GitHub (on behalf of William Tran-Viet) on 30/07/2026 at 03:12..
[libc++] Granularize `<optional>` (#206644)

Certain headers require `optional<T&>`, so it may be beneficial to split
out `optional<T>` and `optional<T&>`. This can allow consumers to only
bring in the `optional` flavour it needs..

- Parcel out the respective pieces into their own header.
- Certain sources rely on transitive includes brought in by
`<optional>`, so they're kept there for now, and only tests have been
fixed.

---------

Co-authored-by: Louis Dionne <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/7ded638ea33b96d9fd628e2a5cbc06df12ede153

Git commit 693d0a9d04fcbdd20730922f3218cfed701d3004 by GitHub (on behalf of Madhur Amilkanthwar) on 30/07/2026 at 03:17..
[SLP][modularisation][NFC] Extract InstructionsState (2/3) (#211461)

Move the InstructionsState class out of SLPVectorizer.cpp into the
existing private module SLPVectorizer/SLPCompatibilityAnalysis.{h,cpp}.
The class declaration (with trivial accessors) lives in the header; the
non-trivial method bodies are defined out-of-line in the .cpp:

  isSameOperation
  getMatchingMainOpOrAltOp
  isMulDivLikeOp
  isAddSubLikeOp
  isCopyableElement
  isExpandedBinOp
  isExpandedOperand
  isNonSchedulable

Part of the effort to modularize SLPVectorizer.cpp. See the RFC:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
https://invent.kde.org/qt/clang/llvm/-/commit/693d0a9d04fcbdd20730922f3218cfed701d3004

Git commit c94c7cc893d72dfa37c1cfe667ea9dac6da5e4a4 by GitHub (on behalf of agozillon) on 30/07/2026 at 03:18..
[Flang][OpenMP] Remove present modifier application on descriptor (#211856)

This was a minor change upstreamed in the original PR:
https://github.com/llvm/llvm-project/pull/208133

However, it is a modification that needs a little more thought from a
specification perspective before it is rolled out, there's a number of
code bases that depend on the presence modifier being applied only to
the underlying data. However, this leads to inconsistencies when a user
makes use of any reference semantic modifiers when mapping as they
SHOULD be allowed to specify present applying to the descriptor. So, we
need to work out what the correct defualt behaviour is, and regardless
of the default support a user intentionally specifying presence
application on a descriptor via reference semantics.

For now, we will revert to previous state.
https://invent.kde.org/qt/clang/llvm/-/commit/c94c7cc893d72dfa37c1cfe667ea9dac6da5e4a4

Git commit e5359187080a4250c40fe9aee8b1cb9b518a63ef by GitHub (on behalf of Anutosh Bhat) on 30/07/2026 at 03:43..
[AArch64][SLP][NFC] Precommit scalar fmul extract cost test (#212837)

Precommit a baseline SLP test for the AArch64 scalar fmul extract cost.

The current cost model overestimates the cost of the lane-1 use, so only
one of the two fadd pairs is vectorized at the selected SLP threshold.

A follow-up patch will correct this #212739 should correct this.
https://invent.kde.org/qt/clang/llvm/-/commit/e5359187080a4250c40fe9aee8b1cb9b518a63ef

Git commit 3f28472185bb8df103f2fbf9f3ccc22b62f1fe1c by GitHub (on behalf of adeshcom14) on 30/07/2026 at 03:47..
[AMDGPU] Fix S_ADD_I32 frame index folding emitting COPY with immediate (#212440)

When eliminating a frame index in `S_ADD_I32 %fi, imm`,
`SIRegisterInfo::eliminateFrameIndex` can simplify `0 + offset` into a
COPY or S_MOV_B32. The pass used a `MachineOperand` reference captured
before `removeOperand()`, which becomes stale after operands are removed
and shifted. That caused the wrong opcode to be selected (`COPY` instead
of `S_MOV_B32`), producing invalid machine IR such as `copy s4, 4`.
The invalid COPY is later hit by Machine Copy Propagation, which asserts
when calling `getReg()` on the immediate source operand.

Co-authored-by: Matt Arsenault <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/3f28472185bb8df103f2fbf9f3ccc22b62f1fe1c

Git commit 508b5be88431b3cce7546baf752ed628a531d699 by GitHub (on behalf of Matt Arsenault) on 30/07/2026 at 03:53..
AMDGPU: Add supports-wgp subtarget feature (#212704)
https://invent.kde.org/qt/clang/llvm/-/commit/508b5be88431b3cce7546baf752ed628a531d699

Git commit b65d79f8800e3d15d1f6cbf1a52f5426da992b59 by GitHub (on behalf of Arseniy Obolenskiy) on 30/07/2026 at 04:15..
[AMDGPU] Exclude CDNA parts from POPS exiting wave id pattern (#210892)

POPS hardware is graphics-pipe-only and absent on compute-only CDNA
targets (gfx908, gfx90a, gfx940, gfx942, gfx950), which incorrectly
matched the isGFX9GFX10 predicate and selected a nonexistent register
https://invent.kde.org/qt/clang/llvm/-/commit/b65d79f8800e3d15d1f6cbf1a52f5426da992b59

Git commit f21b9cc9c6386cc1f4b057d8af6a3fdf617cddf9 by GitHub (on behalf of Erich Keane) on 30/07/2026 at 04:15..
[CIR] Implement __builtin_cpu_supports, _init, and _is (#212900)

These are pretty trivial checks to a builtin variable, so this
implements it for x86, as this shows up in self-build. The tests are
pulled from classic-codegen and shows that we do the reasonable thing
for each of them.
https://invent.kde.org/qt/clang/llvm/-/commit/f21b9cc9c6386cc1f4b057d8af6a3fdf617cddf9

Git commit d5c1b6cb92a9b77eee3d986171ed2dd6bb7bf972 by Anshil Gandhi on 30/07/2026 at 04:38..
[SandboxIR] Fix notifyEraseInstr to skip scheduled neighbors

Guard both loops with !PredN->scheduled() / !SuccN->scheduled() so
scheduled neighbors are left untouched, and add a unit test that erases
a node with one scheduled and one unscheduled predecessor to cover the
fix.
https://invent.kde.org/qt/clang/llvm/-/commit/d5c1b6cb92a9b77eee3d986171ed2dd6bb7bf972
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.