[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/ritter-x2a/06-17-_rfc_langref_specify_that_the_accessed_bytes_of_concurrent_atomics_must_be_either_disjoint_or_the_same'. Changed from b64be89ff86ab4fbf03ebb389bbaf03c72d64919 to 56e13dc6b06516cad33d4c0dd389b94b517ec0e5 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 32819927e0c02662a5c8aae252997748cdc94962 by GitHub (on behalf of Florian Hahn) on 19/07/2026 at 17:46.. [VPlan] Retire LVP::hasTailFolded (NFC). (#210598) LVP::hasTailFolded incldued an assert that hasTailFOlded matches the VPlan version. No divergences surfaced, so remove the assert as planned. https://invent.kde.org/qt/clang/llvm-project/-/commit/32819927e0c02662a5c8aae252997748cdc94962 Git commit dae991a55eacb4f3c3382f3cba2897ceb43e1725 by GitHub (on behalf of Justin Lebar) on 19/07/2026 at 18:19.. [AA] Use the cmpxchg merged ordering in getModRefInfo (#210545) When a cmpxchg's address is NoAlias with the queried location, getModRefInfo still reports sync effects if the cmpxchg is stronger than monotonic, since an ordered operation constrains code motion around locations it never accesses. But a cmpxchg op has two atomic orderings, and getModRefInfo looked only at one of them. Change it so we check the merged ordering, i.e. the stronger of the two. https://invent.kde.org/qt/clang/llvm-project/-/commit/dae991a55eacb4f3c3382f3cba2897ceb43e1725 Git commit ae023494fba615bb1c75292f93e4521cfe7068b5 by GitHub (on behalf of Alexey Bataev) on 19/07/2026 at 19:00.. [SLP]Add umax/umin/smax/smin as main opcodes for copyables Added umax/umin/smax/smin intrinsics in for copyables support. Reviewers: hiraditya, bababuck, RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/209326 https://invent.kde.org/qt/clang/llvm-project/-/commit/ae023494fba615bb1c75292f93e4521cfe7068b5 Git commit 6bcdcb39c57ea926d3082ec3ecae74bf59b4658e by GitHub (on behalf of Jonas Devlieghere) on 19/07/2026 at 20:58.. [DWARFLinker] Make synthetic type names deterministic under threading (#209553) https://invent.kde.org/qt/clang/llvm-project/-/commit/6bcdcb39c57ea926d3082ec3ecae74bf59b4658e Git commit 598f15297528855682dcf381575a9c14a7faabc3 by GitHub (on behalf of Florian Hahn) on 19/07/2026 at 21:51.. [ConstraintElim] Fix integer overflow when negating constraint (#210627) Negating a coefficient (e.g. INT64_MIN) can overflow; skip adding the inverted constraint if it wraps. Fixes an UBSan failure for the added test. https://invent.kde.org/qt/clang/llvm-project/-/commit/598f15297528855682dcf381575a9c14a7faabc3 Git commit 01683dbe7e2071e8cc3aa2874e623259079aa1ae by GitHub (on behalf of Lang Hames) on 19/07/2026 at 23:41.. [orc-rt] Replace RunWrapperCall with generalized Dispatch (#210591) RunWrapperCall dispatched wrapper-function calls, but the Session also needs to dispatch continuations for results returned by the controller. Replace it with a generalized Dispatch mechanism (DispatchFn) that is handed an opaque Task for each unit of work, covering both. QueueingRunner is correspondingly simplified: it no longer knows anything about wrapper functions and just enqueues the Task it is given. Tests and the noDispatch helper are updated to the new interface. https://invent.kde.org/qt/clang/llvm-project/-/commit/01683dbe7e2071e8cc3aa2874e623259079aa1ae Git commit 16ffd27e3737c01cbabad6eed77b919dc977ad6c by GitHub (on behalf of Petr Hosek) on 20/07/2026 at 00:47.. [libcxx][NFC] Address -Wmicrosoft-cast in MSVC's exception_ptr (#210570) This was introduced as part of #94977. Rather than suppressing the warning with `#pragma clang diagnostic ignored`, we use `reinterpret_cast` to avoid the implicit conversion. https://invent.kde.org/qt/clang/llvm-project/-/commit/16ffd27e3737c01cbabad6eed77b919dc977ad6c Git commit c6672a6fdf1469d818d0ac8aaa2c31a0f18e729a by GitHub (on behalf of Benji Smith) on 20/07/2026 at 01:26.. [InstCombine] Fix invalid fshl -> lshr fold when shift is vector with constant zero lane (#210606) For vectors, this is not valid if a subset of the lanes are constant zero. Doing this fold introduces poison in those lanes. A similar fix was done for fshr in 46957a138dea339799059ea5bf032e40042ff185 however the same issue seems to apply to fshl Fixes https://github.com/llvm/llvm-project/issues/210605 https://invent.kde.org/qt/clang/llvm-project/-/commit/c6672a6fdf1469d818d0ac8aaa2c31a0f18e729a Git commit 5497f466e4fc634f91de043fc80a9cd8cc0f32a1 by GitHub (on behalf of TelGome) on 20/07/2026 at 02:35.. [RISCV][P-ext] Support Packed Narrowing Zip (#210040) https://invent.kde.org/qt/clang/llvm-project/-/commit/5497f466e4fc634f91de043fc80a9cd8cc0f32a1 Git commit 53c6ce165aef58e1885d574c1ec597d091c3c8fc by GitHub (on behalf of Hristo Hristov) on 20/07/2026 at 02:47.. [libc++][cmp][NFC] Fix: Empty namespaces should be avoided (#210624) Context: Including `<__utility/cmp.h>` causes: > cmp.h:25:1: error: Empty namespaces should be avoided. Move any checks around the namespace instead. [libcpp-avoid-empty-namespaces,-warnings-as-errors] https://invent.kde.org/qt/clang/llvm-project/-/commit/53c6ce165aef58e1885d574c1ec597d091c3c8fc Git commit 8a119310dae2fd67497c8611fc3208d16a36a2c3 by GitHub (on behalf of Tony Varghese) on 20/07/2026 at 03:34.. [clang][NFC] Bump the maximum number of Frontend diagnostics (#210345) The number of Frontend diagnostics in DiagnosticFrontendKinds.td is close to the DIAG_SIZE_FRONTEND limit of 200 (195 in use), and in-flight PRs adding frontend diagnostics (e.g. #187986) run into the static assert in DiagnosticIDs.cpp. Increase the limit to 300, following the precedent of #200948 which did the same for Sema diagnostics. Co-authored-by: Tony Varghese <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/8a119310dae2fd67497c8611fc3208d16a36a2c3 Git commit a64f7412551ae63a49dd8617f93ab89878288879 by GitHub (on behalf of Arseniy Obolenskiy) on 20/07/2026 at 05:22.. [SPIR-V][NewPM] Register SPIRVStructurizer with the new pass manager (#209965) https://invent.kde.org/qt/clang/llvm-project/-/commit/a64f7412551ae63a49dd8617f93ab89878288879 Git commit 9d2e7e6836beadbe63380f64c716df2c086ff2ea by GitHub (on behalf of Lukas) on 20/07/2026 at 06:39.. [FixIrreducible][UnifyLoopExits] Support switch statements (#206567) This builds on #149308, which implemented `callbr` support. The same approach of splitting multi-branch edges entering irreducible loops can be used for switches. It does not introduce any new switch statements, but alleviates the requirement of having to run the `LowerSwitch` pass first. This makes the pass usable for users other than AMDGPU, which can handle switch statements (e.g., WebAssembly, see [here](https://github.com/llvm/llvm-project/pull/181755#issuecomment-3936316307)). I'm also implementing a flag into the `ControlFlowHub` to support switches as well, for which I will open a separate PR. Currently the `ControlFlowHub` creates a branch-sled, mimicking a `switch` (a series of blocks consisting only of conditional branches, selectively entering an irreducible loop at a certain point or continuing to the next potential entry point). If the target can support switches, that should be the clear goal here, as shown in the image below. This PR implements the step from (a) to (b), whereas extending the `ControlFlowHub` represents the step from (b) to (c). ((c) to (d) already exists through `SwitchToLookup` and `SwitchToArithmetic`). <img width="1055" height="432" alt="image" src="https://github.com/user-attachments/assets/780b7894-1895-4137-8148-b2bbc7f73a8f" /> The test cases in `switch.ll` were adapted from the `callbr.ll` tests using an LLM to ensure equivalent coverage. I've manually reviewed the control flow and conditions for every case, and the final assertions were generated using `update_test_checks.py`. https://invent.kde.org/qt/clang/llvm-project/-/commit/9d2e7e6836beadbe63380f64c716df2c086ff2ea Git commit d8f7ce063cf04133f446e078e6f02126ac8dc79f by Fabian Ritter on 20/07/2026 at 06:41.. [RFC][LangRef] Specify that the accessed bytes of concurrent atomics must be either disjoint or the same So far, the LangRef hasn't been clear on the semantics of partially overlapping concurrent atomics in LLVM IR (specifically: a set of accesses marked as `atomic` that would be in a data race if they weren't `atomic` and not all of them access the exact same set of bytes). What loads read is defined in terms of individual bytes, but the memory ordering constraints are formulated closely to the C/C++ (and Java for `unordered`) memory model, where partially overlapping atomics are not possible. It's not obvious how concepts like C/C++'s per-location total modification order for `monotonic` accesses map to accesses that can partially overlap. While C/C++ relies on the modification order to ensure that atomics cannot tear (i.e., atomic reads return bytes from two or more atomic writes), our IR semantics (as written) currently does not guarantee this in the presence of partially overlapping accesses. This PR proposes a solution to this problem: It specifies that concurrent overlapping atomics must access the exact same set of bytes to act atomically. If they don't, they form a data race (i.e., participating loads read `undef` for affected bytes). This empowers the rest of the specification to imply that `monotonic` (or stronger) accesses do not tear. The PR also adds a constraint to ensure non-tearing for `unordered` atomic accesses. This solution implies that transformations that merge adjacent atomic loads/stores into wider atomic loads/stores are generally incorrect. https://invent.kde.org/qt/clang/llvm-project/-/commit/d8f7ce063cf04133f446e078e6f02126ac8dc79f Git commit 29a08b541c739bb671757d9312658f9209ac0573 by Fabian Ritter on 20/07/2026 at 06:41.. "un-simplify" the no-tearing constraint https://invent.kde.org/qt/clang/llvm-project/-/commit/29a08b541c739bb671757d9312658f9209ac0573 Git commit dcb93429a67e45c971a0b1b21ac1636bb33bada4 by Fabian Ritter on 20/07/2026 at 06:41.. Adapt Ralf's simpler no-tearing formulation. https://invent.kde.org/qt/clang/llvm-project/-/commit/dcb93429a67e45c971a0b1b21ac1636bb33bada4 Git commit 222d484e6820cb4ee665f6012aeb61c83108068c by Fabian Ritter on 20/07/2026 at 06:41.. Remove vague use of "defined" https://invent.kde.org/qt/clang/llvm-project/-/commit/222d484e6820cb4ee665f6012aeb61c83108068c Git commit 56e13dc6b06516cad33d4c0dd389b94b517ec0e5 by Fabian Ritter on 20/07/2026 at 07:36.. Explicitly restrict the atomic ordering constraints to perfectly overlapping accesses. https://invent.kde.org/qt/clang/llvm-project/-/commit/56e13dc6b06516cad33d4c0dd389b94b517ec0e5