[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/harrisonGPU/SLP-non-power-2'.
Changed from bcf504a5cf1cda22f228cfe34bc73b8ddf474168 to b66379638baa0be0c7686310711d8f8fc49ad5e5
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 a4764e36c7d9ef00810fae196b7030b6c7354db7 by GitHub (on behalf of Bryth) on 06/08/2026 at 11:16..
[mlir][ArmSVE] Fix typo in BFMMLA op description (NFC) (#214201)
https://invent.kde.org/qt/clang/llvm/-/commit/a4764e36c7d9ef00810fae196b7030b6c7354db7

Git commit 0c91f5b25492e552f2f24f4d56750c3948dd6e90 by GitHub (on behalf of Bryth) on 06/08/2026 at 11:16..
[mlir][vector] Disallow vector broadcast along scalable dim (#212197)

Broadcasts from vectors to higher rank vectors get lowered recursively
by iterating over leading dimensions to create "size(dimension)" insert
ops. This cannot be done for scalable dimensions whose size is unknown.
This PR prevents such transforms from occurring by stopping if the
leading dimension is scalable.
https://invent.kde.org/qt/clang/llvm/-/commit/0c91f5b25492e552f2f24f4d56750c3948dd6e90

Git commit 50ff635538a52197ce708ce65c3fb1752be0f20f by GitHub (on behalf of Abid Qadeer) on 06/08/2026 at 11:21..
[flang][debug] Emit debug info for named constants (#213974)

Fixes https://github.com/llvm/llvm-project/issues/213966.

Only globals whose uniqued name deconstructs to `NameKind::VARIABLE`
were described. A Fortran named constant (PARAMETER) is mangled with EC
and deconstructs to `NameKind::CONSTANT`, so it got no debug info at all
and a debugger could not evaluate one, whether it was declared in a
module or inside a procedure.

A module constant is described the way a module variable already is,
with a `DIGlobalVariable` scoped to the `DIModule`. A constant local to
a procedure is described in the scope of that procedure.

Two related fixes for entities whose global has internal linkage, which
covers both a procedure local constant and a procedure local SAVE
variable that was already being described:

- `isLocalToUnit` was hardcoded to false, so these were marked
`DW_AT_external`. It now follows the linkage of the global.

- A linkage name was emitted for them. There is no external symbol for a
debugger to match against, so it is now omitted, which is also what
clang does for a function local static.
 
Assisted by: Cursor

---------

Co-authored-by: Cursor <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/50ff635538a52197ce708ce65c3fb1752be0f20f

Git commit db89f5c0c9b0ce60373924075c2bcd5d1c41415a by GitHub (on behalf of Simon Pilgrim) on 06/08/2026 at 11:45..
[X86] Tidyup atom fpu->gpr costs (#214454)

These had matching high latency and throughput numbers, which suggest
they hadn't been updated since the itinerary conversion.

Confirmed with Agner, uops.info and instlatx64 which report a consistent
throughput of 2cy, latency seems to be about 4cy (uops.info just says <=
6cy)

Noticed while trying to confirm #214191 vector reduction costs for atom
type cpus, and llvm-mca was reporting some very odd numbers for bonnell.
https://invent.kde.org/qt/clang/llvm/-/commit/db89f5c0c9b0ce60373924075c2bcd5d1c41415a

Git commit 1bfde5fd3b8f809fc7ab1ce32862276144783ef5 by GitHub (on behalf of Sergio Afonso) on 06/08/2026 at 12:12..
[MLIR][OpenMP] Refactor omp dialect utils headers, NFC (#213648)

This patch implements some non-functional refactoring changes:
- It consolidates the two existing "utils" headers into one.
- It renames fields and arguments to the `OffloadModuleOpts` structure
to follow the MLIR style guide and more closely match the corresponding
`OffloadModuleInterface` attributes.
- It removes comments in OpenMP-to-LLVMIR translation referring to Flang
frontend options associated to the `OffloadModuleInterface`.
https://invent.kde.org/qt/clang/llvm/-/commit/1bfde5fd3b8f809fc7ab1ce32862276144783ef5

Git commit 105e9f1be4962318a8ec8adedb7b37eec1674ed4 by GitHub (on behalf of Sergio Afonso) on 06/08/2026 at 12:12..
[MLIR][OpenMP] Ensure -fopenmp-force-usm doesn't override requirements (#213649)

The `mlir::omp::setOffloadModuleInterfaceAttributes` utility function
can currently override any pre-existing OpenMP `requires` clauses in the
module. This doesn't cause any problems at the moment because all calls
to this function happen before any other `requires` are processed.
However, it's safer to make sure it never deletes pre-existing flags in
case the same function is reused in a different context.
https://invent.kde.org/qt/clang/llvm/-/commit/105e9f1be4962318a8ec8adedb7b37eec1674ed4

Git commit a8f0bcbdc4d8c2e046ce107a0a169e310162c807 by GitHub (on behalf of Abid Qadeer) on 06/08/2026 at 12:26..
[flang][debug] Add accurate line number information to module. (#214011)

The line number in a module's debug info was a guess: the source line of
the first module member we encountered, minus one. That was only correct
when the first declaration happened to be on the line right after the
MODULE statement, so debuggers usually reported a module at the wrong
line.
    
The location of `fir.module_debug_imports` is that of the MODULE
statement, so use it instead. That operation is now generated for every
module and not only for those containing a USE statement, so the
location is available in all cases. It is still only generated when
debug info is requested.
    
Co-authored-by: Cursor <[email protected]>

---------

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

Git commit 1cc730fd7b31cdc240a6357b66e7a1b05bbfe135 by GitHub (on behalf of Tim Besard) on 06/08/2026 at 12:37..
[SPIRV] Legalize i1 min/max before selection (#204231)

LLVM can produce `llvm.{s,u}{min,max}.i1` from boolean value patterns.
In SPIR-V, however, LLVM `i1` is represented as `OpTypeBool`, not as an
integer type. The OpenCL/GLSL extended min/max instructions require
integer scalar or integer vector operands and results, so selecting
those instructions directly for `i1` can produce invalid SPIR-V.

This patch makes the SPIR-V legalizer reflect that type-system boundary.
Nonstandard integer widths remain legal when the relevant extensions are
enabled, but `s1` is not treated as an extended integer width. Scalar
`i1` min/max is widened to `i32` before instruction selection and
converted back to bool. Boolean vectors are scalarized first, then each
lane follows the same scalar legalization path.

The result is deliberately conservative: it preserves the existing
extended-integer behavior while preventing boolean values from reaching
integer-only SPIR-V extended instructions.

---

The Khronos SPIRV-LLVM-Translator follows the same type-model premise:
`SPIRVWriter::transType` maps LLVM `i1` to `OpTypeBool`, while wider
LLVM integer types map to `OpTypeInt`.

The translator also avoids using OpenCL/GLSL extended min/max
instructions for LLVM min/max intrinsics. Its `SPIRVWriter.cpp` lowering
for `llvm.umin`, `llvm.umax`, `llvm.smin`, and `llvm.smax` emits an
integer comparison followed by `OpSelect`. That compare/select strategy
does not provide evidence that boolean extended min/max is valid; it
sidesteps the integer-only extended-instruction constraint entirely.

There is also a useful precedent in the translator regularization pass
for shifts: because SPIR-V shift operands must be integer scalar/vector
types, LLVM `i1` operands are treated as boolean and extended to `i32`
before the integer operation, then converted back to bool. This patch
applies the same principle to the LLVM backend path that currently uses
extended min/max instructions.

---------

Co-authored-by: Codex <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/1cc730fd7b31cdc240a6357b66e7a1b05bbfe135

Git commit da47a3cff9885e81689be9ca85c28ee839ba33c3 by Harrison Hao on 06/08/2026 at 13:07..
[SLP] Allow non-power-of-2 VF in tryToVectorizeList
https://invent.kde.org/qt/clang/llvm/-/commit/da47a3cff9885e81689be9ca85c28ee839ba33c3

Git commit 57230a9f2ed40810b9a9f0df4ad28829366c33a8 by Harrison Hao on 06/08/2026 at 13:12..
Fix clang-format issue.
https://invent.kde.org/qt/clang/llvm/-/commit/57230a9f2ed40810b9a9f0df4ad28829366c33a8

Git commit b66379638baa0be0c7686310711d8f8fc49ad5e5 by Harrison Hao on 06/08/2026 at 14:42..
Update for comments
https://invent.kde.org/qt/clang/llvm/-/commit/b66379638baa0be0c7686310711d8f8fc49ad5e5
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.