[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 b8bd63c69c83bc13b31e808f9b7d84a562251396 to 4053f2b96988b69d68c8cc12913f51c149f1ac46
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 41a5357e389b3c04d4c44631360dd3661488c629 by GitHub (on behalf of AZero13) on 27/07/2026 at 17:26..
[clang][Sema] Allow abstract declarators to specify cv-qualified function types as per CWG1417 (#209836)

Abstract declarator contexts (specifically `DeclaratorContext::TypeName`) now properly bypass this restricted rule, allowing cv-qualified function types in `__typeof__` while maintaining restrictions in other contexts like `typeid`, `sizeof`, C-style casts, and `new` expressions per CWG1417.
https://invent.kde.org/qt/clang/llvm/-/commit/41a5357e389b3c04d4c44631360dd3661488c629

Git commit 5565740f2367093b89481ba7371adf820971977d by GitHub (on behalf of Arthur Eubanks) on 27/07/2026 at 17:39..
[lld] Don't drop RELR relocations for late-added GOT entries (#211911)

In #208959 we started dropping RELR relocations for late-added GOT
entries when reverting x86-64 GOTPCRELX relaxations in
X86_64::relaxOnce.

There is a separate unrelaxation bug where if the object files didn't
have any relocations of a certain type, we'd prune .relr.dyn (or even
.rela.dyn). Will be addressed separately.

Assisted-by: Gemini
https://invent.kde.org/qt/clang/llvm/-/commit/5565740f2367093b89481ba7371adf820971977d

Git commit ad791f26ef495dbc2c3c6c283518872697210898 by GitHub (on behalf of Christopher Ferris) on 27/07/2026 at 17:49..
[scudo] Test to verify fork and allocate does not deadlock. (#211975)
https://invent.kde.org/qt/clang/llvm/-/commit/ad791f26ef495dbc2c3c6c283518872697210898

Git commit 751eb22c1b835b675166e4936a93f903b952f28f by GitHub (on behalf of David Green) on 27/07/2026 at 17:54..
[AArch64][GlobalISel] Use integer type for truncating merged call args. (#212208)
https://invent.kde.org/qt/clang/llvm/-/commit/751eb22c1b835b675166e4936a93f903b952f28f

Git commit 02da01251156c831a54417d4882aad7226cdbbe1 by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 17:57..
TableGen: Use a compact table for CPU aliases (#211952)
https://invent.kde.org/qt/clang/llvm/-/commit/02da01251156c831a54417d4882aad7226cdbbe1

Git commit b9a7aad4a9d50b9ec60b59d197be43a973a0572c by GitHub (on behalf of Tom Stellard) on 27/07/2026 at 17:58..
workflows/release-tasks: Fix permissions for release-documentation (#212310)
https://invent.kde.org/qt/clang/llvm/-/commit/b9a7aad4a9d50b9ec60b59d197be43a973a0572c

Git commit 0600aeae3ba6c41da80bbb84c10f1cad4c9a58ba by GitHub (on behalf of David Green) on 27/07/2026 at 18:01..
[AArch64][GlobalISel] Use integer types for inline assembly lowering (#212214)

If we need to generate a trunc then we can use an integer type for the
lowering.
https://invent.kde.org/qt/clang/llvm/-/commit/0600aeae3ba6c41da80bbb84c10f1cad4c9a58ba

Git commit 7336a38e5c6dea03c243bb37b44a2207471e63d3 by GitHub (on behalf of rdevshp) on 27/07/2026 at 18:18..
[clang] Add missing VisitAtomicTypeLoc to TypeLoc.cpp GetContainedAutoTypeLocVisitor (#211752)

Adds the missing `VisitAtomicTypeLoc` method to TypeLoc.cpp `GetContainedAutoTypeLocVisitor`.

Fixes: https://github.com/llvm/llvm-project/issues/211556 ICE.

Assisted-by: Codex
https://invent.kde.org/qt/clang/llvm/-/commit/7336a38e5c6dea03c243bb37b44a2207471e63d3

Git commit 68e94c904067b1b984c6b337819633aee9f0c7da by GitHub (on behalf of Benedek Kaibas) on 27/07/2026 at 18:20..
[analyzer] Improve dangling value tracking in DanglingPtrDeref (#211818)

Improve dangling value tracking in the `DanglingPtrDeref` checker by
adding `trackExpressionValue`. The report with this change now tracks
the dangling value and shows where the value originated from. Currently
the checker only points at the destruction and use sites which isn't
always useful for the user.
https://invent.kde.org/qt/clang/llvm/-/commit/68e94c904067b1b984c6b337819633aee9f0c7da

Git commit f83fcfbdc7fc1bee6ebf242b110a5c2b46703ae9 by GitHub (on behalf of Florian Mayer) on 27/07/2026 at 18:41..
[MachineVerifier] do not use !NoPHI to check if a MF has phi nodes (#211941)

We were violating the property expressed in MachineFunction.h:

```
The properties are stated in "positive" form; i.e. a pass could require
that the property hold, but not that it does not hold.
```

Resolves a false positive "MBB has allocatable live-in, [...]" error in
our downstream target.
https://invent.kde.org/qt/clang/llvm/-/commit/f83fcfbdc7fc1bee6ebf242b110a5c2b46703ae9

Git commit 79ea87c8da20263fa54c9f60b4befb3a9bf962cf by GitHub (on behalf of Yingwei Zheng) on 27/07/2026 at 18:41..
[llubi] Add support for byte types (#200672)

This patch implements the support for byte types. The byte order depends
on the endianness for better performance in the fast path. For
non-byte-sized byte types, high bits are zeroed out.
https://invent.kde.org/qt/clang/llvm/-/commit/79ea87c8da20263fa54c9f60b4befb3a9bf962cf

Git commit a41a3359ec24f019a5a9576631228f0314be38a6 by GitHub (on behalf of Valentin Clement (バレンタイン クレメン)) on 27/07/2026 at 18:42..
[flang][cuda] Do not check dummy in stmt function in device code (#212037)
https://invent.kde.org/qt/clang/llvm/-/commit/a41a3359ec24f019a5a9576631228f0314be38a6

Git commit 289a2d901a480e3c0ba8aac80c40f2fcd768506f by GitHub (on behalf of Stephen Long) on 27/07/2026 at 18:44..
[mlir][LinalgBlockPackMatmul] Add support for scalable block factors (#211354)

Assisted by: Claude Sonnet 4.6

---------

Co-authored-by: Adam Siemieniuk <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/289a2d901a480e3c0ba8aac80c40f2fcd768506f

Git commit a950d4a527311fbfe202d563331f133400fd2c5e by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 19:04..
AMDGPU: Use uint8_t for IsaVersion fields (#212311)
https://invent.kde.org/qt/clang/llvm/-/commit/a950d4a527311fbfe202d563331f133400fd2c5e

Git commit 460dbfc7ec59a89cc80f7c03879f60278ec2a6c4 by GitHub (on behalf of Sean Clarke) on 27/07/2026 at 19:05..
[HashRecognize] Use loop latch to determine step/start for conditional recurrence (#211916)

The function `matchConditionalRecurrence` iterates over both PHI inputs
and attempts to match each one to determine which is `Start` and which
is `Step`. However, some of the failure conditions in the loop `return
false`, which has the potential to classify some valid CRC loops as not
having a conditional recurrence. The loop here is not really needed at
all-- instead, use `L.getLoopLatch()` to determine `Start`/`Step`, since
the incoming value from the latch block will always be the `Step`. This
also avoids the aforementioned false negative classifications.

Assisted-by: Claude Opus 5
https://invent.kde.org/qt/clang/llvm/-/commit/460dbfc7ec59a89cc80f7c03879f60278ec2a6c4

Git commit c2b22642d289413e136da29eaa1ce176ce438484 by GitHub (on behalf of Tomer Shafir) on 27/07/2026 at 19:06..
[AArch64][MacroFusion] Add per cluster kind statistic (#212103)

So we can easily differentiate between different cluster kinds on
AArch64 backend.
https://invent.kde.org/qt/clang/llvm/-/commit/c2b22642d289413e136da29eaa1ce176ce438484

Git commit bd7bb26108bd86eeeef0962577b52d0f435a7ac3 by GitHub (on behalf of Daniel Paoliello) on 27/07/2026 at 19:15..
[clang] Match MSVC ABI for over-aligned base tail padding on Arm64 (#210461)

When targeting aarch64-pc-windows-msvc, clang laid out a base following
an over-aligned, non-standard-layout base at the wrong offset. MSVC on
Arm64 reuses the over-aligned base's tail padding for the subsequent
base, but clang rounded the base up to a full slot, so the two disagreed
on member offsets, breaking interop between clang- and MSVC-built
binaries.

Fix: store each record's natural non-virtual alignment (excluding
`alignas`/`__declspec(align)` over-alignment) as
`getNonRequiredNVAlignment()`, and on Arm64 fold in a base's natural
alignment rather than its full alignment. This is gated to Arm64 only;
Arm64EC and x64 follow the x64 rule (no reuse) and are unchanged.

Validated against MSVC (Hostx64\arm64\cl.exe
/d1reportSingleClassLayout): clang now matches MSVC Arm64 exactly for
the reduced repro, the original polymorphic case (vftable + empty base +
template), and a range of probe cases covering natural vs.
over-alignment padding and field vs. base reuse. Arm64EC and x64 output
is byte-identical to before.

Fixes #210174
https://invent.kde.org/qt/clang/llvm/-/commit/bd7bb26108bd86eeeef0962577b52d0f435a7ac3

Git commit 4d14e9641ddf38d4b6cc2dbb5c882135d94c68c1 by GitHub (on behalf of Arseniy Obolenskiy) on 27/07/2026 at 19:16..
[mlir][MathToSPIRV] Allow math.cttz lowering for non-i32 integer widths (#206400)

Co-authored-by: Igor Wodiany <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/4d14e9641ddf38d4b6cc2dbb5c882135d94c68c1

Git commit c881d81f6b189f14c56c9bec8842ddba6255d0e5 by GitHub (on behalf of Rafael Auler) on 27/07/2026 at 19:34..
[BOLT] Release pseudo-probe decoder after emit (#211935)

PseudoProbeRewriter builds sizable data structures and then hold onto
them after they are needed.
PseudoProbeRewriter::postEmitFinalizer() parses the input .pseudo_probe
sections into an MCPseudoProbeDecoder whose address-to-probe and
GUID-to-function-desc maps can be very large (tens of GiB on big
binaries with many probes). This is not used again once probes have been
updated, yet they survive into the memory-heavy DWARF rewrite
(updateDebugInfo), directly inflating BOLT's peak RSS at the worst
possible time.

This frees them at the end of the postEmitFinalizer() calls, before
updateDebugInfo runs.

Stacked on top of the .dwo DIE diff, in large binaries you should
observe ~17% peak RSS wins if your
build uses pseudo probe maps.
https://invent.kde.org/qt/clang/llvm/-/commit/c881d81f6b189f14c56c9bec8842ddba6255d0e5

Git commit 63e60a2853b1ff6fdac3cbaf668e2d2a63d51fae by GitHub (on behalf of Rafael Auler) on 27/07/2026 at 19:35..
[BOLT] Fix strict mode bug in removal of block referenced by JT (#211940)

Summary:
BOLT can create a jump table object from a PC-relative operand reference
(e.g. leaq JT(%rip)) whenever the referenced memory looks like a PIC
jump table -- see
BinaryContext::handleAddressRef. This is independent of whether BOLT
recognizes the indirect jump dispatch itself. The jump table annotation
is only attached to the jmp instruction later, in
BinaryFunction::analyzeIndirectBranch, and only when the target-specific
analyzeIndirectBranch matcher recognizes the dispatch pattern.

If the matcher does not recognize the pattern, the annotation is never
attached to the jmp, even though the jump table object and its entries
exist and reference basic blocks in the function.

In strict mode BOLT still fully processes such a function: it stays
simple, the block is marked as having unknown control flow, and the jump
table object is kept intact. Because the terminator carries no jump
table annotation, BinaryBasicBlock::hasJumpTable() returns false for it.
Later passes then transform the function normally: remove-nops can empty
a jump table target block that consists only of nops, and NormalizeCFG
then redirects the block's predecessor and deletes the empty block - it
does not recognize the block as a jump table target, since the
predecessor's hasJumpTable() is false. The jump table object still
references the deleted block by label, which produces an "Undefined
temporary symbol" error and fails emission.

Fix NormalizeCFG so it does not redirect/remove a block whose
predecessor ends in an indirect branch, not only one flagged by
hasJumpTable().
https://invent.kde.org/qt/clang/llvm/-/commit/63e60a2853b1ff6fdac3cbaf668e2d2a63d51fae

Git commit 767716657985094ce2e73eafe87d5fa8a24ac843 by GitHub (on behalf of Alex Duran) on 27/07/2026 at 19:44..
[OFFLOAD][L0] Fix zero argurment kernel launch (#212296)

PR #205224 changed the path for kernels with no arguments to not use
appendLaunchKernelWithArgs, while at the same time it removed
zeKernelSetGroupSize which resulted in incorrect sizing of the kernel.

This PR removes the alternate path and makes sure all launches go
through appendLaunchKernelWithArgs.

Alternatively we can restore zeKernelSetGroupSize on the alternate path.
https://invent.kde.org/qt/clang/llvm/-/commit/767716657985094ce2e73eafe87d5fa8a24ac843

Git commit 6534ceefd231771466abc9c388b93bb8b0913316 by GitHub (on behalf of Sirraide) on 27/07/2026 at 19:49..
[Clang] [NFC] Update OptionalUnsigned ctor to only reject signed integers (#212321)

Currently, the `OptionalUnsigned(int) = delete;` constructor means that
constructing e.g. an `OptionalOrUnsigned<uint64_t>` from an `unsigned`
fails because overload resolution is ambiguous (because `unsigned` ->
`int` and `unsigned` -> `uint64_t` are both valid conversions). This
patch adds a constraint to make sure the deleted constructor only
catches signed integer types.

This is needed for #212319.
https://invent.kde.org/qt/clang/llvm/-/commit/6534ceefd231771466abc9c388b93bb8b0913316

Git commit 864f9a09887559491ef3f7ad39d57c703bc14f40 by GitHub (on behalf of Björn Schäpers) on 27/07/2026 at 20:11..
[clang-format] Correctly annotate C# UTF 8 string literals (#211919)

Fixes #210506
https://invent.kde.org/qt/clang/llvm/-/commit/864f9a09887559491ef3f7ad39d57c703bc14f40

Git commit 34c7c5ccca260c695d6b212a06c0e620d494adb4 by GitHub (on behalf of Changpeng Fang) on 27/07/2026 at 20:35..
[AMDGPU][NFC] Rename packed instruction helper functions for clarity (#211933)

Renames packed instruction helper functions to better reflect their
purpose:
  - isPackedFP32or64BitInst → isSingleSGPRReadInst
- isLegalGFX12PlusPackedMathFP32or64BitOperand → isLegalSingleSGPRReadInstOperand
https://invent.kde.org/qt/clang/llvm/-/commit/34c7c5ccca260c695d6b212a06c0e620d494adb4

Git commit cef8432f7d149ef4e5888e29ff4d39ea580a806c by GitHub (on behalf of Florian Hahn) on 27/07/2026 at 20:41..
[VPlan] Account for masked VPInstructions in getIntrinsicID. (#212234)

getIntrinsicID may be called with masked VPInstructions. Update to skip
the mask, which is always the last operand.

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

PR: https://github.com/llvm/llvm-project/pull/212234
https://invent.kde.org/qt/clang/llvm/-/commit/cef8432f7d149ef4e5888e29ff4d39ea580a806c

Git commit aa8942dbf406e9e4c0cae84a6567dac37fac57c6 by GitHub (on behalf of Sameer Sahasrabuddhe) on 27/07/2026 at 20:47..
[Docs][AMDGPU] Eliminate incorrect use of double backticks [NFC] (#212343)
https://invent.kde.org/qt/clang/llvm/-/commit/aa8942dbf406e9e4c0cae84a6567dac37fac57c6

Git commit 30bff76d3a294fe0882a05472234b25bb752b16a by GitHub (on behalf of Valentin Clement (バレンタイン クレメン)) on 27/07/2026 at 20:59..
[flang][cuda] Do not emit cuf.register_variable_static for device/constant under unified mode (#212344)
https://invent.kde.org/qt/clang/llvm/-/commit/30bff76d3a294fe0882a05472234b25bb752b16a

Git commit 295c3a461c7dd9d7f34306a89181ceb7139760ba by GitHub (on behalf of Sophia Herrmann) on 27/07/2026 at 21:30..
[Offload] Decouple CUDA source from NVPTX syncthreads assumption (#212339)

With the introduction of offloading via LLVM, the frontend language will
not necessarily determine the backend target anymore. Thus it is
necessary to guard against NVPTX instead of CUDA, since we could have
CUDA-language device code targeting a non-NVPTX backend, where Clang
does not provide __syncthreads as an NVPTX builtin and the generic shim
is still needed.

This also avoids duplicate definitions on NVPTX. Clang already provides
`__syncthreads` as an NVPTX target builtin, so
`__clang_gpu_device_functions.h` should not also define an inline
`__syncthreads` shim for NVPTX targets.
https://invent.kde.org/qt/clang/llvm/-/commit/295c3a461c7dd9d7f34306a89181ceb7139760ba

Git commit 4ca573fb7947b3bebf5c1da512b5142679545905 by GitHub (on behalf of Louis Dionne) on 27/07/2026 at 21:34..
[libc++] Rename the test suite used on LNT (#212347)

The LNT instance on http://lnt.llvm.org was wiped since I created the
original schema, and we can now start over clean with a new test suite
named `libcxx`.
https://invent.kde.org/qt/clang/llvm/-/commit/4ca573fb7947b3bebf5c1da512b5142679545905

Git commit a22416ba1ec8894ef98a437275e91f0ade3e2ba1 by GitHub (on behalf of Joshua Batista) on 27/07/2026 at 21:40..
[HLSL] Add UsedByAtomic64 shader flag (#211691)

This PR adds the `UsedByAtomic64` shader flag.
It detects any usage of an atomic instruction with a 64 bit type, and if
detected, sets the shader flag to true.
This is needed to pass DXIL validation.

Fixes https://github.com/llvm/llvm-project/issues/104392
Assisted by: Github Copilot
https://invent.kde.org/qt/clang/llvm/-/commit/a22416ba1ec8894ef98a437275e91f0ade3e2ba1

Git commit 8a49f8839cdf743af250d3501262da0bb9876c98 by GitHub (on behalf of Arthur Eubanks) on 27/07/2026 at 21:57..
[gn build] Add missing deps (#212352)

From e7290b1f1815626c4461d38671d93093590bf405
https://invent.kde.org/qt/clang/llvm/-/commit/8a49f8839cdf743af250d3501262da0bb9876c98

Git commit 4f02e1e45c2711a94dae0eac2051ad7c2e5ca8c2 by GitHub (on behalf of Adrian Prantl) on 27/07/2026 at 21:59..
[LLDB] Hide unresolvable children from ObjC tagged pointers  (#211936)

Foundation's small value inline representations have valid summaries and
sometimed synthetic children, but LLDB cannot access any ivars from
their base classes (such as [NSObject isa]).

Use a synthetic child provider to hide them.

rdar://182434208

Assisted-by: claude
https://invent.kde.org/qt/clang/llvm/-/commit/4f02e1e45c2711a94dae0eac2051ad7c2e5ca8c2

Git commit 61225df551b071f07dbf9fab98242a7477506b49 by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 22:03..
RuntimeLibcalls: Migrate to dag libcall predicates (#210674)

Switch to using dag predicates instead of free-form code predicates.

Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/61225df551b071f07dbf9fab98242a7477506b49

Git commit d8d33abac0140c0554fd754b2646e142edcca484 by GitHub (on behalf of William Moses) on 27/07/2026 at 22:26..
[MLIR] Allow recovering from semi-affine sets in FlatLinearValueConst… (#212346)

…raints

The IntegerSet constructor of FlatLinearValueConstraints asserts when
flattening fails, which happens for semi-affine integer sets. Since the
failure is signalled from inside a constructor, callers have no way to
detect the unsupported case ahead of time and no way to work around it;
they simply crash.

Add an optional `bool *error` parameter to the constructor. When it is
non-null, hitting the unimplemented case sets `*error` to true and
returns instead of asserting, letting callers bail out gracefully.
`*error` is set to false on success. When the pointer is null the
previous assert behavior is retained, so existing callers are
unaffected.
https://invent.kde.org/qt/clang/llvm/-/commit/d8d33abac0140c0554fd754b2646e142edcca484

Git commit 0fa9cfa567277a1fadd71e4c8cf41db5a7c84cff by GitHub (on behalf of Louis Dionne) on 27/07/2026 at 22:27..
[CI] Add documentation for self-hosted runners (#211622)

This patch adds (work in progress) documentation for the various
self-hosted runner groups we have access to in the LLVM monorepo.
https://invent.kde.org/qt/clang/llvm/-/commit/0fa9cfa567277a1fadd71e4c8cf41db5a7c84cff

Git commit 05eba618a37839999d3eb6ca7328337cd4765dfd by GitHub (on behalf of Florian Hahn) on 27/07/2026 at 22:27..
[VPlan] Add vputils::getEarlyExits helper (NFC) (#212348)

Both handleUncountableEarlyExits and the countable early-exit disconnect
in handleEarlyExits walk all exit blocks and skip predecessors coming
from the middle block to find the early exiting blocks.

Factor that walk out into vputils::getEarlyExits, returning the (early
exiting block, exit block) pairs.
https://invent.kde.org/qt/clang/llvm/-/commit/05eba618a37839999d3eb6ca7328337cd4765dfd

Git commit bd5883c35f43b01ab96bbdba1bc14a81f78694ea by GitHub (on behalf of Daniel Paoliello) on 27/07/2026 at 22:55..
[clang] Fix record alignment lost via external layout on Arm64 (#212362)

An external layout source (such as LLDB reading DWARF) supplies a
record's final alignment directly, since `alignas` / `__declspec(align)`
attributes are not recoverable from debug info. `finalizeLayout`
captured `NonRequiredAlignment` before applying the external alignment,
so an externally laid out record published a stale, too-small value.

On Arm64 this field is used to fold a base's alignment into the derived
record, so a derived class picked up the stale value instead of the
base's actual alignment. This regressed
`lldb/test/API/lang/cpp/alignas_base_class` when #210461 was merged,
where `alignof(Derived)` evaluated to 1 instead of 8. Other targets were
unaffected as they do not read this field.

Treat all of an externally supplied alignment as non-required, as there
is no way to tell how much of it was imposed by an alignment attribute.
https://invent.kde.org/qt/clang/llvm/-/commit/bd5883c35f43b01ab96bbdba1bc14a81f78694ea

Git commit 4053f2b96988b69d68c8cc12913f51c149f1ac46 by GitHub (on behalf of Matsu) on 27/07/2026 at 23:02..
[flang-rt][cuda] Keep CUFDeviceIsActive working under runtime/driver skew (#212320)

Resolve cuDevicePrimaryCtxGetState via the installed driver version, and
prefer running scope-exit cleanup when the probe cannot prove teardown,
so local device allocations are not leaked when the unversioned lookup
fails.
https://invent.kde.org/qt/clang/llvm/-/commit/4053f2b96988b69d68c8cc12913f51c149f1ac46
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.