[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 e8f7d45fa98822b9ea2828d53c8a66b70903db3c to ee98df545384f95feb72d39f88004075bd5329fc
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 c2adde4f289b10048864b3357c09bc0f30154a5c by GitHub (on behalf of Keno Fischer) on 20/07/2026 at 23:14..
[LoopInfo][LCSSA] Handle token-like values (#210816)
Token-like values have many (but not all) of the same restrictions as
regular token values.
They do however inherit the restriction on being placed in PHI and thus
they need to be
treated like regular tokens in LCSSA.
AI Disclosure: Written by GPT 5.6 - flagged during GPT 5.6 review of
#151062 rebase.
https://invent.kde.org/qt/clang/llvm/-/commit/c2adde4f289b10048864b3357c09bc0f30154a5c
Git commit b74f72c22f9024914b9743c9aa22b2fbc2095f4c by GitHub (on behalf of Dmitry Sidorov) on 20/07/2026 at 23:30..
[NFC][SLP] Precommit tests for ordered fadd-reduction FMA-fusion cost (#210835)
Baseline coverage for an ordered fadd-of-fmul reduction that is
currently vectorized even on FMA-capable targets, breaking the scalar
fmul + fadd -> fma fusion. A follow-up teaches the reduction cost model
to account for the lost fusion and keep these reductions scalar, at
which point these CHECK lines update. Covers X86 avx2, AMDGPU gfx90a and
NVPTX sm_80.
It is a pre-requisite for
https://github.com/llvm/llvm-project/pull/210399
Assisted-By: Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/b74f72c22f9024914b9743c9aa22b2fbc2095f4c
Git commit e8510cf81c4b56d4e0ce9b2c826dd7c5e725bee0 by GitHub (on behalf of Taimuraz Kaitmazov) on 21/07/2026 at 00:01..
[TableGen] Add sub-register overflow tests for exact-fit and non-covered registers (#210529)
Follow-up to #206346. Adds two cases the overflow check's companion test
missed: an exact-fit tiling that must be accepted, and a register
without `CoveredBySubRegs` that must be left alone. Test only.
https://invent.kde.org/qt/clang/llvm/-/commit/e8510cf81c4b56d4e0ce9b2c826dd7c5e725bee0
Git commit 1c97f0c2f1b2dc8acbf59653a5992d3f97373f68 by GitHub (on behalf of Craig Topper) on 21/07/2026 at 00:02..
[RISCV][P-ext] Custom legalize v4i16->v4i8 and v2i32->v2i16 truncate. (#210670)
Convert to a bitcast and a shufflevector.
Assisted-by: Claude
https://invent.kde.org/qt/clang/llvm/-/commit/1c97f0c2f1b2dc8acbf59653a5992d3f97373f68
Git commit 270842bb62573a99434e533fcacc4359e18e457d by GitHub (on behalf of Kazu Hirata) on 21/07/2026 at 00:26..
[ProfileData] Refactor SampleProfileNameTable into a polymorphic class hierarchy (NFC) (#210252)
This patch refactors SampleProfileNameTable into an abstract base
class with concrete derived classes like LazySampleProfileNameTable
and EagerSampleProfileNameTable.
The motivation is twofold:
- I want each derived class to focus on one data representation
instead of using complex if-then-else. Plus, I'm planning to
introduce one more data representation [1].
- I want each class to be populated and ready for use as soon as it is
constructed. That is, there is no intermediate state like
"constructed but waiting to be populated".
Now, you might notice that the iterator uses virtual operator[]. I
would argue that this is acceptable. We have three places where we
iterate over the entire range of the name table entries. Two of
these, namely SampleProfileNameSet and NamesInProfile, construct their
own sets for membership queries -- "Is this symbol in the name
table?". I'm planning to bring those sets right into our class
hierarchy in a follow-up patch.
[1]:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/8
Assisted-by: Antigravity
https://invent.kde.org/qt/clang/llvm/-/commit/270842bb62573a99434e533fcacc4359e18e457d
Git commit 27ede4b415797b5df26d2e1f28d30b3e9c14f340 by GitHub (on behalf of Domenic Nutile) on 21/07/2026 at 00:55..
[AMDGPU] Clean up check prefixes and regenerate checklines for some tests that were out of date (#209889)
https://invent.kde.org/qt/clang/llvm/-/commit/27ede4b415797b5df26d2e1f28d30b3e9c14f340
Git commit bbbc24bc594959c4b268165c6d1a11d21cb02f52 by GitHub (on behalf of Domenic Nutile) on 21/07/2026 at 01:02..
[AMDGPU] Refactor some existing test files with true16/fake16 split, add some new test cases (#209890)
https://invent.kde.org/qt/clang/llvm/-/commit/bbbc24bc594959c4b268165c6d1a11d21cb02f52
Git commit 7a470a90ffef437f86573faf5bee2f6ee8cfcebc by GitHub (on behalf of Matsu) on 21/07/2026 at 01:22..
[flang][NFC] Remove downstream issue references (#210858)
https://invent.kde.org/qt/clang/llvm/-/commit/7a470a90ffef437f86573faf5bee2f6ee8cfcebc
Git commit c9237cb62bedb5c55c6c8939cebdf8d51e567ac4 by GitHub (on behalf of Caroline Newcombe) on 21/07/2026 at 01:31..
Revert "[flang][OpenMP] Fix new metadirective-loop-nest.f90 test expectation with collapse changes in #208528" (#210860)
Reverts llvm/llvm-project#210753
Revert with #208528 pending llvm-test-suite fix.
https://invent.kde.org/qt/clang/llvm/-/commit/c9237cb62bedb5c55c6c8939cebdf8d51e567ac4
Git commit 404d4daa70a158ee1b8443dfca5576e0ca375bb6 by GitHub (on behalf of Caroline Newcombe) on 21/07/2026 at 01:32..
Revert "Redo [flang][OpenMP] Implement collapse for imperfectly nested loops" (#210861)
Reverts llvm/llvm-project#208528
Revert with #210753 pending llvm-test-suite fix.
https://invent.kde.org/qt/clang/llvm/-/commit/404d4daa70a158ee1b8443dfca5576e0ca375bb6
Git commit e49aac8ff793d782e8b8a000077fb39b37629090 by GitHub (on behalf of Fangrui Song) on 21/07/2026 at 01:34..
[CycleInfo] Identify cycles with a single-pass DFS algorithm (#210491)
Replace the Havlak-Tarjan construction in GenericCycleInfoCompute, a DFS
followed by a reverse-preorder scan, with the single-pass algorithm of
Wei, Mao, Zou and Chen, "A New Algorithm for Identifying Loops in
Decompilation" (SAS 2007). One depth-first traversal tags every block
with its innermost loop header on the fly; tagLoopHeader weaves the
per-block header chains, replacing UNION-FIND.
The flat forest is reconstructed from the tags, dropping the temporary
cycle objects and the per-block worklist passes. An edge re-entering an
already-closed cycle records non-header entries, so entries need no
predecessor scan.
The cycle sets, headers, reducibility and nesting are identical for the
given DFS order, cross-checked against the old construction on random
reducible and irreducible CFGs. Two implementation-defined orders change
(with minor test churn): sibling cycles are laid out in decreasing
header preorder, and non-header entries in block preorder.
Construction cost (51x require+invalidate of <cycles> minus a 1x run,
median of interleaved rounds, x86-64): sqlite3.bc executes 27% fewer
instructions and 37% fewer cycles; a 1500-deep loop nest executes 50%
fewer instructions and 47% fewer cycles.
Aided by Claude Fable 5
https://invent.kde.org/qt/clang/llvm/-/commit/e49aac8ff793d782e8b8a000077fb39b37629090
Git commit d6790a7fa57ca5017d5e3ceff83d590b57bfa22c by GitHub (on behalf of Alan Li) on 21/07/2026 at 01:50..
[GlobalISel] Add `isKnownNeverZero` to `GISelValueTracking` (#198438)
## Summary of changes
* This patch adds `GISelValueTracking::isKnownNeverZero`, modeled after
the SelectionDAG query, and uses it in the GlobalISel count-zero
combiner.
* The root combines enabled by this patch are:
* `G_CTLZ x -> G_CTLZ_ZERO_POISON x`
* `G_CTTZ x -> G_CTTZ_ZERO_POISON x`
* The combine only fires when the source is known nonzero and the
zero-poison opcode is legal, or when the combiner is running before
legalization.
* For the initial proof set, this patch handles `G_OR`, `G_SELECT`, and
`G_SHL`. These are not new root combines; they are source-expression
cases used by `isKnownNeverZero` to prove that the input to `G_CTLZ` /
`G_CTTZ` is nonzero. Other structural cases can be added in follow-up
patches. For other opcodes, the query falls back to existing KnownBits
support.
* Tests cover the `isKnownNeverZero` query, the AArch64 MIR combine
cases, and the AMDGPU end-to-end lowering behavior.
## Example
Pattern `ctlz(or(x, 1))` on AMDGPU:
Before:
```
v_or_b32_e32 v0, 1, v0
v_ffbh_u32_e32 v0, v0
v_min_u32_e32 v0, 32, v0 ; bitwidth clamp
s_setpc_b64 s[30:31]
```
After:
```
v_or_b32_e32 v0, 1, v0
v_ffbh_u32_e32 v0, v0
s_setpc_b64 s[30:31]
```
https://invent.kde.org/qt/clang/llvm/-/commit/d6790a7fa57ca5017d5e3ceff83d590b57bfa22c
Git commit de44ed3488693686dd1f65baad5d7bd3797eddca by GitHub (on behalf of Zeyi Xu) on 21/07/2026 at 02:11..
[clang-tidy][docs] Remove obsolete doc8 instructions. NFC. (#210576)
Remove the doc8 setup and invocation instructions from the contributing
guide as clang-tidy documentation transitions to Markdown.
Part of https://github.com/llvm/llvm-project/issues/201242
https://invent.kde.org/qt/clang/llvm/-/commit/de44ed3488693686dd1f65baad5d7bd3797eddca
Git commit b290a41af4fbaea42bd3c7aa2f90b6592065dd15 by GitHub (on behalf of Zeyi Xu) on 21/07/2026 at 02:16..
[lldb][RISCV] Fix x8 register aliasing for gdb-remote targets (#209070)
GDB remote target descriptions can expose the RISC-V `x8` register as
`fp`. LLDB previously used `fp` as the primary name and `s0` as the
alternate name, leaving no register name for `x8`.
This commit changes `s0` as the primary name, `x8` as the alternate
name, and mark the register as the generic frame pointer. Allowing `fp`,
`s0`, and `x8` to resolve to the same register.
Fixes #127900
https://invent.kde.org/qt/clang/llvm/-/commit/b290a41af4fbaea42bd3c7aa2f90b6592065dd15
Git commit c26e99cf61a756338852a239f6c05cc21efb7c5c by GitHub (on behalf of Valentin Clement (バレンタイン クレメン)) on 21/07/2026 at 02:33..
[flang][cuda] Avoid infinite loop while processing globals (#210805)
https://invent.kde.org/qt/clang/llvm/-/commit/c26e99cf61a756338852a239f6c05cc21efb7c5c
Git commit 35020b22871af5438f6563721d06620bc5819ca5 by GitHub (on behalf of Wenju He) on 21/07/2026 at 02:35..
[Support][Unit] Fix ProgramTest.cpp build warning unused variable 'RetCode' (#210699)
RetCode is unused if __MINGW32__ is defined.
https://invent.kde.org/qt/clang/llvm/-/commit/35020b22871af5438f6563721d06620bc5819ca5
Git commit 890b11e09e45e9d8b29f2f94f22052be3934e757 by GitHub (on behalf of Ken Matsui) on 21/07/2026 at 02:45..
[clang] Use 0 for wasm_funcref in non-Wasm address space maps (NFCI) (#210253)
The __funcref keyword is only supported by the WebAssembly target, so
the wasm_funcref entries in other targets' address space maps are
unused.
Use 0 for these entries, which is consistent with other unsupported
address spaces.
https://invent.kde.org/qt/clang/llvm/-/commit/890b11e09e45e9d8b29f2f94f22052be3934e757
Git commit 5809c754e7316acf95cec5170e96041af9432869 by GitHub (on behalf of Eugene Epshteyn) on 21/07/2026 at 03:32..
[flang][OpenMP] Lower iterator indices with genExprValue instead of the legacy expression lowering (#210385)
`getIteratorElementIndices()` lowered the depend/affinity iterator
subscript expressions with `createSomeExtendedExpression` (the legacy,
non-HLFIR expression lowering). Switch it to
`AbstractConverter::genExprValue`, matching the idiom already used
elsewhere in OpenMP/Utils.cpp, so this code no longer depends on the
legacy expression lowering.
The iterator LIT tests are updated to reflect the induction values now
being materialized in memory (store + hlfir.declare + load) and the
subscript arithmetic lowering through HLFIR (hlfir.no_reassoc instead of
fir.no_reassoc).
Assisted-by: AI
https://invent.kde.org/qt/clang/llvm/-/commit/5809c754e7316acf95cec5170e96041af9432869
Git commit e6103d785f415bfd8bc6e0b76c791ada38bf0654 by GitHub (on behalf of Stanislav Mekhanoshin) on 21/07/2026 at 03:45..
[AMDGPU] Relax SGPR splat selection for PK_*64 (#210790)
These instructions replicate SGPR operands into high 64-bit channel
w/o opsel.
https://invent.kde.org/qt/clang/llvm/-/commit/e6103d785f415bfd8bc6e0b76c791ada38bf0654
Git commit 80b6554d227acc6cabc6691affbe8dcd94f20801 by GitHub (on behalf of Eugene Epshteyn) on 21/07/2026 at 03:58..
[flang] Lower initial values via ConvertConstant instead of the legacy expression lowering (#210621)
Global and component initial values were lowered with
`createSomeInitializerExpression` (the legacy, non-HLFIR expression
lowering). Route them through ConvertConstant instead, which is
self-contained and safe inside a fir.global initializer region: it never
consults the symbol map, allocates temporaries, or outlines constants
into memory.
Observable IR change: fir.no_reassoc no longer appears in fir.global
initializer regions for parenthesized scalar/derived constants. Update
global-initialization-parens.f90 -- previously a pre-commit baseline
pinning the old fir.no_reassoc behavior -- to assert the new folded
form, and add common-block-derived-initialization.f90 (a
DATA-initialized common block with a derived-type member).
Assisted-by: AI
https://invent.kde.org/qt/clang/llvm/-/commit/80b6554d227acc6cabc6691affbe8dcd94f20801
Git commit a1a5664cb1def61bfc5234ed2b1ebe4a339d387a by GitHub (on behalf of Prabhu Rajasekaran) on 21/07/2026 at 04:45..
[NFC][llvm] Fix typo in tests (#210841)
https://invent.kde.org/qt/clang/llvm/-/commit/a1a5664cb1def61bfc5234ed2b1ebe4a339d387a
Git commit ee98df545384f95feb72d39f88004075bd5329fc by GitHub (on behalf of Jay Foad) on 21/07/2026 at 04:50..
[AMDGPU] Fix simplification of VM_VSRC based on VMEM waits (#178711)
Teach simplifyVmVsrc that a wait for a VMEM counter (LOAD_CNT, DS_CNT
etc) only implies a corresponding wait for VM_VSRC if there are no
outstanding VMEM operations that use a different VMEM counter.
https://invent.kde.org/qt/clang/llvm/-/commit/ee98df545384f95feb72d39f88004075bd5329fc