[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/davidspickett/lldb-register-types-for-stack-5'.
Changed from 983233ff4b64f9b365d53f615405791a642f76f5 to 70c055580c0899d9a7cdb0d2a7b228e8a76a3340
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 f80ea9af1f29cc202d0b6ba077e79769b6f6184c by GitHub (on behalf of David Spickett) on 05/08/2026 at 11:24..
[lldb] Rename some register type classes (#213684)

Follow up to #196960.

So that when more types are added, the hierarchy is clear.

RegisterType
  -> RegisterTypeEnum
  -> RegisterTypeFlags
  (in future also...)
  -> RegisterTypeUnion
  -> RegisterTypeVector

Renamed and moved the test file as it will cover all the classes derived
from RegisterType.
https://invent.kde.org/qt/clang/llvm/-/commit/f80ea9af1f29cc202d0b6ba077e79769b6f6184c

Git commit f4f973e3cdf8076209d462ae918dfd9299b741f4 by GitHub (on behalf of Matt Arsenault) on 05/08/2026 at 11:30..
RuntimeLibcalls: Split soft-float three-way compares into distinct libcall kinds (#211617)
https://invent.kde.org/qt/clang/llvm/-/commit/f4f973e3cdf8076209d462ae918dfd9299b741f4

Git commit 0c6550088dad824f0bc464775da0fb628d9ce848 by GitHub (on behalf of Donát Nagy) on 05/08/2026 at 11:31..
[analyzer] Generalize MemRegion::getDescriptiveName (#213991)

Previously `ArrayBoundChecker` had a utility function called
`getRegionName` that acted as a wrapper around
`MemRegion::getDescriptiveName` and provided fallback descriptions like
"the heap area" or "the string literal" in cases when there was no exact
name and `Memregion::getDescriptiveName` just returned an empty string.

As this functionality may be useful for other checkers in the future,
this commit moves it to `getDescriptiveName`, which now gains a second
optional parameter called `AllowFallback` (which defaults to false).

Calling `getDescriptiveName` with `AllowFallback == true` is almost
equivalent to the utility function `getRegionName`: the only difference
is that `getDescriptiveName` uses `getRawMemorySpace()` to remain
independent of the current `State` -- while `getRegionName` took the
`Space` (calculated with `Reg->getMemorySpace(State)`) as an argument.

This introduces a very minor functional change in
`security.ArrayBoundChecker`: if a symbolic region was originally
created in the Unknown memory space but later we deduced that it is on
the heap, then before this commit it was described as "the heap area"
but now it is referred to as "the region".

As this is a very rare situation and the new, less specific message is
also completely acceptable, I don't think that we need to complicate the
code to preserve the old behavior.

This commit eliminates the useless variable `VariableName` from
`getDescriptiveName`, other technical debt is left unchanged.
https://invent.kde.org/qt/clang/llvm/-/commit/0c6550088dad824f0bc464775da0fb628d9ce848

Git commit 859c49360c4f9408474df94bdf3b34811360e378 by GitHub (on behalf of Balázs Benics) on 05/08/2026 at 11:42..
[clang][CFG][NFC] Add some tests for guaranteed eval orders (#212116)

Depends on #212115
rdar://183254267

Assisted-By: claude
https://invent.kde.org/qt/clang/llvm/-/commit/859c49360c4f9408474df94bdf3b34811360e378

Git commit 9f7c5cdad763372d99375fb9296247ef1a79f274 by GitHub (on behalf of Jiahao Guo) on 05/08/2026 at 11:56..
[CIR][AArch64] Lower AArch64 scalar saturating subtract intrinsics (#213658)

### summary

This PR is a follow-up to #207189 and adds CIR lowering support for the
eight AArch64 scalar signed and unsigned saturating subtract intrinsics.

It reuses the common Neon SISD lowering infrastructure introduced by
#209389.

The legacy CodeGen tests are migrated to the ACLE-organized subtraction
test file with corresponding CIR and LLVM checks.

Assisted by : gpt5.6-sol high
https://invent.kde.org/qt/clang/llvm/-/commit/9f7c5cdad763372d99375fb9296247ef1a79f274

Git commit b5b34ff378896572ccac8c77445f8e90c0547988 by GitHub (on behalf of babadany2999) on 05/08/2026 at 11:57..
[Clang][Sema] Fix an assertion crash when instantiating a nested requirement (#213660)

We should check if the expression is valid before getConstraintExpr.

Fixes #213575
https://invent.kde.org/qt/clang/llvm/-/commit/b5b34ff378896572ccac8c77445f8e90c0547988

Git commit b2b88d98cec1930d3a32242055a0b3ecfc9b4d10 by GitHub (on behalf of Petar Avramovic) on 05/08/2026 at 12:04..
AMDGPU/GlobalISel: Fix G_PTR_ADD handling in getBaseWithConstantOffset (#213968)

There was a discrepancy compared to SDAG when G_PTR_ADD was being matched
and there was no nuw flag check. In case of G_PTR_ADD, nuw flag comes
from inbounds flag on getelementptr. For reference, SDAG does not have
pointers so PTR_ADD is integer ADD in SDAG.
https://invent.kde.org/qt/clang/llvm/-/commit/b2b88d98cec1930d3a32242055a0b3ecfc9b4d10

Git commit 4f14eaa227b32a6549c540fafe6b8de2036c6b9d by GitHub (on behalf of Ruoyu Qiu) on 05/08/2026 at 12:13..
[DA] Rewrite Banerjee MIV test with SCEV-based interval arithmetic (#207662)
https://invent.kde.org/qt/clang/llvm/-/commit/4f14eaa227b32a6549c540fafe6b8de2036c6b9d

Git commit 1768978e0cb5ceba764bbe164d974a8db9b006cb by GitHub (on behalf of David Sherwood) on 05/08/2026 at 12:13..
[Analysis] Cache generation of SCEV expander overflow checks (#213013)

When creating SCEV checks as part of loop vectorisation we often
generate overflow checks, which leads to lots of duplicated calls to the
umul_with_overflow intrinsic. These calls should be cleaned up during
codegen. However, it is unfortunate that the current LLVM method of
calculating the cost of IR in a block involves looping over each
instruction and adding the costs individually with no thought to the
trivial CSE or DCE optimisations that would take place. In the absence
of a more sophisticated method of cost analysis, for now I've chosen to
explicitly CSE these overflow checks during SCEV expansion.
https://invent.kde.org/qt/clang/llvm/-/commit/1768978e0cb5ceba764bbe164d974a8db9b006cb

Git commit 80e17427c96f4ef13a255bfeb487f950a5d8d90e by GitHub (on behalf of Simon Pilgrim) on 05/08/2026 at 12:14..
[X86] Rename getPMOVMSKB -> getMOVMSK (#214177)

The getPMOVMSKB helper has been used to generate MOVMSKPS/D cases as well for some time.
https://invent.kde.org/qt/clang/llvm/-/commit/80e17427c96f4ef13a255bfeb487f950a5d8d90e

Git commit 2fa45081bc8c1d13099684f27d73eb52889ec472 by GitHub (on behalf of Alexey Bataev) on 05/08/2026 at 12:20..
[SLP]Fix crash from runtime alias check reusing body scalars

Emit the check at the block's first insertion point instead of before
the terminator. SCEV expansion reuses any dominating instruction, so
at the terminator it could pick up body scalars that are later moved
into the vector block and deleted, causing a crash.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/214211
https://invent.kde.org/qt/clang/llvm/-/commit/2fa45081bc8c1d13099684f27d73eb52889ec472

Git commit b185b9098984a2e99abd9e3d314b66d21c4431a4 by GitHub (on behalf of Petar Avramovic) on 05/08/2026 at 12:22..
AMDGPU/GlobalISel: Legalize G_SCMP and G_UCMP (#213896)
https://invent.kde.org/qt/clang/llvm/-/commit/b185b9098984a2e99abd9e3d314b66d21c4431a4

Git commit 9063da54488c147b5fd9c51128dcb8682632dd1c by GitHub (on behalf of Vineet Kumar) on 05/08/2026 at 12:26..
[flang][flang-rt] Add -ffpe-trap= to set the initial FP exception halting mode (#208828)

Implement the gfortran-style `-ffpe-trap=<list>` option, which sets the
initial floating-point exception halting mode for the main program unit.
The Fortran 2023 standard (17.6) permits the initial halting mode to be
processor defined, so honoring this at program start is conforming.

`<list>` is a comma-separated set of exception mnemonics: `invalid`,
`zero`, `overflow`, `underflow`, and `inexact`, corresponding to the
IEEE_FLAG_TYPE values IEEE_INVALID, IEEE_DIVIDE_BY_ZERO, IEEE_OVERFLOW,
IEEE_UNDERFLOW, and IEEE_INEXACT. As a non-standard, gfortran-compatible
extension, `denormal` halts on the x86 denormal-operand exception. An
empty list or the value `none` disables halting, and the last
`-ffpe-trap=` on the command line wins (allowing an earlier request to
be overridden).

Changes by component:
- clang/Driver: give `-ffpe-trap=` FlangOption/FC1Option visibility and
a one-line HelpText plus a detailed DocBrief (moved into f_Group);
forward the flag to -fc1. Emit a target-based warning when halting
control is unavailable (non-x86 and non-Linux targets), and a
denormal-specific warning on non-x86 targets. The check is intentionally
conservative and only ever under-warns; the runtime remains
authoritative.
- flang/Frontend: parse the list into a LangOptions bitmask
(FPExceptionTrapKind), error on unknown mnemonics, and propagate the
mask to the lowering options.
- flang/Lower: genMain() injects a call to _FortranAEnableFPETraps into
the main program unit only (after ProgramStart, before _QQmain), so the
mode persists across procedures as required by F2023 17.6.
- flang-rt: add EnableFPETraps(), which enables halting only for the
exceptions whose halting control is supported on the target
(IEEE_SUPPORT_HALTING, F2023 17.11.40); it is a no-op elsewhere.

Testing:
- Driver tests for forwarding, "none"/empty, last-wins, bad-argument
errors, and the unsupported-target / denormal warnings.
- FIR lowering tests for the emitted call and constant mask, including a
negative test that a non-main compilation unit emits no call.
- flang-rt execution tests that verify each exception (invalid, zero,
overflow, underflow, inexact, denormal) actually terminates the program
with SIGFPE, plus a selectivity test that an unrelated enabled trap does
not halt. The denormal execution test is gated to x86.

These changes were generated with the assistance of AI tooling and have
been reviewed, tested, and validated by the author.

Resolves #198657
https://invent.kde.org/qt/clang/llvm/-/commit/9063da54488c147b5fd9c51128dcb8682632dd1c

Git commit a9cc54402e75bd9ad848f707c8ccbfe588b60ee5 by GitHub (on behalf of Arseniy Obolenskiy) on 05/08/2026 at 12:30..
[github] Label llvm/tools/spirv-tools changes as backend:SPIR-V (#214193)

E.g. https://github.com/llvm/llvm-project/pull/214159 PR is missing
labels
https://invent.kde.org/qt/clang/llvm/-/commit/a9cc54402e75bd9ad848f707c8ccbfe588b60ee5

Git commit ee779de847774cc935ec089ebb6185c790aedcf7 by GitHub (on behalf of Folkert de Vries) on 05/08/2026 at 12:36..
[SPARC] use `divideCeil` to calculate register offset (#213739)

So that later arguments get the correct register alignment

https://godbolt.org/z/oaEf4Thvx

On current clang the aligned struct starts in `o1`, but with GCC it is
aligned and starts in `o2`. In practice I think only `float` could hit
this (not an int, not an aggregate, smaller than 64 bits).
https://invent.kde.org/qt/clang/llvm/-/commit/ee779de847774cc935ec089ebb6185c790aedcf7

Git commit 9ccaa764f703e5fc9929fba4446ec99ae0575c7a by David Spickett on 05/08/2026 at 13:19..
[lldb] Convert uses of RegisterTypeFlags into RegisterType

So we are using the generic interface that will work with
all future RegisterType derived classes.

Right now we'll only be asked to print RegisterTypeFlags, so
there's a few dyn_cast to that. Later we will switch on the
kind, and support rendering more types.
https://invent.kde.org/qt/clang/llvm/-/commit/9ccaa764f703e5fc9929fba4446ec99ae0575c7a

Git commit f19b988953e7f331e9b319c8857a9fc3963bea08 by David Spickett on 05/08/2026 at 13:46..
casts not needed here
https://invent.kde.org/qt/clang/llvm/-/commit/f19b988953e7f331e9b319c8857a9fc3963bea08

Git commit 8f25ab89d4e82dd56c8e3ab312eff70e37d794bf by David Spickett on 05/08/2026 at 13:48..
[lldb] Store all XML register types in a single string map

We are assuming that their ID's are unique, so there's no need to keep
separate maps. We can do basic type checking by checking the kind of
the type pointed to.

A few more methods were added to the base RegisterType. GetSize()
returns 0 for enums because enums don't have a size until they are
used by a register. This is not ideal but it works for now.
https://invent.kde.org/qt/clang/llvm/-/commit/8f25ab89d4e82dd56c8e3ab312eff70e37d794bf

Git commit 65eb9d604c21d4a6b4db011e89bf2bf83dc8b27a by David Spickett on 05/08/2026 at 14:11..
use first instance of duplicated ID
https://invent.kde.org/qt/clang/llvm/-/commit/65eb9d604c21d4a6b4db011e89bf2bf83dc8b27a

Git commit 89a6b0d6a84d5730e15ee56a3fcaa4aafb214871 by David Spickett on 05/08/2026 at 15:21..
Add test for ID overlap
https://invent.kde.org/qt/clang/llvm/-/commit/89a6b0d6a84d5730e15ee56a3fcaa4aafb214871

Git commit 909c18e90147be57c6f6d8153dff3b9499015226 by David Spickett on 05/08/2026 at 15:30..
[lldb] Make RegisterFlagsDetector into RegisterTypesDetector

In future it may be generating things other than flags. Functionality
is the same, but the interface changes to use RegisterType.
https://invent.kde.org/qt/clang/llvm/-/commit/909c18e90147be57c6f6d8153dff3b9499015226

Git commit 70c055580c0899d9a7cdb0d2a7b228e8a76a3340 by David Spickett on 05/08/2026 at 15:38..
[lldb] Refactor RegisterTypeBuilder

This prepares it for emitting union types. Major changes:
* Entry function is now a dispatcher to builder functions for each type.
* Name mangling is standardised.
* The register name parameter is no longer needed and so was removed.
https://invent.kde.org/qt/clang/llvm/-/commit/70c055580c0899d9a7cdb0d2a7b228e8a76a3340
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.