[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/chinmaydd/fix-gisel-minimumnum-regbank'. Changed from 0000000000000000000000000000000000000000 to 59d697e94d62e2dd8a35098d6e5b8396e0df0653 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/-/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/-/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/-/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/-/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/-/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/-/commit/e0d05a146f71403bd6bc913cf96cd84632b0cb55 Git commit 59d697e94d62e2dd8a35098d6e5b8396e0df0653 by Chinmay Deshpande on 05/08/2026 at 18:30.. [AMDGPU][GlobalISel] RegBankLegalize rules for G_FMINIMUMNUM, G_FMAXIMUMNUM https://invent.kde.org/qt/clang/llvm/-/commit/59d697e94d62e2dd8a35098d6e5b8396e0df0653