[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/users/abhinavgaba/attach-maps-in-mappers-4'.
Changed from c05dc391badd337ea8e2c2aa73883b0a35763e3d to 9dfd09764d54e970c772fdbe17e19f112fb78301
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 7a618a2e7fd15d4fea352f2f5d7f67b07e0ccd24 by GitHub (on behalf of Tanmay Gulhane) on 03/08/2026 at 00:01..
[RISCV] Fix assertion in combineBinOpOfExtractToReduceTree on type mismatch (#202201)

combineBinOpOfExtractToReduceTree asserts that the extract source
vector's element type equals the binop's value type
(SrcVecVT.getVectorElementType() == VT). This invariant does not hold
for all valid inputs.

A <1 x i1> binary operation under -mattr=+zve32x reaches this point with
the source vector element type differing from VT, which trips the
assertion in an assertions-enabled build and silently proceeds on a
false assumption otherwise.

Convert the assertion into an early return, so the combine declines when
its precondition is not met. This matches the existing bail-out style in
the same function (the isScalableVector and getScalarSizeInBits() >
getELen() checks immediately following). The change only ever skips the
fold; it never alters correct output.

Generative AI was used for the test case. The fix
is mine. Bug found by fuzzing with llvm-stress (seed 96) and reduced
with llvm-reduce.

Signed-off-by: Tanmay Gulhane <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/7a618a2e7fd15d4fea352f2f5d7f67b07e0ccd24

Git commit 41322057c3af16d75e239ec6679c6c2bf7aec157 by GitHub (on behalf of Zane Hambly) on 03/08/2026 at 00:18..
[X86] Don't shrink VEX3 to VEX2 on a symbolic compare predicate (#213172)

`llvm-mc` asserts on a VCMP predicate given as a symbol:

```asm
vcmpps $f0, %xmm0, %xmm1, %xmm2
```

```
Assertion failed: isImm() && "This is not an immediate", MCInst.h:85
```

`optimizeInstFromVEX3ToVEX2` reads the predicate with `getImm()` to
decide whether the operands commute. A symbolic predicate is not known
until link time, so that decision cannot be made here. Decline the
shrink instead.

Unlike the sibling FPCLASS issues (#185364, #185365) this one is on the
encoding path and asserts under `--filetype=obj` too, so a release build
would be making the commutation decision on whatever `getImm()` returns
for a non-immediate.

Literal predicates are unaffected and still commute to reach the
two-byte VEX prefix. The test covers both.

Fixes #185355
https://invent.kde.org/qt/clang/llvm-project/-/commit/41322057c3af16d75e239ec6679c6c2bf7aec157

Git commit 59f3a48ff016773a6093a27d77f27d71e8b4bff7 by GitHub (on behalf of Brandon Wu) on 03/08/2026 at 03:26..
[llvm][RISCV] Bump svukte to 1.0 (#211199)

The PR updated: https://github.com/riscv/riscv-isa-manual/pull/1564

---------

Co-authored-by: Craig Topper <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/59f3a48ff016773a6093a27d77f27d71e8b4bff7

Git commit 24c1ce228a7ce7e8e8b444861e2782100ec2fe16 by GitHub (on behalf of Kazu Hirata) on 03/08/2026 at 03:43..
Reapply [ProfileData] Implement contains in SampleProfileNameTable (NFC) (#213408)

This patch implements contains(StringRef) and contains(uint64_t) in
SampleProfileNameTable and SampleProfileReader to serve symbol
membership queries directly from the reader -- "is this symbol in the
name table?".

Without this patch, users of the sample profile reader, namely
SampleProfileLoader::doInitialization and SampleProfileNameSet, each
construct their own StringSet<> containing all name table entries.
That is, we end up with two instances of StringSet<> with identical
contents.  Since these instances hold their own copies of symbol
strings on the heap, both the constructor and destructor take up a
large portion of compilation time.

This patch teaches SampleProfileReader::contains to directly serve
symbol membership queries.

- For EytzingerSampleProfileNameTable, contains performs binary search
  directly across the three concatenated Eytzinger table spans
  (CSKeys, FlatKeys, and Inlinees) in a cache-friendly manner.

- Other representations of the name table lazily construct an internal
  DenseSet on demand.

This patch updates existing customers to call Reader->contains.

This patch fixes a build issue on 32-bit ARM.

RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/8

Assisted-by: Antigravity
https://invent.kde.org/qt/clang/llvm-project/-/commit/24c1ce228a7ce7e8e8b444861e2782100ec2fe16

Git commit 43e41e96292608c016bcccea0b74a9339a2e67d3 by GitHub (on behalf of Zeyi Xu) on 03/08/2026 at 04:15..
[clang-tidy][docs] Replace invisible characters in unchecked-statusor-access. NFC. (#213562)
https://invent.kde.org/qt/clang/llvm-project/-/commit/43e41e96292608c016bcccea0b74a9339a2e67d3

Git commit 99c39646d798f297af9005fea87b13d20e09d3dc by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 04:29..
clang/AMDGPU: Fix confused image builtin availability tests (#213567)

These tests appear to have been copy paste from other image error
tests, which were checking for invalid argument validation. The point
of these tests were to reject image builtins on unsupported targets,
and not just gfx942. Rename the tests, and fix the invalid argument
usage. Each builtin should be used in a valid way.

Co-authored-by: Claude (Claude-Opus-4.8)
https://invent.kde.org/qt/clang/llvm-project/-/commit/99c39646d798f297af9005fea87b13d20e09d3dc

Git commit 4148d0b61dfe9f5fa1fd5c7cde9c34d4ea92cb8b by GitHub (on behalf of ejose02) on 03/08/2026 at 04:37..
[flang] Reject type bound procedure overrides with mismatched passed-object dummy names (#210876)

Fixes #206913

Issue:
Flang wrongly accepts a type-bound procedure override when the
implementing procedure uses a different dummy name than the parent
deferred interface.

Root cause:
The PASS override check uses CanOverride, which compares dummy types but
not dummy names for the passed-object argument.

Fix:
Check that dummy names match before CanOverride and report a clear error
https://invent.kde.org/qt/clang/llvm-project/-/commit/4148d0b61dfe9f5fa1fd5c7cde9c34d4ea92cb8b

Git commit 4b6a8d81da1a9eb1cee48c318b156ef2f2645c94 by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 05:24..
AMDGPU: Migrate most llvm-objdump tests to use subarch triple (#213589)
https://invent.kde.org/qt/clang/llvm-project/-/commit/4b6a8d81da1a9eb1cee48c318b156ef2f2645c94

Git commit 04ea62bc5e2c5596866de7ee6a9c3a8b6aa54d35 by GitHub (on behalf of Arseniy Obolenskiy) on 03/08/2026 at 05:25..
[AMDGPU] Fix miscompile trimming sparse DMask on image stores (#213586)

Dropping a channel from a sparse DMask removes that write entirely

It does not zero-fill like a contiguous trim does

Only simplify stores when DMask is a contiguous prefix
https://invent.kde.org/qt/clang/llvm-project/-/commit/04ea62bc5e2c5596866de7ee6a9c3a8b6aa54d35

Git commit 4f607e3cd911ccc3d1aab73129aacea97d864663 by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 05:42..
AMDGPU: Migrate misc. tests to subarch triples (#213593)
https://invent.kde.org/qt/clang/llvm-project/-/commit/4f607e3cd911ccc3d1aab73129aacea97d864663

Git commit 278b9af90c6fd32776ad3f4f4b5eab87f52587e2 by GitHub (on behalf of Sam Elliott) on 03/08/2026 at 06:02..
[RISCV][MC] Emit Better Token Diagnostics (#209700)

This implements an old FIXME in the AsmMatcherEmitter, which can now
emit a token-specific match error diagnostic id, and potentially a
token-specific error message to go along with the diagnostic id.

For RISC-V, the overall effect is to have fewer "invalid operand for
instruction" diagnostics and have more "expected '<TOKEN>'" diagnostics,
which, with multiple near miss support, gives the user the location that
token was expected (but not found).

The rejig to the order of checks in `validateOperandClass` do not
prevent backends from having custom operand kinds which can accept
tokens, as was available before.

The TableGen parts have been implemented in an opt-in way.

---

This was implemented with the assistance of AI.
https://invent.kde.org/qt/clang/llvm-project/-/commit/278b9af90c6fd32776ad3f4f4b5eab87f52587e2

Git commit 187c39ba03cfed96c8aab9d0c951d0bea6f27b82 by GitHub (on behalf of Abhinav Gaba) on 03/08/2026 at 06:07..
[OpenMP] Propagate ALWAYS/DELETE/CLOSE map-type modifiers to mapper entries (#210210)

Per OpenMP, when a map/motion clause uses a mapper, any
map-type-modifying modifier on that clause applies to each map the
declared mapper specifies.

This change propagates the `ALWAYS`, `DELETE`, and `CLOSE` bits from the
outer clause's map type into every entry emitted by
emitUserDefinedMapper, except `ATTACH` entries (`ATTACH`|`ALWAYS` is
reserved for `attach(always)`, and the other bits have no meaning for an
`ATTACH` entry).

`PRESENT` is intentionally NOT propagated here: it requires
distinguishing pointee entries from the struct's own storage and is
handled in a follow-up.

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

Git commit dc7adf8f5e7dc746e280cc00f2ecc121ab3fbe4e by Abhinav Gaba on 03/08/2026 at 06:07..
[OpenMP][Clang] Enable ATTACH-style maps for mappers.

Track per-entry attach-ptr info (HasAttachPtr) through mapper codegen so that
emitUserDefinedMapper does not add a new outer MEMBER_OF to pointee/combined
entries (which occupy different storage than the struct) or to ATTACH entries.
Clang and the MLIR translator populate the per-entry array in parallel with the
other MapInfosTy arrays.

Address review:
  - Rename MapSkipMemberOfArrayTy to MapHasAttachPtrArrayTy to match the
    HasAttachPtr field it backs.
  - Restructure the emitUserDefinedMapper comment into a bulleted (*)/(**)/(***)
    list keyed to the example entries.
  - Reword the Clang comments: HasAttachPtr marks pointee entries that have a
    base attach-ptr; a combined entry has a base attach-ptr if its constituents
    do; cross-reference emitUserDefinedMapper for the MEMBER_OF rationale.
  - Update the moved present-check tests to their now-correct behavior (the
    attach-style maps make the inbounds present checks pass and remove the
    "explicit extension" errors).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/dc7adf8f5e7dc746e280cc00f2ecc121ab3fbe4e

Git commit 9dfd09764d54e970c772fdbe17e19f112fb78301 by Abhinav Gaba on 03/08/2026 at 06:07..
[OpenMP] Propagate PRESENT to pointee entries in mapper codegen

Extend map-type-modifier propagation in emitUserDefinedMapper to the PRESENT
modifier, but only for entries that have an attach ptr (the pointee data, whose
storage differs from the struct's own). A present modifier on the outer clause
must require that pointee to be present on the device.

This is gated on a new PropagatePresentToPointee argument, which Clang sets from
CGM.getLangOpts().OpenMP >= 60. Before 6.0 the present modifier is treated as
not applying to the pointee: the spec committee confirmed the divergence
between the present motion modifier (to/from) and the present map-type modifier
(map) was unintentional, to be fixed as an OpenMP 6.0 erratum. Only propagation
is gated; present written directly in a mapper's own clause applies at all
versions.

A TODO notes PRESENT should also propagate to the struct's own members, which
is blocked while pointer members use PTR_AND_OBJ.

Update the present-check tests to their final 6.0-gated behavior.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/9dfd09764d54e970c772fdbe17e19f112fb78301
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.