[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/arsenm/clang/amdgpu-migrate-tests-subarch-3'.
Changed from 0000000000000000000000000000000000000000 to d0c9618b5207cd2462d9bde550c677e295c1909e
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 9c756612c7a0231ba40982ab2c7f8b6cf8fb895b by GitHub (on behalf of Florian Hahn) on 24/07/2026 at 11:20..
[LV] Simplify VPCostContext ctor by using VFSelectionContext (NFC). (#211765)
VFSelectionContext provides most fields needed. Pass it directly and
access its fields.
https://invent.kde.org/qt/clang/llvm/-/commit/9c756612c7a0231ba40982ab2c7f8b6cf8fb895b
Git commit 98195e0458dd5ec037785a6f861c6402bec778b3 by GitHub (on behalf of Twice) on 24/07/2026 at 11:34..
[MLIR][Python] Make Python-defined dialect loading context-aware (#210501)
Python-defined dialect loading currently relies on
`Dialect._mlir_module` to infer whether a dialect has already been
loaded. This state belongs to the Python dialect class rather than an
MLIR context.
Consequently, loading the same dialect after switching contexts requires
`reload=True`, while reloading it in a context where it is already
present can hit the operation registration assertion reported in
#210053.
This patch adds `mlirContextGetLoadedDialect` (following
https://github.com/llvm/lighthouse/pull/228#discussion_r3589792891) to
the C API and exposes it as `Context.is_dialect_loaded`.
`Dialect.load()` now queries the active context:
- loading a dialect more than once in the same context raises a
`RuntimeError`;
- loading the same Python-defined dialect in another context succeeds
without a `reload` flag.
The `reload` parameter is semantically wrong (mentioned in
https://github.com/llvm/lighthouse/pull/228#discussion_r3586672116) thus
removed from the API as a small breaking change. Usually, users who are
using `reload` can just remove it and everything will work fine.
Fixes #210053.
Assisted by GPT 5.6 Sol (for writing test cases).
https://invent.kde.org/qt/clang/llvm/-/commit/98195e0458dd5ec037785a6f861c6402bec778b3
Git commit b82563ac9ace38a1f4217c573fd63fa2d94eccd0 by GitHub (on behalf of Krzysztof Parzyszek) on 24/07/2026 at 11:51..
[OpenMP] Fix build error after 19857baa71 (#211771)
Some builders using older versions of gcc encounter this issue:
```
llvm/include/llvm/Frontend/OpenMP/OMP.h:138:14: error: ‘Base’ has not been declared
138 | assert(Set.Base::test(At));
| ^~~~
```
E.g. https://lab.llvm.org/buildbot/#/builders/10/builds/32524
https://invent.kde.org/qt/clang/llvm/-/commit/b82563ac9ace38a1f4217c573fd63fa2d94eccd0
Git commit 81cedf1e2060dbc2c5be43a6be0c86d6ba76df8d by GitHub (on behalf of Krisitan Erik Olsen) on 24/07/2026 at 11:53..
[VPlan] Fix sentinel assertion when broadcasting invoke results (#210464)
VPTransformState::get broadcasts a scalar value by inserting after the
last scalarized instruction using
std::next(BasicBlock::iterator(LastInst)). When LastInst is a terminator
like invoke, std::next advances past the end of the block, hitting the
!isKnownSentinel() assertion.
Use Instruction::getInsertionPointAfterDef which correctly handles PHIs,
invokes, and regular instructions, matching the pattern already used in
VectorCombine.cpp.
Fixes #210342
https://invent.kde.org/qt/clang/llvm/-/commit/81cedf1e2060dbc2c5be43a6be0c86d6ba76df8d
Git commit 82488f0e7119dd05cd63329458733e8c295f0338 by GitHub (on behalf of Jinjie Huang) on 24/07/2026 at 11:55..
[BOLT] Fix pwrite assertion failure via a new safePWrite wrapper (#198569)
Background: Currently, BOLT seems to implicitly assume that the .dynsym
section is located at a low offset within the binary, calling pwrite()
directly to update it.
Issue: In scenarios where the binary has been modified by tools like
patchelf, sections like .dynsym may be moved to a high offset area. This
can lead to a violation of the Offset + Size <= Pos assertion in
pwrite(). A typical scenario is when the previous eh_frame_header update
moves the stream cursor (pos) back to a low
offset([code](https://github.com/llvm/llvm-project/blob/llvmorg-23-init/bolt/lib/Rewrite/RewriteInstance.cpp#L6387)).
Fix: This patch resolves the pwrite assertion failure via a new
safePWrite wrapper, which introduces a defensive check that verifies and
conditionally adjusts the stream position. A corresponding test case has
also been added.
https://invent.kde.org/qt/clang/llvm/-/commit/82488f0e7119dd05cd63329458733e8c295f0338
Git commit 62b809a37aac6cf2f64e99e9efba89dd8731920d by GitHub (on behalf of Louis Dionne) on 24/07/2026 at 12:18..
[libc++] Consistently install Python and dependencies across macOS CI jobs (#211659)
On the macOS self-hosted runners, we need to install dependencies via
Homebrew and pinning the Xcode version is good for reproducibility. This
applies the guidelines documented in #211622 to libc++'s CI jobs.
https://invent.kde.org/qt/clang/llvm/-/commit/62b809a37aac6cf2f64e99e9efba89dd8731920d
Git commit 697f0f3b20d371d9e417891d9cdfb6a3613d7828 by GitHub (on behalf of Kerry McLaughlin) on 24/07/2026 at 12:37..
[NFC] Regenerate CHECK lines in scalable-strict-fadd.ll (#211573)
https://invent.kde.org/qt/clang/llvm/-/commit/697f0f3b20d371d9e417891d9cdfb6a3613d7828
Git commit dd1f97501758ccf5952f862f46f0ba15cbd23dcf by GitHub (on behalf of Jinsong Ji) on 24/07/2026 at 13:08..
[VectorCombine] Fix infinite loop in foldShuffleToIdentity (#211717)
PR #211508 ("foldShuffleToIdentity - ensure we push any created
instructions to the WorkList") started re-queueing every instruction
created by generateNewInstTree onto the VectorCombine worklist. When the
regenerated tree contains a bitcast, re-queueing the bitcast's operand
lets foldBitcastShuffle sink the bitcast back into a shuffle(bitcast),
which foldShuffleToIdentity then re-matches as the same superfluous
identity. On a widen/concat shuffle chain feeding a bitcast the two
folds
ping-pong and the pass never reaches a fixed point (observed as an opt
-O3 hang/timeout).
Keep the WorkList threading from PR #211508 (it enables further folds,
e.g. the improved intrinsics_minmax and two_concats cases) but don't
re-queue the operand of a regenerated bitcast, which is the only push
that feeds the foldBitcastShuffle <-> foldShuffleToIdentity loop.
Add an X86 regression test that previously looped and now terminates.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/dd1f97501758ccf5952f862f46f0ba15cbd23dcf
Git commit fdbbcba77d625a5c403aea78b5b7fc64547fa558 by GitHub (on behalf of Hocky Yudhiono) on 24/07/2026 at 13:22..
[mlir][affine] Add affine.for verifier and move arguments check earlier (#206685)
Fixes #206628 crash by adding an earlier body argument verifier for
`affine.for`. This crash is caused because `LoopLikeOpInterface`
verifier would call `getRegionIterArgs()` and assumed induction var of
`affine.for` exists.
https://invent.kde.org/qt/clang/llvm/-/commit/fdbbcba77d625a5c403aea78b5b7fc64547fa558
Git commit 42176da77a4653a2fb55a0bbead0296fe6873c7d by GitHub (on behalf of Jon Roelofs) on 24/07/2026 at 13:33..
[llvm][AArch64] Fix the location of PAuth_LR AUT CFI (#211702)
Unlike PAC CFI, we do not have the same unwinder constraint on PAuth_LR
CFI occurring before the PAC instruction. For AUT CFI, like other CFI
opcodes, these should always occur after the instruciton that they
reference.
https://invent.kde.org/qt/clang/llvm/-/commit/42176da77a4653a2fb55a0bbead0296fe6873c7d
Git commit 1ada3044291aa3215b9deb2aeec3e952c13c2813 by GitHub (on behalf of Matsu) on 24/07/2026 at 13:37..
[mlir][OpenACC] Keep ThreadY active for inner-combine-fed worker reductions (#211696)
Example:
```fortran
res = 0
!$cuf kernel do(2) <<< *, (32,8) >>> reduce(+:res)
do j2 = 1, n2
do j1 = 1, n1
res = res + a(j1, j2)
end do
end do
```
In this code the reduction accumulator is per-(block_y, thread_y): each
worker row's shared slot is filled by an inner block-scoped combine, so
the rows hold distinct partials. The final combine into the result was
classified as not "worker-private" (block_y+thread_y into a global
dest), so it fell back to the ThreadY row-zero path and dropped every
worker but row 0 — a 2D SUM returned -1 instead of -4.
Fix: keep ThreadY active for a block_y+thread_y accumulator that is fed
by an inner block-scoped combine (distinct per-worker partials). A plain
worker accumulate still lowers to a worker-wide all_reduce that
broadcasts the total, so it correctly stays row-zero and is not
multiplied by the worker count.
https://invent.kde.org/qt/clang/llvm/-/commit/1ada3044291aa3215b9deb2aeec3e952c13c2813
Git commit ba42905dfdb184fe054591bb81384efbb8a6fd46 by GitHub (on behalf of Jon Roelofs) on 24/07/2026 at 13:43..
[llvm][AArch64] Add a test for -aarch64-cfi-llvm-set-ra-sign-state='s default (#211791)
https://invent.kde.org/qt/clang/llvm/-/commit/ba42905dfdb184fe054591bb81384efbb8a6fd46
Git commit af795ffee92313af4a439919264737d4d9d7886c by GitHub (on behalf of Dragan Mladjenovic) on 24/07/2026 at 13:47..
[AMDGPU] Fix pre-GFX11 llvm.fptosi.sat.i16.f32 lowering (#211703)
https://invent.kde.org/qt/clang/llvm/-/commit/af795ffee92313af4a439919264737d4d9d7886c
Git commit 3cf44478fcf54c8996c88c1214d2170c69d4a01f by GitHub (on behalf of Alexey Bataev) on 24/07/2026 at 14:04..
[ConstantFolding]Fold llvm.powi via square-and-multiply (#210771)
Compute constant-folded powi using APFloat multiplies in the operand's
own semantics (square-and-multiply), matching the expansion
ExpandPowI generates in SelectionDAGBuilder, instead of routing
through std::pow via double/float conversion.
https://invent.kde.org/qt/clang/llvm/-/commit/3cf44478fcf54c8996c88c1214d2170c69d4a01f
Git commit eeeaad979cc68b19bdd3ed27db579d2f8974f3a8 by GitHub (on behalf of Orlando Cazalet-Hyams) on 24/07/2026 at 14:07..
Add !metadata_section_kind global variable metadata (#211524)
Similar to !exclude in that this attempts to guide section + flag
choices in a generic/abstract way.
`!exclude` tells LLVM to use the generic `SectionKind::Exclude` for the
globals. Likewise, `!metadata_section_kind` tells LLVM to use
`SectionKind::Metadata`.
The added docs go into a little more detail.
This is needed for the dynamic debugging feature, otherwise there's no
way to avoid `SHF_EXCLUDE` or `SHF_ALLOC` flags being added to the
section without special handling based on its name. We've moved to using
a new section type for dynamic debugging and we don't want to rely on
the name, which may be omitted.
https://invent.kde.org/qt/clang/llvm/-/commit/eeeaad979cc68b19bdd3ed27db579d2f8974f3a8
Git commit ee7ea10c141cbf69ff10a25bfde05bd8e67b295f by GitHub (on behalf of rdevshp) on 24/07/2026 at 14:20..
[CodeGen] PHIEliminationImpl::LowerPHINode: Fix assertion failure when all phi operands are undefined (#209013)
IncomingReg is only set to a register when allPhiOperandsUndefined does
not hold. Changes PHIEliminationImpl::LowerPHINode to check IncomingReg
before using it for debug phi.
Fixes #206324
Assisted-by: Codex
https://invent.kde.org/qt/clang/llvm/-/commit/ee7ea10c141cbf69ff10a25bfde05bd8e67b295f
Git commit d1f2fc598109ecd511b526b1021f1474eb1b33f0 by GitHub (on behalf of Abhina Sree) on 24/07/2026 at 14:27..
[SystemZ][z/OS] Add the OF_Text flag to read .ll files and parse assembly files (#211782)
This patch allows us to parse .ll files in verify-uselistorder correctly
and fixes failures in any testcase that uses this tool.
https://invent.kde.org/qt/clang/llvm/-/commit/d1f2fc598109ecd511b526b1021f1474eb1b33f0
Git commit d610744c92b1edcf9330b2690cdb2e2053721a5f by GitHub (on behalf of Felipe de Azevedo Piovezan) on 24/07/2026 at 14:28..
[lldb] Speedup AppleObjCRuntimeV2 UpdateIfNeeded (#211774)
This converts a loop calling Process::ReadMemory into a single call to
Process::ReadMemoryRanges.
https://invent.kde.org/qt/clang/llvm/-/commit/d610744c92b1edcf9330b2690cdb2e2053721a5f
Git commit 6636eb9689ffbd0c9dd80a153b6c10ca3cea9f88 by GitHub (on behalf of Simon Pilgrim) on 24/07/2026 at 14:38..
[X86] Truncate (v4i32 (vzext_movl (v2i64 bitcast (scalar_to_vector (i64 X))))) (#211798)
Noticed while triaging #211619 - truncate the i64 to i32 directly to avoid extra shuffles
https://invent.kde.org/qt/clang/llvm/-/commit/6636eb9689ffbd0c9dd80a153b6c10ca3cea9f88
Git commit a2d74bfe386695ee1a17ba3b60367fb79c3bfdfe by GitHub (on behalf of Caroline Newcombe) on 24/07/2026 at 14:43..
[flang][OpenMP] Implement the error directive (#206175)
## [flang][OpenMP] Implement the `error` directive
### Summary
Implements the OpenMP `error` directive (OpenMP 5.1, 2.5.4) in Flang.
The directive prints a message and, with `severity(fatal)`, stops.
Handling depends on the `at` clause:
- **`at(compilation)`** (the default): handled in semantics. Emits a
compile-time warning or error and produces no IR.
- **`at(execution)`**: lowered to a new `omp.error` op, which becomes a
call to `__kmpc_error`.
Before this patch the directive was unimplemented and hit a `not yet
implemented: OmpErrorDirective` error during lowering.
Fixes #204240.
### Details
Changes go through the compiler pipeline.
**Flang semantics**
- `Enter(OmpErrorDirective)` emits the compile-time diagnostic for the
`at(compilation)` form, using the directive's severity and the `MESSAGE`
text when present.
- `Enter(OmpClause::Message)` checks that the `MESSAGE` expression is a
scalar, default-kind `CHARACTER`, which is required to pass it to the
runtime as a `const char*`.
**Flang lowering**
- `genErrorDirective` lowers the `at(execution)` form only.
- A constant message is stored in the `message` attribute. A
non-constant message is copied to a null-terminated buffer
(`genNullTerminatedString`) and passed as the `message_expr` operand,
because `__kmpc_error` expects a NUL-terminated string.
**New `omp.error` op (MLIR OpenMP dialect)**
- Adds a `ClauseSeverity` enum (`warning = 1`, `fatal = 2`, matching the
`__kmpc_error` argument) and `ClauseSeverityAttr`.
- `omp.error` takes a required `severity` attribute and an optional
message, given either as:
- `message` — a constant string attribute, or
- `message_expr` — a pointer to a null-terminated string.
- A verifier rejects providing both `message` and `message_expr`.
**MLIR → LLVM IR translation**
- Translates `omp.error` to `__kmpc_error(ident_t *, i32 severity, ptr
message)`.
**OMPIRBuilder**
- Adds `OpenMPIRBuilder::createError(...)`, which builds the call, maps
`fatal`→`2` and `warning`→`1`, and passes a null pointer when there is
no message.
### Tests
- **Parser** (`error-unparse.f90`): unparse and parse-tree output.
`at(compilation) severity(fatal)` cases that would stop compilation were
moved to `at(execution)`.
- **Semantics** (`Semantics/OpenMP/error.f90`): compilation
warning/error/default-severity cases, plus the new `MESSAGE` type, rank,
and kind errors.
- **Lowering** (`Lower/OpenMP/error.f90`): constant message, no message,
empty message, runtime `message_expr`, and `at(compilation)` cases that
must not produce `omp.error`. The old `Lower/OpenMP/Todo/error.f90` test
is removed.
- **MLIR** (`ops.mlir`, `invalid.mlir`): round-trip of each `omp.error`
form and the both-messages verifier error.
- **LLVM IR** (`openmp-llvm.mlir`): `__kmpc_error` calls for warning and
fatal, constant and runtime messages, and the null-message cases.
Assisted-by: Github Copilot
https://invent.kde.org/qt/clang/llvm/-/commit/a2d74bfe386695ee1a17ba3b60367fb79c3bfdfe
Git commit 8c9c62d0899ce115dcf469c1bcbf694f2b6db774 by GitHub (on behalf of Jonas Devlieghere) on 24/07/2026 at 14:46..
[lldb] Skip the WebAssembly function header for frame recognizers (#211806)
A frame recognizer restricted to the first instruction matches when the
frame's PC equals the function's start address. On WebAssembly a
function begins with a non-executable local variable header, so the
symbol's start address is never a value the PC can take and such
recognizers never matched.
Route the start address through Architecture::SkipFunctionHeader, which
already maps a function start past this header for breakpoints and
disassembly, so the comparison uses the first executable instruction.
https://invent.kde.org/qt/clang/llvm/-/commit/8c9c62d0899ce115dcf469c1bcbf694f2b6db774
Git commit b2307cd9a05cb61bc9af74777de744a92479088f by GitHub (on behalf of Jonas Devlieghere) on 24/07/2026 at 14:47..
[lldb][test] Skip frame-recognizer argument tests on WebAssembly (#211807)
The recognizer reads arguments through $arg1/$arg2, which resolve via
argument registers. WebAssembly has no argument registers and no ABI
plugin, and these tests build without debug info, so there is no
location to read the arguments from and they come back as zero.
https://invent.kde.org/qt/clang/llvm/-/commit/b2307cd9a05cb61bc9af74777de744a92479088f
Git commit 1597ca6a839f188334bad6cd7f93a4b61159d122 by GitHub (on behalf of Louis Dionne) on 24/07/2026 at 14:48..
[libc++] Fix Python selection in the macOS benchmark jobs (#211812)
The macOS benchmark jobs install python 3.14 via Homebrew but added the
wrong prefix (<prefix>/libexec/bin) instead of <prefix>/bin to the PATH.
https://invent.kde.org/qt/clang/llvm/-/commit/1597ca6a839f188334bad6cd7f93a4b61159d122
Git commit dc21971950a10be027adad6b4d347a1ef7f9bd3d by GitHub (on behalf of Alex Duran) on 24/07/2026 at 14:49..
[OFFLOAD][L0] Properly consume errors in program validation (#211799)
Some of the program unittests were failing because errors weren't
consumed properly.
https://invent.kde.org/qt/clang/llvm/-/commit/dc21971950a10be027adad6b4d347a1ef7f9bd3d
Git commit 9ee615b7ab84bd3e3091f7185ac09c8e01f7c495 by GitHub (on behalf of Arseniy Obolenskiy) on 24/07/2026 at 14:50..
[AMDGPU] Fix incorrect grid_dims constant folding for reqd_work_group_size (#211285)
reqd_work_group_size(X, Y, 1) does not guarantee the dispatch runs with
work_dim == 2, since the spec still allows enqueuing with work_dim == 3
and a unit-size Z dimension. Only fold hidden_grid_dims to a constant
when Z != 1 (work_dim must be 3)
Otherwise tighten the range instead of assuming an exact value
Alterative approach to https://github.com/llvm/llvm-project/pull/205866
without killing constant folding
https://invent.kde.org/qt/clang/llvm/-/commit/9ee615b7ab84bd3e3091f7185ac09c8e01f7c495
Git commit e53fc591b1e21461ad9dacb0bcd64c23fd73d093 by Matt Arsenault on 24/07/2026 at 15:06..
clang/AMDGPU: Migrate cc1 tests to subarch triples (1)
Mechanically rewrite cc1 test RUN lines from the old
`-triple amdgcn... -target-cpu gfxNNN` form to the new subarch triple
form (e.g. `-triple amdgpu9.00-amd-amdhsa`), dropping the now-redundant
-target-cpu. The subarch encodes the exact target, so the emitted IR no
longer carries a "target-cpu" function attribute; autogenerated CHECK
lines are regenerated accordingly.
This batch covers the small CodeGen, Frontend, Layout, and Preprocessor
test directories.
Co-authored-by: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/e53fc591b1e21461ad9dacb0bcd64c23fd73d093
Git commit ba2f4604d46e914d4ff1fa5317731c14afd9b9bc by Matt Arsenault on 24/07/2026 at 15:06..
clang/AMDGPU: Migrate cc1 tests to subarch triples (2)
Rewrite CodeGenCUDA cc1 test RUN lines from `-triple amdgcn... -target-cpu
gfxNNN` to the new subarch triple form, dropping the redundant -target-cpu.
Autogenerated CHECK lines are regenerated. Tests that intentionally assert
the "target-cpu" function attribute are left unchanged.
Co-authored-by: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/ba2f4604d46e914d4ff1fa5317731c14afd9b9bc
Git commit acd3765c2af09c1cff25cd5cce555a464bf67d11 by Matt Arsenault on 24/07/2026 at 15:06..
clang/AMDGPU: Migrate cc1 tests to subarch triples (3)
Rewrite CodeGenHIP cc1 test RUN lines to the new subarch triple form,
dropping the redundant -target-cpu, and regenerate autogenerated CHECK
lines. Tests whose behavior depends on the implicit wave32 default (which
is not enabled by a bare subarch triple) are left for a later change.
Co-authored-by: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/acd3765c2af09c1cff25cd5cce555a464bf67d11
Git commit d0c9618b5207cd2462d9bde550c677e295c1909e by Matt Arsenault on 24/07/2026 at 15:06..
clang/AMDGPU: Migrate cc1 tests to subarch triples (4)
Rewrite Headers cc1 test RUN lines to the new subarch triple form,
dropping the redundant -target-cpu, and regenerate autogenerated CHECK
lines.
Co-authored-by: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/d0c9618b5207cd2462d9bde550c677e295c1909e