[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/nerixyz/lldb-value-wrapper-1'. Changed from 0000000000000000000000000000000000000000 to 70ed456cd521a79543e728f93959cf59f0028a0e 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 ada3f57b9f2d2b26a354af2572d4fec4ace01185 by GitHub (on behalf of Gauarv Chaudhary) on 05/08/2026 at 17:19.. [WebAssembly][FastISel] Fix sext i1 to i64 with +sign-ext (#213734) (#214007) Fixes #213734 --- ## Summary At `-O0`, WebAssembly FastISel could miscompile programs that sign-extend an i1 value to i64 when the `+sign-ext` target feature is enabled. The bug was introduced in LLVM 23 by the FastISel sign-ext optimization (#179855). For `sext i1 to i64`, FastISel fell through its switch without emitting any instruction and returned an undefined register. Code that uses this pattern to adjust integer division results (such as floor division) could then compute the wrong answer. The issue reporter saw `-1` instead of the correct `-2`. This patch restructures `signExtend()` so i8, i16, and i32 still use their native WebAssembly sign-extension instructions, while i1 goes through the existing generic path: sign-extend in i32 via shifts, then `i64.extend_i32_s`. ## Test plan - [x] Added `i64_extend1_s` to `signext-inreg.ll` (covers FastISel and DAG, with and without `+sign-ext`) - [x] Verified issue repro: `llc repro.ll -O0` now returns `-2` (was `-1`); `--fast-isel=false` still returns `-2` - [x] `./bin/llvm-lit -j1 ../llvm/test/CodeGen/WebAssembly` <img width="3072" height="1920" alt="image" src="https://github.com/user-attachments/assets/0944887b-54b8-4e8d-8291-a64b03ff3786" /> --------- Signed-off-by: Gaurav Chaudhary <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/ada3f57b9f2d2b26a354af2572d4fec4ace01185 Git commit 6336cc85c5c061ead5da55d05203811df31de8af by GitHub (on behalf of Yonah Goldberg) on 05/08/2026 at 17:20.. [AtomicExpand][NVPTX] Fix integer vector cmpxchg loops and partword atomicrmw (#211497) After https://github.com/llvm/llvm-project/pull/190716, we now allow integer vector `atomicrmw`, and these should be expanded using `cmpxchg` loops. Currently, these are throwing an assert in `NVPTXISelLowering.cpp`: `assert(Ty->isIntegerTy() && "Ty should be integer at this point");` here I fix that. Second, we are handling partword integer vector `cmpxchg` loops (namely, `<2 x i8>` incorrectly in some cases. The first issue is for `Add` and `Sub`, where we optimize by performing the operation on the word size. This works because even if we overflow or underflow the partword, we handle this by masking back on the the other original loaded bits that we are not operating on. We can't, however, implement a `<2 x i8>` add using a scalar 32-bit add, because the vector variant overflows lane-wise, which can't be emulated with a scalar 32-bit add. I think there might be a way to implement it with a `<4 x i8>` add, but I'm not sure if it's worth it, maybe I'll add that in the future. For now, just go the normal route of extracting out the `<2 x i8>` from the word and performing the `Add` and `Sub` on `<2 x i8>`. Third, for `widenPartwordAtomicRMW`, this operates on `Or`, `Xor`, `And`, all of which the corresponding scalar operation works the same as the integer vector operation. So we can implement these using the scalar word-size operation, we were just missing a `bitcast` from the vector to the scalar. https://invent.kde.org/qt/clang/llvm-project/-/commit/6336cc85c5c061ead5da55d05203811df31de8af Git commit 56dc58dc2550fa23f4c812d28c30d3d34de2e772 by GitHub (on behalf of Yihan Wang) on 05/08/2026 at 17:22.. [Clang][Preprocessor] Unify header-name lookahead for import and include (#191004) Introduce Preprocessor::isNextPPTokenHeaderNameOrOneOf to centralize lookahead logic for header-name formation and token classification under ParsingFilename mode. Refactor handling of C++20 module/import contextual keywords and LexHeaderName to use the new helper, ensuring consistent behavior between `import` and `#include`. Try to form a valid header-name token during lookahead. If that fails and the next token is not one of the expected alternatives, treat it as not an `import` directive or as an invalid `#include` (missing <FILENAME>/"FILENAME"). ```cpp #define FOO foo> #include <:FOO ``` Now such cases are rejected as expected. Also adjusts peekNextPPToken to properly support dependency directive lexers. No functional change intended for valid code; improves correctness and consistency in edge cases involving header-name lexing. Fixes https://github.com/llvm/llvm-project/issues/190693. --------- Signed-off-by: yronglin <[email protected]> Signed-off-by: Yihan Wang <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/56dc58dc2550fa23f4c812d28c30d3d34de2e772 Git commit 4e725a2c756f32c4fe7512d9b30c6bf831e4d4a5 by GitHub (on behalf of Tom Stellard) on 05/08/2026 at 17:25.. workflows/upload-release-artifact: Make this action self-contained (#213828) The action now checks out its own files so calling workflows don't need to do this. This helps prevent mistakes where the calling workflow does not checkout the right files causing this action to fail. https://invent.kde.org/qt/clang/llvm-project/-/commit/4e725a2c756f32c4fe7512d9b30c6bf831e4d4a5 Git commit 41d5f4c5e6701938079b7ffc5748f612d151f51c by GitHub (on behalf of Nick Sarnie) on 05/08/2026 at 17:25.. [offload] Add CUDA_ROOT to path for unit tests (#214282) We need this to fix the test added in https://github.com/llvm/llvm-project/pull/212860. Right now it errors saying it can't find `ptxas`. We already have code doing this for the e2e tests, but we also need it for the unit tests. We had a similar fix for AMDGPU in https://github.com/llvm/llvm-project/pull/213149. Locally reproduced the issue and verified the fix. Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/41d5f4c5e6701938079b7ffc5748f612d151f51c Git commit e0d05a146f71403bd6bc913cf96cd84632b0cb55 by GitHub (on behalf of Dan Liew) on 05/08/2026 at 17:28.. [CodeGen][NFC] Split __sized_by tests into their own file and rename test cases (#213793) In future patches the coverage of the `__counted_by` family of attributes will be increased. To help with this, this patch refactors the existing test file. 1. Split `__sized_by` tests into their own file. In later patches files will be added for each attribute, so it makes sense for each attribute to have its own file. 2. Replace `testN` test case names with human-readable descriptions. Not all test cases that will be added in the future will apply to all attributes. If we kept using the `testN` naming convention it would leave odd gaps in the test numbering, because we try to keep what a test case tests consistent across files (i.e. `testN` would roughly test the same thing but with a different attribute). Using named test cases completely avoids this. https://invent.kde.org/qt/clang/llvm-project/-/commit/e0d05a146f71403bd6bc913cf96cd84632b0cb55 Git commit ec62b5ae07df222f06526d5260cf6baea28c7a30 by GitHub (on behalf of Carlos Seo) on 05/08/2026 at 17:37.. [flang][OpenMP] Fix wrong results for FORALL in a workshare construct (#211371) A FORALL in a workshare construct could produce wrong results non-deterministically. This is caused by two issues in the workshare lowering: 1. A FORALL whose left-hand side may overlap its right-hand side is lowered into two loop nests around a runtime value stack: the first nest evaluates each right-hand side and pushes it, the second one fetches the saved values back with a running counter. That counter lives in a fir.alloca which, since omp.parallel is an alloca scope, is thread private. The counter is read, incremented and written back from inside the omp.single generated for the fetch, because the incremented value is only available there. Only the thread which executed the omp.single therefore bumped its own copy of the counter, and all the other threads kept a stale one and refetched an already consumed element on the following iterations. Collect the thread local memory which is only updated by the thread executing an omp.single and broadcast it with copyprivate, so that the copies of the other threads stay in sync. As nowait and copyprivate are mutually exclusive on a single construct, nowait is no longer set when there is something to broadcast. 2. nowait was only suppressed when the immediately enclosing operation was loop-like. A masked FORALL introduces a fir.if inside the fir.do_loop, so the last omp.single or omp.wsloop of the fir.if body was given nowait even though the loop may run it again, and even though there was more work after the loop. Thread the information down the recursion instead, so that only the work which is really last in the whole omp.workshare region may rely on the barrier emitted at the end of that region. Fixes #209942 Fixes #209943 https://invent.kde.org/qt/clang/llvm-project/-/commit/ec62b5ae07df222f06526d5260cf6baea28c7a30 Git commit 9937874bd3312aaa4c60b9eedaffd55328f72cc3 by GitHub (on behalf of Maria Fernanda Guimarães) on 05/08/2026 at 17:38.. [clangd][HLSL] Add hover support for vector swizzle and matrix element access (#212741) Hovering over a vector swizzle expression (e.g. `.xyz`) or a matrix element access (e.g. `._m00`) previously produced no hover information, since ExtVectorElementExpr and MatrixElementExpr were not handled in getHoverContents(const Expr *E). This patch adds support for these expressions within `getHoverContents` by extracting the accessor name and resolved type for both node kinds. Fixes #212612 https://invent.kde.org/qt/clang/llvm-project/-/commit/9937874bd3312aaa4c60b9eedaffd55328f72cc3 Git commit 1e9d4f40360b0e4a67c7a0547da54a3c5caf62b6 by GitHub (on behalf of Kazu Hirata) on 05/08/2026 at 17:48.. [AsmPrinter] Use DenseMap instead of MapVector (NFC) (#214256) MBBSectionNumBlocks is accessed only via MapVector::operator[]. This patch changes its type to DenseMap to avoid populating the vector portion of MapVector. https://invent.kde.org/qt/clang/llvm-project/-/commit/1e9d4f40360b0e4a67c7a0547da54a3c5caf62b6 Git commit 9a793fd6d5ebd40bccd5d718c33f0a9dc29839c7 by GitHub (on behalf of Chinmay Deshpande) on 05/08/2026 at 17:52.. [AMDGPU] Autogen tests with new changes (#214286) Missed in https://github.com/llvm/llvm-project/pull/214040 https://invent.kde.org/qt/clang/llvm-project/-/commit/9a793fd6d5ebd40bccd5d718c33f0a9dc29839c7 Git commit 25e1c16ecb5e9c3a37f15f02b89a94abc9af24f6 by GitHub (on behalf of Jessica Clarke) on 05/08/2026 at 17:57.. [clang][Lex] Fix ambiguous reference to Token error (#214300) At least with GCC 11.4.0 this is deemed an error. Fixes: 56dc58dc2550 ("[Clang][Preprocessor] Unify header-name lookahead for import and include (#191004)") https://invent.kde.org/qt/clang/llvm-project/-/commit/25e1c16ecb5e9c3a37f15f02b89a94abc9af24f6 Git commit 990e4f95698694db8221f3939dac5f9979913e58 by GitHub (on behalf of Karim Alweheshy) on 05/08/2026 at 17:57.. [compiler-rt][Bazel] Support profile runtime on macOS and iOS (#214154) https://invent.kde.org/qt/clang/llvm-project/-/commit/990e4f95698694db8221f3939dac5f9979913e58 Git commit 70ed456cd521a79543e728f93959cf59f0028a0e by Nerixyz on 05/08/2026 at 17:58.. [lldb] Add tests for `lldb.value` https://invent.kde.org/qt/clang/llvm-project/-/commit/70ed456cd521a79543e728f93959cf59f0028a0e