[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/harrisonGPU/store-atomic-elementwise'.
Changed from cd7d5862150ccf67c5c11d3318bda9c5f3fdda14 to e7b0fbbf79f2393bc299b65f78bb8471eed7d6ab
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 c301b9901ae93fa91c9861ce13d508d53191a378 by GitHub (on behalf of Matthew Devereau) on 03/08/2026 at 11:13..
[AArch64][SVE] Fold nested boolean UMIN trees (#209234)
Fold redundant UMIN clamps in logical boolean reduction trees when all
operations use the same predicate.
https://invent.kde.org/qt/clang/llvm/-/commit/c301b9901ae93fa91c9861ce13d508d53191a378
Git commit 5ce177f6cd3672aae1791ba155b5438c9198a8ce by GitHub (on behalf of Harald-R) on 03/08/2026 at 11:16..
Fix llvm-mlir-use-after-erase findings (#210733)
Fix the following warnings identified by the `llvm-mlir-use-after-erase`
check from https://github.com/llvm/llvm-project/pull/210727:
```cpp
mlir/lib/Transforms/Utils/DialectConversion.cpp:2700:33: warning: operation 'op' is used after it was erased [llvm-mlir-use-after-erase]
2700 | curState, std::string(op->getName().getStringRef()) + " folder");
| ^
mlir/lib/Transforms/Utils/DialectConversion.cpp:2685:12: note: operation erased here
2685 | rewriter.replaceOp(op, replacementValues);
| ^
mlir/lib/Dialect/MemRef/Transforms/NormalizeMemRefs.cpp:440:29: warning: operation 'newOp' is used after it was erased [llvm-mlir-use-after-erase]
440 | Value newMemRef = newOp->getResult(resIndex);
| ^
mlir/lib/Dialect/MemRef/Transforms/NormalizeMemRefs.cpp:459:20: note: operation erased here
459 | newOp->erase();
| ^
mlir/lib/Dialect/MemRef/Transforms/NormalizeMemRefs.cpp:440:29: note: the use happens in a later loop iteration than the erase
440 | Value newMemRef = newOp->getResult(resIndex);
| ^
```
The warning at `NormalizeMemRefs.cpp:440` is resolved by breaking the
loop iteration after erasing the operation, similar to what is done at
line 306.
https://invent.kde.org/qt/clang/llvm/-/commit/5ce177f6cd3672aae1791ba155b5438c9198a8ce
Git commit 2ef2ab65e8622a81b060b96a2ed579816d01f03f by GitHub (on behalf of Kamlesh Kumar) on 03/08/2026 at 11:26..
[AArch64] Update tests with interleave intrinsics (#212312)
https://invent.kde.org/qt/clang/llvm/-/commit/2ef2ab65e8622a81b060b96a2ed579816d01f03f
Git commit d2b28a818981d9703f2ebf0eeeb5e1d9d77dec51 by GitHub (on behalf of Ramkumar Ramachandra) on 03/08/2026 at 11:37..
[ConstFold] Fold fixed-vectors in constantFoldIntrinsic (#213625)
This exposes an underlying bug in wasm.dot-folding, which we fix. The
motivation for this patch is to enable folding of get.active.lane.mask
in VPlan in a follow-up.
https://invent.kde.org/qt/clang/llvm/-/commit/d2b28a818981d9703f2ebf0eeeb5e1d9d77dec51
Git commit 3db0dd71c8579fb825bdd2c6148b53496e485375 by GitHub (on behalf of Manuel Carrasco) on 03/08/2026 at 11:44..
Implement support for NSDI DebugFunctionDefinition. (#211853)
This PR depends on the DebugFunction PR:
https://github.com/llvm/llvm-project/pull/211760. This PR implements
support for
[DebugFunctionDefinition](https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.html#DebugFunctionDefinition).
DebugFunctionDefinition must be emitted within the instruction sequence
of its corresponding OpFunction. The current implementation inserts
DebugFunctionDefinition immediately after the last OpVariable, if one
exists, or otherwise immediately after the first OpLabel. The goal is to
satisfy the following
[requirement](https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.html#_binary_form):
> DebugScope, DebugNoScope, DebugDeclare, DebugValue, DebugLine,
DebugNoLine, and DebugFunctionDefinition instructions may interleave
with instructions inside a function, but they must appear at valid
locations within a block as required by SPV_KHR_non_semantic_info. In
particular, they cannot appear before any OpPhi or function-level
variable declarations in a block, and they cannot appear after a merge
instruction.
To support this, I updated SPIRVAsmPrinter to notify the debug handler
whenever an instruction is emitted. The debug handler maintains a small
amount of state so it can detect when the last OpVariable or the first
OpLabel has been emitted and insert DebugFunctionDefinition at the
appropriate location.
https://invent.kde.org/qt/clang/llvm/-/commit/3db0dd71c8579fb825bdd2c6148b53496e485375
Git commit 6a7f6a02bb95a75c615cde3194ad77d776b869c5 by GitHub (on behalf of Benedek Kaibas) on 03/08/2026 at 11:50..
[analyzer] Implement BugReporterVisitor for UseAfterLifetimeEnd to trace lifetime source binding (#207052)
Currently the `UseAfterLifetimeEnd` checker can emit warnings, but those
warnings cannot clearly describe to which annotated parameter the return
value is actually bound. When multiple parameters are annotated, it is
unclear which one the return value is bound to. Using
`BugReporterVisitor` to trace back the nodes and emit a note that
explains where the lifetime of the annotated parameter (the source)
ended can be helpful for users.
***NOTE***: This PR is built on #205951. It should only be merged after
#205951 is merged.
Consider the following case:
```cpp
#include <stddef.h>
class Arena {
char buf[128];
char *buffer = buf;
size_t offset = 0;
public:
void *allocate(size_t size) [[clang::lifetimebound]] {
void *p = buffer + offset;
offset += size;
return p;
}
void reset() {offset = 0;}
};
void *arena_dangling() {
Arena arena;
void *p = arena.allocate(128);
arena.reset();
return p; // arena goes out of scope therefore p dangles
}
```
The `UseAfterLifetimeEnd` checker correctly detects this error and emits
path notes that trace where the value was bound and where its lifetime
ends:
```text
temp.cpp:21:3: warning: Returning value bound to 'arena' that will go out of scope [alpha.cplusplus.UseAfterLifetimeEnd]
21 | return p;
| ^~~~~~~~
temp.cpp:19:13: note: Value bound to 'arena' here
19 | void *p = arena.allocate(128);
| ^~~~~~~~~~~~~~~~~~~
temp.cpp:21:3: note: Lifetime of 'arena' ended here
21 | return p;
| ^~~~~~~~
1 warning generated.
```
The motivating example comes from here:
https://discourse.llvm.org/t/clang-static-analyzer-gsoc-2025-teach-the-clang-static-analyzer-to-understand-lifetime-annotations/84487/41?u=bkaibas01
https://invent.kde.org/qt/clang/llvm/-/commit/6a7f6a02bb95a75c615cde3194ad77d776b869c5
Git commit e328cfd8c20249f85838d56b0776380ea57cc30c by Harrison Hao on 03/08/2026 at 12:15..
[IR] Add elementwise modifier to atomic stores
https://invent.kde.org/qt/clang/llvm/-/commit/e328cfd8c20249f85838d56b0776380ea57cc30c
Git commit 7482a61b9ccc2a69c6210b2cba15f70a7642c87e by Harrison Hao on 03/08/2026 at 12:15..
Add mergeFunc elementwise test.
https://invent.kde.org/qt/clang/llvm/-/commit/7482a61b9ccc2a69c6210b2cba15f70a7642c87e
Git commit 678bb0c5132a67fa175f6575ddd08f26f443b5fe by Harrison Hao on 03/08/2026 at 12:15..
Update doc
https://invent.kde.org/qt/clang/llvm/-/commit/678bb0c5132a67fa175f6575ddd08f26f443b5fe
Git commit e7b0fbbf79f2393bc299b65f78bb8471eed7d6ab by Harrison Hao on 03/08/2026 at 14:52..
Update for comments.
https://invent.kde.org/qt/clang/llvm/-/commit/e7b0fbbf79f2393bc299b65f78bb8471eed7d6ab