[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/guy-david/loop-peel-widen-load'.
Changed from f134fb4196652c57ce721b7f9a54bd67b43f9a83 to e85b0c990ba727cc851572571fcd921fcd0b15f5
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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/commit/b2b88d98cec1930d3a32242055a0b3ecfc9b4d10

Git commit 852459d6f9c8f0b155ccacfd091e4d4987040f21 by Guy David on 05/08/2026 at 12:06..
[NFC][LoopPeel] Add tests for load widening
https://invent.kde.org/qt/clang/llvm-project/-/commit/852459d6f9c8f0b155ccacfd091e4d4987040f21

Git commit e85b0c990ba727cc851572571fcd921fcd0b15f5 by Guy David on 05/08/2026 at 12:06..
[LoopPeel] Peel last iteration to enable load widening

In loops that contain multiple consecutive small loads (e.g., 3 bytes
loading i8's), peeling the last iteration makes it safe to read beyond
the accessed region, enabling the use of a wider load (e.g., b32) for
all other N-1 iterations.

Patterns such as:
```
  %a = load i8, ptr %p
  %b = load i8, ptr %p+1
  %c = load i8, ptr %p+2
  ...
  %p.next = getelementptr i8, ptr %p, 3
```

Can be transformed to:
```
  %wide = load b32, ptr %p     ; Read 4 bytes
  %frozen = freeze b32 %wide
  %value = bitcast b32 %frozen to i32
  %a = trunc
  %b = lshr + trunc
  %c = lshr + trunc
  %p.next = getelementptr i8, ptr %p, 3
  ...
```

The wide load is of a byte type rather than an integer to handle poison
values correctly. Byte values carry poison per bit instead of per value,
so the read-ahead bytes, which the peel makes dereferenceable, cannot
taint the grouped bytes.

This acts as a fallback strategy when vectorization fails and has
significant performance uplifts, most notably in image processing
where processing an RGB buffer is common.

Assisted-by: Opus 4.8
https://invent.kde.org/qt/clang/llvm-project/-/commit/e85b0c990ba727cc851572571fcd921fcd0b15f5
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.