[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/arsenm/hexagon/runtime-libcalls-stop-excluding-compiler-rt-generics'.
Changed from 4258fa1086240c8da396ce45d46a10fe88d7d50f to 3fbaf8e5518a79ff43881ba797cfad90cf61dcbd
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 13706f1c73b91f74a8a555748b68362fbb5d698f by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 05:46..
AMDGPU: Migrate misc. tests to subarch triples (#211585)
https://invent.kde.org/qt/clang/llvm/-/commit/13706f1c73b91f74a8a555748b68362fbb5d698f

Git commit 5271fd9e65fb235fedd484cfc3710679744bdf46 by GitHub (on behalf of Lang Hames) on 27/07/2026 at 06:17..
[orc-rt] Session::HandlerTag -> orc_rt_ControllerHandlerTag (#212173)

Replace the `Session::HandlerTag = void*` type alias with
orc_rt_ControllerHandlerTag. The intent is both to make this type
accessible to the C API, and to rename it to clarify its role as a tag
for handlers in the controller that are callable by the executor.
https://invent.kde.org/qt/clang/llvm/-/commit/5271fd9e65fb235fedd484cfc3710679744bdf46

Git commit 820b5cb6d9fe8feda01fbb8b86d68aea10c63130 by GitHub (on behalf of Cullen Rhodes) on 27/07/2026 at 06:37..
[AArch64] Mark ZT0 register class as non-allocatable (#211750)

ZT0 is not available for register allocation, define it with the other
non-allocatable SME register classes and avoid an unnecessary pressure
set.

Assisted-by: codex
https://invent.kde.org/qt/clang/llvm/-/commit/820b5cb6d9fe8feda01fbb8b86d68aea10c63130

Git commit ed3470ffd1222be4aa4d6f938e6ba0fae5a2fad7 by GitHub (on behalf of Fangrui Song) on 27/07/2026 at 07:21..
[ELF] Fix -Wc++11-narrowing error in addPltEntry (#212185)

PR #212161 passes the `uint8_t isPreemptible : 1` bit-field straight
into a braced-init-list slot whose parameter type is `bool`.
Older clang (<20 ?) incorrectly rejects it.

```
error: non-constant-expression cannot be narrowed from type 'uint8_t' (aka 'unsigned char') to 'bool' in initializer list [-Wc++11-narrowing]
```
https://invent.kde.org/qt/clang/llvm/-/commit/ed3470ffd1222be4aa4d6f938e6ba0fae5a2fad7

Git commit 0cc7159125eacd3abdff94eb7e634c1a8f889d1e by GitHub (on behalf of Rainer Orth) on 27/07/2026 at 07:54..
[sanitizer_common][tests] Skip MemoryMapping::ParseUnixMemoryProfile … (#212114)

…etc. on NetBSD

The `Sanitizer-x86_64-Test` test doesn't link on NetBSD/amd64 10.1:

```
/usr/bin/ld: /usr/bin/ld: DWARF error: invalid or unhandled FORM value: 0x25
SANITIZER_TEST_OBJECTS.sanitizer_procmaps_test.cpp.x86_64.o: in function `__sanitizer::MemoryMapping_ParseUnixMemoryProfile_Test::TestBody()':
sanitizer_procmaps_test.cpp:(.text._ZN11__sanitizer41MemoryMapping_ParseUnixMemoryProfile_Test8TestBodyEv+0x52): undefined reference to `__sanitizer::ParseUnixMemoryProfile(void (*)(unsigned long, unsigned long, bool, unsigned long*), unsigned long*, char*, unsigned long)'
/usr/bin/ld: SANITIZER_TEST_OBJECTS.sanitizer_procmaps_test.cpp.x86_64.o: in function `__sanitizer::MemoryMapping_ParseUnixMemoryProfileTruncated_Test::TestBody()':
sanitizer_procmaps_test.cpp:(.text._ZN11__sanitizer50MemoryMapping_ParseUnixMemoryProfileTruncated_Test8TestBodyEv+0x17a): undefined reference to `__sanitizer::ParseUnixMemoryProfile(void (*)(unsigned long, unsigned long, bool, unsigned long*), unsigned long*, char*, unsigned long)'

```

Fixed by skipping the affected subtest.

Tested on `amd64-pc-netbsd10.1` and `x86_64-pc-linux-gnu`.
https://invent.kde.org/qt/clang/llvm/-/commit/0cc7159125eacd3abdff94eb7e634c1a8f889d1e

Git commit b66306c2419ecbb5e02e63728c54814647f0e06c by GitHub (on behalf of Nikita Popov) on 27/07/2026 at 07:54..
[SelectionDAG] Stop forming minnum/maxnum in SDAGBuilder (#187738)

The right place to form these is DAGCombine, not SDAGBuilder. This
removes the SPNB_RETURNS_ANY case, the SPNB_RETURNS_OTHER is left to a
followup. We need to propagate FMF flags in a few more places to make
this work.
https://invent.kde.org/qt/clang/llvm/-/commit/b66306c2419ecbb5e02e63728c54814647f0e06c

Git commit 102f572188c5dbf89d92bf533a4bdc4fed1d89bd by GitHub (on behalf of Rainer Orth) on 27/07/2026 at 07:55..
[llvm][cas] Fix OnDiskCASLoggerTest.cpp compilation on NetBSD (#212113)

`CAS/OnDiskCASLoggerTest.cpp` doesn't compile on NetBSD/amd64:

```
In member function `virtual void OnDiskCASLoggerTest_MultiProcess_Test::TestBody()':
llvm/unittests/CAS/OnDiskCASLoggerTest.cpp:230:19: error: reference to `Wait' is ambiguous
  230 |     auto Result = Wait(PI, /*Timeout=*/15, &Error);
      |                   ^~~~
In file included from llvm/unittests/CAS/OnDiskCASLoggerTest.cpp:15:
llvm/include/llvm/Support/Program.h:212:22: note: candidates are: `llvm::sys::ProcessInfo llvm::sys::Wait(const llvm::sys::ProcessInfo&, std::optional<unsigned int>, std::string*, std::optional<llvm::sys::ProcessStatistics>*, bool)'
  212 | LLVM_ABI ProcessInfo Wait(
      |                      ^~~~
In file included from llvm/include/llvm/Support/RWMutex.h:17,
                 from llvm/include/llvm/Support/ThreadPool.h:21,
                 from llvm/unittests/CAS/OnDiskCASLoggerTest.cpp:16:
llvm/include/llvm/Support/Threading.h:60:40: note:                 `llvm::InitStatus llvm::Wait'
   60 |   enum InitStatus { Uninitialized = 0, Wait = 1, Done = 2 };
      |                                        ^~~~
```

This patch removes the ambiguity, matching other uses.

Tested on `amd64-pc-netbsd10.1` and `x86_64-pc-linux-gnu`.
https://invent.kde.org/qt/clang/llvm/-/commit/102f572188c5dbf89d92bf533a4bdc4fed1d89bd

Git commit f91647a732298131e86fc4f465b20b80105f35d6 by GitHub (on behalf of Rainer Orth) on 27/07/2026 at 07:56..
[llvm][release] Build openmp as runtime in test-release.sh (#212111)

`test_release.sh` tries to build `openmp` as a project, which breaks the
build:

```
CMake Error at CMakeLists.txt:155 (message):

  Support for the LLVM_ENABLE_PROJECTS=openmp build mode has been removed.
  Please switch to the bootstrapping build

      cmake -S <llvm-project>/llvm -B build -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES=openmp

  or to the runtimes default build

      cmake -S <llvm-project>/runtimes -B build -DLLVM_ENABLE_RUNTIMES=openmp
```

This patch switches it to a runtime to match.

Tested on `x86_64-pc-linux-gnu`.
https://invent.kde.org/qt/clang/llvm/-/commit/f91647a732298131e86fc4f465b20b80105f35d6

Git commit 30a1b346f5c84504e5e998cb45e6551d21645e21 by GitHub (on behalf of Jared Wyles) on 27/07/2026 at 08:08..
[orc-rt] Add StringExtras::join from llvm/adt and tests (#212179)

Tests are appropriate to the use cases that will follow in a PR to
follow.
https://invent.kde.org/qt/clang/llvm/-/commit/30a1b346f5c84504e5e998cb45e6551d21645e21

Git commit 5c0a7212c8c8c46969489ae1ee85df1141a76bbb by GitHub (on behalf of Felipe de Azevedo Piovezan) on 27/07/2026 at 08:11..
[lldb][NFC] Add documentation for OperatingSystem methods (#210968)
https://invent.kde.org/qt/clang/llvm/-/commit/5c0a7212c8c8c46969489ae1ee85df1141a76bbb

Git commit 3deca05e273382820a164e7acf3efe0c0e441a23 by GitHub (on behalf of Cullen Rhodes) on 27/07/2026 at 08:20..
[AArch64] Remove unused GPR32arg register class (NFC) (#211778)

GPR32arg was added alongside GPR64arg in fcbec02ea6fb, but has no users
outside the register info generated by TableGen.

Assisted-by: codex
https://invent.kde.org/qt/clang/llvm/-/commit/3deca05e273382820a164e7acf3efe0c0e441a23

Git commit bb75638cb7fa090bb6e4c4c3e6e15e693a69b1d1 by GitHub (on behalf of Utkarsh Saxena) on 27/07/2026 at 08:23..
[LifetimeSafety][NFC] Refactor AccessPath and Loan representations
 (#180369)

This patch refactors the internal representations of `AccessPath` and
`Loan` to support path elements, preparing for field-sensitive and
interior-sensitive lifetime tracking.
* Introduces `PathElement` representing a field or interior dereference.
* Refactors `AccessPath` to contain a base and a list of `PathElement`s.
* Updates `Loan` and `LoanManager` to use the new `AccessPath`
structure.

---
Old PR description:

Refactor loan representation to use structured access paths, enabling
more precise borrow tracking and detection of use-after-invalidation.

Previously, loans were associated only with top-level storage (e.g., a
variable `x`, temporary `t`). This was insufficient for reasoning about
borrows of sub-objects (interior memory regions), such as fields (`x.f`)
or container elements (`vec[0]`), or for modelling views like
`string_view` which borrow the interior of an object.

We modify `AccessPath`, which now consists of a `base` (a _variable_,
_temporary_, or _placeholder_ for _parameters/'this'_) and a sequence of
`PathElements`. A `PathElement` can be a field access (`.field`) or an
interior access (denoted as `.*`), representing an unnamed interior
memory region of an object, like the character buffer of a
`std::string`.

High-level changes:
* `PathLoan` and `PlaceholderLoan` are merged into a single Loan class,
containing an `AccessPath`.
* **Path-Based Expiry**: `ExpireFact` is changed from expiring a single
loan to expiring an `AccessPath`. If `x` goes out of scope, any loan
whose path starts with `x` (e.g., loans to `x`, `x.field`, `x.field.*`)
is now considered expired. The checker uses `isPrefixOf` to detect this.
* **Path Extension in Flows**: `OriginFlowFact` now supports extending
loan paths:
* Field access like for expression `obj.field` extends loans to `obj`
into loans to `obj.field`.
* Owner-to-view conversions like `std::string_view s(str)` extend loans
to `str` into loans to `str.*`.
* **Invalidation**: Container invalidation methods (e.g.,
`vec.push_back()`) invalidate loans whose path is a strict extension of
the container's path (e.g., loans to `vec.*` but not loans to `vec`).
The checker uses `isStrictPrefixOf`.
* **Move-Tracking**: Moves are now tracked based on path prefixes via
`isPrefixOf`.

This refactoring enables detection of use-after-invalidation bugs for
STL containers specially when the container appears as fields.
https://invent.kde.org/qt/clang/llvm/-/commit/bb75638cb7fa090bb6e4c4c3e6e15e693a69b1d1

Git commit d211ecfc817f73e1395a0dc32e45b84de7b9bdb3 by GitHub (on behalf of ioana ghiban) on 27/07/2026 at 08:32..
Add TOSA -> EmitC tests for MLGO mock models (#211833)

These tests are the first step towards monitoring the recently enabled
TOSA -> EmitC path that ML optimization models will switch to, for a
fully in-tree, framework free serving alternative.

For simplicity, yet testing the core functionality, these tests don't
use production models, but rather in-tree mock models, generated by
these scripts:

[llvm/lib/Analysis/models/gen-regalloc-eviction-test-model.py](https://github.com/llvm/llvm-project/blob/main/llvm/lib/Analysis/models/gen-regalloc-eviction-test-model.py)
/

[llvm/lib/Analysis/models/gen-inline-oz-test-model.py](https://github.com/llvm/llvm-project/blob/main/llvm/lib/Analysis/models/gen-inline-oz-test-model.py)
\+
[llvm/lib/Analysis/models/saved-model-to-tflite.py](https://github.com/llvm/llvm-project/blob/main/llvm/lib/Analysis/models/saved-model-to-tflite.py)
+
[tosa-converter-for-tflite](https://www.piwheels.org/project/tosa-converter-for-tflite/)

> Note: `saved-model-to-tflite.py` renames the TFLite converted
SavedModel function to `main()`, which causes `clang` errors. Changing
this behaviour requires interventions in Tensorflow, which are out of
scope. Therefore, the functions were manually renamed.

> Note: The includes passed by argument to `clang` should have been
handled by EmitC. This only becomes a problem when compiling these
models standalone. Embedding the models in LLVM does not cause issues.
Nonetheless, future work will ensure `ConvertToEmitC` includes required
libraries for these ops.
https://invent.kde.org/qt/clang/llvm/-/commit/d211ecfc817f73e1395a0dc32e45b84de7b9bdb3

Git commit 3b6e754c0a048f034d7241a4eac6ccc8b3d0134c by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 08:45..
clang/AMDGPU: Rename amdgcn triples to amdgpu in cc1 tests (14) (#212053)

Replace the legacy amdgcn architecture name with amdgpu in various
test triples. This set of updates covers cases that did not have
a set -target-cpu.

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

Git commit 2d289b24a9f99c4357d8783c2d4f25fa46ef619a by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 08:45..
clang/AMDGPU: Migrate clang-linker-wrapper tests to amdgpu triples (15) (#212054)

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

Git commit ed326421d27ea8c38b11c84aa23bd655063cb4f9 by GitHub (on behalf of Utkarsh Saxena) on 27/07/2026 at 08:55..
[LifetimeSafety][NFC] Update Checker to use prefix comparison interfaces (#207519)

This patch switches the Checker's expiry and invalidation checks to use
`AccessPath::isPrefixOf` instead of equality (`==`).

Since all generated access paths are currently empty, `isPrefixOf` is
behaviourally identical to `==` (NFC). This prepares the checker to
handle nested paths (fields and container interiors) in subsequent
commits.
https://invent.kde.org/qt/clang/llvm/-/commit/ed326421d27ea8c38b11c84aa23bd655063cb4f9

Git commit 3ea8f78b1e07fcbca71a5dde852efb264130fc25 by Matt Arsenault on 27/07/2026 at 09:02..
RuntimeLibcalls: Emit all available impls for a libcall, not just one

The intent is RuntimeLibcalls should represent all functions that are
callable from the module, which may have contextually selectable alternatives.
Previously we had this warning since there was no mechanism to select which
one you want, and as a workaround the library call sets avoided adding the
variants which should nto be selected.

Now targets can use initLibcallLoweringInfo, so remove the warning to unblock
more libcall cleanups. Eventually initLibcallLoweringInfo should also be tablegen
driven.

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

Git commit a7543e65d6b24ff4ea2d8bee1cc676980f4bf76c by Matt Arsenault on 27/07/2026 at 09:02..
MSP430: Mark more generic libgcc functions as available (#210962)

The generic soft-float, conversion, comparison and integer helper
routines (__addsf3, __divli's __divsi3, __ashlsi3, ...) exist in the MSP430
libgcc port alongside the preferred __mspabi_* variants. They were previously
removed to force selection of the __mspabi_* names, back when only one
implementation per libcall could be recorded.

Stop hiding them: only __lshrsi3 stays excluded, since the MSP430 libgcc
port provides the 32-bit logical right shift solely under __mspabi_srll and
never defines a generic __lshrsi3.

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

Git commit f66fbbe16f8c647210af48be92646c98a18b4628 by Matt Arsenault on 27/07/2026 at 09:08..
Revert "MSP430: Mark more generic libgcc functions as available (#210962)"

This reverts commit a7543e65d6b24ff4ea2d8bee1cc676980f4bf76c.
https://invent.kde.org/qt/clang/llvm/-/commit/f66fbbe16f8c647210af48be92646c98a18b4628

Git commit 3fbaf8e5518a79ff43881ba797cfad90cf61dcbd by Matt Arsenault on 27/07/2026 at 09:09..
Hexagon: Stop excluding some generic compiler-rt functions from libcalls

RuntimeLibcalls should indicate any function that exists and is callable.
Historically the list of library functions was conflated with the library
functions which should be used, so the library definition was complicated
by excluding the overridden cases. My reading of the compiler-rt sources is
that the generically named functions are built alongside the __hexagon
prefixed variants. e.g., __divsi3 and __hexagon_divsi3 both exist.

It will simplify future libcall work the fewer special case target exclusions
there are, so allow the functions to be defined and apply the selection
preference for the __hexagon prefixed versions in LibcallLoweringInfo.

I do question why compiler-rt is built this way; why doesn't the hexagon
just replace the standard entrypoint names with the target implementations?

Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/3fbaf8e5518a79ff43881ba797cfad90cf61dcbd
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.