[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/arsenm/runtime-libcalls/riscv-sincos'.
Changed from 0000000000000000000000000000000000000000 to be93e05c5dd2e8d3b2ad6104af44e6b5c57bdaf2
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 37635388261c5d14ccfd36c18f932ed15728bb26 by GitHub (on behalf of Timm Baeder) on 09/08/2026 at 11:13..
[clang][bytecode][NFC] Fix some comment typos (#215078)
https://invent.kde.org/qt/clang/llvm/-/commit/37635388261c5d14ccfd36c18f932ed15728bb26
Git commit 1a08c406424935e6afeca30d47cd2c0c853f4a53 by GitHub (on behalf of Lang Hames) on 09/08/2026 at 12:02..
[ORC] Remove CallViaEPC.h and CallSPSViaEPC.h (#215086)
These provided EPC calls with pluggable serialization (EPCCaller /
EPCCall / SPSEPCCaller / SPSEPCCall). That role is now filled by the
RTBridge Proxy APIs (rt::Proxy + rt::sps::ProxySpec), and these headers
had no users other than their own unit test, so remove them along with
CallSPSViaEPCTest.
https://invent.kde.org/qt/clang/llvm/-/commit/1a08c406424935e6afeca30d47cd2c0c853f4a53
Git commit 68605173b720482fbbdb56c7200f8cdab1264bc0 by GitHub (on behalf of Alexey Bataev) on 09/08/2026 at 13:01..
[SLP][NFC]Add a test with the spills for loop invariants, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/215092
https://invent.kde.org/qt/clang/llvm/-/commit/68605173b720482fbbdb56c7200f8cdab1264bc0
Git commit 7e0a4eedf0193d28afe7cc892e0c06a93ae7a54f by GitHub (on behalf of Alexey Bataev) on 09/08/2026 at 13:13..
[SLP]Charge spill cost for loop-invariant gathers live over a call
Loop-invariant gathers hoisted to the preheader by
optimizeGatherSequence are live across calls in the loop body and need
spill/reload on targets with call-clobbered vector registers, but were
skipped by getSpillCost. Charge them like other call-crossing values.
Fixes #214555
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/215093
https://invent.kde.org/qt/clang/llvm/-/commit/7e0a4eedf0193d28afe7cc892e0c06a93ae7a54f
Git commit c3278d53c4c7dc69cd652c07762d1aee776d5fe5 by GitHub (on behalf of Yanzuo Liu) on 09/08/2026 at 13:15..
[clang-tidy] Remove deprecated `ClangTidyModuleRegistry.h` (#215055)
Close #173414.
https://invent.kde.org/qt/clang/llvm/-/commit/c3278d53c4c7dc69cd652c07762d1aee776d5fe5
Git commit a132a224751f4a1c8711678bebc446934680fcdc by GitHub (on behalf of Lang Hames) on 09/08/2026 at 13:48..
[ORC] Remove CallableTraitsHelper (#215089)
CallableTraitsHelper was only used by CallViaEPC.h / CallSPSViaEPC.h,
which were removed in the previous commit. With those gone it has no
remaining users, so remove it and its unit test.
https://invent.kde.org/qt/clang/llvm/-/commit/a132a224751f4a1c8711678bebc446934680fcdc
Git commit 0815853e800975d4987136fd860e290ed50171d3 by GitHub (on behalf of Shilei Tian) on 09/08/2026 at 13:51..
[AMDGPU][MC] Check availability of certain registers (#214973)
Fixes #214952.
https://invent.kde.org/qt/clang/llvm/-/commit/0815853e800975d4987136fd860e290ed50171d3
Git commit 20e75d44d9c03855b1a1adff9fb9f53c86213fce by GitHub (on behalf of Florian Hahn) on 09/08/2026 at 14:35..
[VPlan] Verify hoist point when hoisting previous value of a recurrence. (#215084)
tryToSinkOrHoistRecurrenceUsers processes the fixed-order recurrences of
a loop one at a time and updates the plan for each of them. Once the
plan has been updated for one recurrence, the properties
hoistPreviousBeforeFORUsers relies on may no longer hold for the
recurrences processed later
Convert dominance assertion that does not hold in all cases (added test
cases) to a bail out, to a crash on the added test.
PR: https://github.com/llvm/llvm-project/pull/215084
https://invent.kde.org/qt/clang/llvm/-/commit/20e75d44d9c03855b1a1adff9fb9f53c86213fce
Git commit 78e17e70bd52058add1b8bfaeafa696b1e4e4cf5 by GitHub (on behalf of 曾鈜寬 Tseng Hung Kuan) on 09/08/2026 at 15:03..
[mlir][arith][NFC] Make AtomicRMWKind switches exhaustive (#214622)
`getIdentityValueAttr` and `getReductionOp` in `ArithOps.cpp` each
handle 15 of
the 16 `AtomicRMWKind` cases and route the rest through a `default:`
label
carrying `// TODO: Add remaining reduction operations.`
That TODO cannot be completed. The only unhandled kind is `assign`,
which is
not a reduction: it has no identity element (`assign(x, e) = e`, so no
constant
`e` satisfies `assign(x, e) = x`) and no corresponding binary `arith`
op. It is
still a perfectly valid kind elsewhere — `memref.atomic_rmw` lowers it
to an
atomic `xchg` in `MemRefToLLVM.cpp` — it simply has no meaning for these
two
reduction helpers.
This patch spells `assign` out and drops the `default:`, which makes
both
switches exhaustive so that `-Wswitch` flags any kind added to the enum
later,
rather than leaving it to surface as a runtime diagnostic. The same
shape is
already used in `OpenACCUtilsReduction.cpp`.
**Why this is NFC.** The diagnostic moves below the switch rather than
into the
`assign` case, so every input behaves exactly as before. Keeping it
inside the
case would have dropped it for enum values outside the declared range,
which the
`default:` label used to catch.
**How the missing case was determined.** Not by reading: removing
`default:` and
compiling makes `-Wswitch` enumerate what is unhandled, and it reports
exactly
one value, `assign`, in each of the two switches.
**Why this went unnoticed.** The code slipped between both relevant
warnings:
`-Wswitch` is suppressed by the `default:` label, and
`-Wcovered-switch-default`
(which LLVM enables) does not apply because the switch is not in fact
fully
covered. This also brings the two switches in line with the coding
standard's
"Don't use default labels in fully covered switches over enumerations".
Tested with `ninja check-mlir` and targeted runs over the Arith,
Transforms,
Affine and OpenACC test directories.
This is my first contribution to LLVM — happy to adjust anything that
doesn't
match the project's conventions.
https://invent.kde.org/qt/clang/llvm/-/commit/78e17e70bd52058add1b8bfaeafa696b1e4e4cf5
Git commit 273eb20c454aee3d52c5aca9d7f0ad3b7a0753ec by GitHub (on behalf of Kazu Hirata) on 09/08/2026 at 15:34..
[mlir] Remove dead declarations in VectorRewritePatterns.h (#215083)
rewriteBitCastOfTruncI and rewriteExtOfBitCast were introduced on
September 18, 2023 in commits bf7c490ab73a22620c3d7790c09bfb11b669e51b
and 04ba475e85cb97e9006a130855b76479b5149f47, respectively, without
corresponding function definitions.
https://invent.kde.org/qt/clang/llvm/-/commit/273eb20c454aee3d52c5aca9d7f0ad3b7a0753ec
Git commit cd40fd754c7ad052ef5ffe133f548635881778e7 by GitHub (on behalf of Timm Baeder) on 09/08/2026 at 15:49..
[clang][bytecode] Use PtrView in finishGlobalRecurse() (#215088)
So we create fewer Pointer instances.
https://invent.kde.org/qt/clang/llvm/-/commit/cd40fd754c7ad052ef5ffe133f548635881778e7
Git commit f3aa3fb776bc7bee3f54acc125dfce43d01029c3 by GitHub (on behalf of Bagodiya) on 09/08/2026 at 15:51..
[InstCombine] Fold consecutive udivs into a single udiv (#214541)
Extend the existing `(X / C1) / C2 -> X / (C1 * C2)` fold to variable
divisors:
(X udiv Y) udiv Z -> X udiv (Y * Z) if Y * Z does not overflow
Uses willNotOverflowUnsignedMul to prove the product doesn't wrap.
Instruction count is unchanged but a division becomes a multiplication,
similar to the existing cttz-based udiv->lshr fold in visitUDiv.
One-use on the inner div, since otherwise we'd add a mul without
removing
the div. exact only propagates when both divides are exact.
Alive2: https://alive2.llvm.org/ce/z/qV6UJH
Fixes #132908
https://invent.kde.org/qt/clang/llvm/-/commit/f3aa3fb776bc7bee3f54acc125dfce43d01029c3
Git commit c4a3c977f1f9138fb69bf936e532c94f0bb8a3cd by GitHub (on behalf of Timm Baeder) on 09/08/2026 at 15:54..
[clang][bytecode] Handle invalid lambda static invokers better (#215091)
Instead of marking it as valid, mark it as constexpr, which means it
won't be valid unless it actually has valid code attached.
https://invent.kde.org/qt/clang/llvm/-/commit/c4a3c977f1f9138fb69bf936e532c94f0bb8a3cd
Git commit 9f7e2a35b593ec5ce5a7608410f4e8d79def735e by GitHub (on behalf of Simon Pilgrim) on 09/08/2026 at 16:06..
[X86] Add test coverage for #214676 (#215107)
https://invent.kde.org/qt/clang/llvm/-/commit/9f7e2a35b593ec5ce5a7608410f4e8d79def735e
Git commit 8825ce4c6c1213784075bc54909f837d36ab81fa by GitHub (on behalf of Lucas Mellone) on 09/08/2026 at 16:20..
[libc++][ranges] Mark LWG4242 as Resolved (#211568)
Closes https://github.com/llvm/llvm-project/issues/148224
The current implementation for the `ranges::distance(I&& first, S last)`
overload already sidesteps the `volatile first` with condition
`sized_sentinel_for<_Sp, __remove_cvref_t<_Ip>>`.
In the commit initially implementing `ranges::distance`
(c965d5448ecdf9a5513983862a78a2ba8f7fbab8), the condition was
`sized_sentinel_for<_Sp, __uncvref_t<_Ip>>` and `__uncvref_t` was just
renamed to `__remove_cvref_t` later. Also, given the overload has been
constrained with `sized_sentinel_for<_Sp, decay_t<_Ip>>`, the condition
always gives the same results as `!is_array_v<remove_reference_t<_Ip>>`
that is indicated by the resolution of LWG4242. So it can be considered
that LWG4242 was implemented in libc++ in LLVM 14.
This commit marks LWG4242 as Resolved and organises the test suite to
better represent both LWG3664 and LWG4242 tests in
`libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp`.
References:
- [LWG4242](https://cplusplus.github.io/LWG/issue4242)
- https://eel.is/c++draft/range.iter.op.distance
Follows-up: https://github.com/llvm/llvm-project/pull/210550
https://invent.kde.org/qt/clang/llvm/-/commit/8825ce4c6c1213784075bc54909f837d36ab81fa
Git commit 7078915abc5b6774d1ee197b16fc8156a4cfadc0 by GitHub (on behalf of Florian Hahn) on 09/08/2026 at 16:25..
[ConstraintElim] Avoid int64_t{1} << 63 when decomposing SHL. (#215058)
int64_t{1} << 63 is defined as INT64_MIN on C++20 and later. In C++17
and earlier, most implementations also already implement this as
INT64_MIN, and UBSan in Clang does not flag it as UB.
Bail out if the shift amount is >= 63, as we would incorrectly add a
negative coefficient to an unsigned constraint.
PR: https://github.com/llvm/llvm-project/pull/215058
https://invent.kde.org/qt/clang/llvm/-/commit/7078915abc5b6774d1ee197b16fc8156a4cfadc0
Git commit 5dbc0ee93fc50ba02ac944c3403ad160aecccee4 by GitHub (on behalf of Yingwei Zheng) on 09/08/2026 at 16:41..
[SimplifyCFG] Avoid scanning functions multiple times in `removeUnreachableBlocks` (#213416)
`markAliveBlocks` scans instructions first to convert unreachable
instructions into `unreachable`, then marks alive successors. When
`iterativelySimplifyCFG` makes some changes, `removeUnreachableBlocks`
will be called again and scan the whole function again, even if
`iterativelySimplifyCFG` is unlikely to introduce new interesting
patterns.
This patch adds a new option `SimplifyInsts` to
`removeUnreachableBlocks`. When it is disabled, `markAliveBlocks` only
performs a BFS traversal.
Although it is possible to cause regressions
(unreachable-multi-basic-block-funclet.ll), it doesn't affect the
optimization result in practice:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/877
Compile-time improvement (approx -0.05%):
https://llvm-compile-time-tracker.com/compare.php?from=6a898832ff382b1a288f9eb3bc5cd1f37d0fc29f&to=565856d52880ed13c697e921f498dc400bb76c17&stat=instructions:u
https://invent.kde.org/qt/clang/llvm/-/commit/5dbc0ee93fc50ba02ac944c3403ad160aecccee4
Git commit 277674574bce13c0899e3b4dfc358b513101ee3f by GitHub (on behalf of Kees Cook) on 09/08/2026 at 16:48..
[Driver][KCFI] Do not invoke cc1 in Driver tests (#215072)
Fixes commit a44318b125ff to avoid using cc1 in Driver tests. Moves
argument validation to CodeGen, and always uses -### for Driver tests.
Build tested on x86_64-only and aarch64-only.
https://invent.kde.org/qt/clang/llvm/-/commit/277674574bce13c0899e3b4dfc358b513101ee3f
Git commit 7c5c13003128d24142407bcfbaf1e951d22e3443 by GitHub (on behalf of Timm Baeder) on 09/08/2026 at 16:57..
[clang][bytecode][NFC] Remove an unused include (#215113)
https://invent.kde.org/qt/clang/llvm/-/commit/7c5c13003128d24142407bcfbaf1e951d22e3443
Git commit be93e05c5dd2e8d3b2ad6104af44e6b5c57bdaf2 by Matt Arsenault on 09/08/2026 at 17:01..
RuntimeLibcalls: Add sincos to the RISCV runtime libcall set
Inspection of the glibc sources suggests this is generically
available, with the target variance being for long double support.
The set of library functions is a large historical mess I'm attempting
to untangle. The traditional system had a large set of defaulted calls,
but sincos was a case which was explicitly enabled, and I'm assuming
riscv just never got around to adding it. It will be easier to
reorganize the library functions if synthetic architectural glibc
variance is eliminated.
Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/be93e05c5dd2e8d3b2ad6104af44e6b5c57bdaf2