[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/usx95/04-07-interior-paths-and-invalidation'.
Changed from 3670a2bf0a5dbc864746381e9447e560c1998ee1 to 770603e5d2d441c74e2183ce95814609aabcc25f
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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/commit/ed326421d27ea8c38b11c84aa23bd655063cb4f9
Git commit e1a1f8f4e481b4a90898d9ed8e3952cd53e10ac0 by Utkarsh Saxena on 27/07/2026 at 08:55..
[LifetimeSafety] Support field-sensitivity in lifetime tracking
This patch enables field-sensitivity when tracking lifetimes of nested objects.
- FactsGenerator now generates `PathElement::getField` for `MemberExpr` accesses, mapping fields to loans.
- LoanPropagation now propagates field paths along flow facts, appending fields to base loans.
- Removes false-positive warnings in `invalidations.cpp` where modifications to one field were incorrectly reported as invalidating iterators/pointers to another field.
- Adds comprehensive unit tests checking nested field access and placeholder fields.
TAG=agy
CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23
https://invent.kde.org/qt/clang/llvm-project/-/commit/e1a1f8f4e481b4a90898d9ed8e3952cd53e10ac0
Git commit 770603e5d2d441c74e2183ce95814609aabcc25f by Utkarsh Saxena on 27/07/2026 at 08:55..
[LifetimeSafety] Support container interior paths and invalidations
This patch completes the implementation of path-sensitive lifetime tracking by supporting container interior paths (`.*`) and deep-nested invalidation.
- Enables `PathElement::getInterior` generation in `FactsGenerator` for GSL Owners and Views (e.g. member functions, function parameters, lambda captures).
- Removes bypass checks in `FactsGenerator::handleInvalidatingCall` to track container invalidation on fields.
- Updates `Checker` to use strict prefix comparison (`isStrictPrefixOf`) for container invalidations, ensuring invalidation of container contents (interior) correctly invalidates iterators but not other sibling fields.
- Reorganizes tests in `invalidations.cpp` by resolving duplicates and distributing them logically.
- Updates unit tests and sema tests with correct expectations for interior paths.
TAG=agy
CONV=2cfd8d00-18d7-4a03-8d78-2aba2f9a8f23
https://invent.kde.org/qt/clang/llvm-project/-/commit/770603e5d2d441c74e2183ce95814609aabcc25f