[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/c8ef/generator'.
Changed from 1ff848a50ffd72bf671d7d2bc4bca1541c8ccf01 to 1dc74468ad2cc1b00ba979b52205f5873a021ddc
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 06bbd269cb8863279c235f07c8e08d6ed2744db8 by GitHub (on behalf of Anshil Gandhi) on 22/07/2026 at 05:14..
[SandboxVec][Scheduler] Refill ready list during topdown scheduling (#211046)
Visit nodes which are ready according to the direction of scheduling.
https://invent.kde.org/qt/clang/llvm-project/-/commit/06bbd269cb8863279c235f07c8e08d6ed2744db8
Git commit e8b66ff170f99c6cf275444f22a3aded65ef0bc1 by GitHub (on behalf of Moazin K.) on 22/07/2026 at 05:22..
[OpenACC] Accept funcs with `acc.specialized_routine` in `acc::isValidSymbolUse` (#211111)
`ACCRoutineLowering` generates device side specialized version of
routines that have the `acc.specialized_routine` attribute. Those are
expected to be offloaded and therefore are valid symbol uses.
Assisted-by: Claude Code
https://invent.kde.org/qt/clang/llvm-project/-/commit/e8b66ff170f99c6cf275444f22a3aded65ef0bc1
Git commit e265437156dead1018ce826f2773face65d85810 by GitHub (on behalf of Rajat Bajpai) on 22/07/2026 at 05:33..
[NVPTX][Rubin] Add Rubin baseline support (#210646)
This change adds Rubin (sm_107) baseline support in NVPTX backend.
https://invent.kde.org/qt/clang/llvm-project/-/commit/e265437156dead1018ce826f2773face65d85810
Git commit 15363db58bba0186573fee8afc9226dd38b8f507 by GitHub (on behalf of firmiana) on 22/07/2026 at 06:01..
[DebugInfo] Update assigned DWARF language codes (#210884)
Update LLVM's DWARF language tables to match the current
[`DW_LANG_*`](https://dwarfstd.org/languages.html) and
[`DW_LNAME_*`](https://dwarfstd.org/languages-v6.html) registries.
Add the missing `DW_LANG_*` and `DW_LNAME_*` constants, update the
corresponding language-version mappings, and expose the new `DW_LANG_*`
codes through the LLVM C API.
https://invent.kde.org/qt/clang/llvm-project/-/commit/15363db58bba0186573fee8afc9226dd38b8f507
Git commit c2a39ea72dc1853e3fc2dfe71d2959fbcfcc56d2 by GitHub (on behalf of Henry Jiang) on 22/07/2026 at 06:02..
[dsymutil] collect pseudoprobe sections from debug map into __LLVM segment (#206817)
Introduce a new `PseudoProbeLinker` in `dsymutil` that collects
`__probes/__probe_descs` sections from the debug map objects and merges
the sections and places the probes metadata under
`Contents/Resources/Profiling/{pseudo_probes[-<arch>],pseudo_probe_descs[-<arch>]}`
respectively.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c2a39ea72dc1853e3fc2dfe71d2959fbcfcc56d2
Git commit 49f5065973b8ec8496d5a1d9c58b2100ba48b01c by GitHub (on behalf of firmiana) on 22/07/2026 at 06:03..
[DebugInfo] Fix Fortran 2018 default array lower bound (#210885)
The [DWARF language registry](https://dwarfstd.org/languages.html)
defines the default array lower bound for `DW_LANG_Fortran18` as one,
but LLVM records it as zero. Update the language table to match the
registry.
https://invent.kde.org/qt/clang/llvm-project/-/commit/49f5065973b8ec8496d5a1d9c58b2100ba48b01c
Git commit e20242130eeaa668e5c782643d4afed0b0ab2a6b by GitHub (on behalf of Jerry Zhang Jian) on 22/07/2026 at 06:17..
[RISCV] Preserve call-preserved reg mask for LPAD-aligned calls (#210868)
RISCVISelDAGToDAG's lowering of RISCVISD::LPAD_CALL / LPAD_CALL_INDIRECT
to PseudoCALLLpadAlign / PseudoCALLIndirectLpadAlign (introduced in
#177515) only copied the callee, lpad label, chain, and glue operands,
dropping the argument-register and register-mask operands in between.
Without the register-mask operand, the register allocator treats these
calls as clobbering nothing but ra, so values live across the call are
not spilled/reloaded even though the callee is free to clobber
caller-saved registers. This caused a miscompile where a pointer held
live across a call to getcontext() (a returns_twice function) was
corrupted after the call returned, leading to a SIGSEGV in
llvm-test-suite's siod test.
Fix the operand copy to include the argument-register and register-mask
operands, matching the pseudo-instruction operands of a regular
PseudoCALL/PseudoCALLIndirect.
Signed-off-by: Jerry Zhang Jian <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/e20242130eeaa668e5c782643d4afed0b0ab2a6b
Git commit 91406e8dff2b1578ff4dd22593ea1a8039b074a4 by GitHub (on behalf of Haowei) on 22/07/2026 at 06:23..
Remove debug leftovers (#211068)
a04f87fdd9b59c6089bf731c669c6f149208363c merged with some debug print
leftovers. This patch removes them.
https://invent.kde.org/qt/clang/llvm-project/-/commit/91406e8dff2b1578ff4dd22593ea1a8039b074a4
Git commit 33928f632158afe0f4b23e2b9f9cd70e4b5520fa by GitHub (on behalf of Fangrui Song) on 22/07/2026 at 06:45..
[LoopInfo] Make getSmallestCommonLoop O(depth). NFC (#211175)
getLoopDepth is itself an O(depth) parent walk.
https://invent.kde.org/qt/clang/llvm-project/-/commit/33928f632158afe0f4b23e2b9f9cd70e4b5520fa
Git commit 860cb62914d3fb2d37b561dc5eee7bd1b65dfc9e by GitHub (on behalf of Kamlesh Kumar) on 22/07/2026 at 07:01..
[X86] narrow the check scope to function NFC (#210917)
https://invent.kde.org/qt/clang/llvm-project/-/commit/860cb62914d3fb2d37b561dc5eee7bd1b65dfc9e
Git commit b77f99775e0a8e5d9b0aa2960fcee851fcb23d7d by GitHub (on behalf of David Green) on 22/07/2026 at 07:08..
[AArch64] Update ctpop cost tests. NFC (#211184)
https://invent.kde.org/qt/clang/llvm-project/-/commit/b77f99775e0a8e5d9b0aa2960fcee851fcb23d7d
Git commit db369a6a6aa336806debcf2e110a41fe3e78b0cf by GitHub (on behalf of paperchalice) on 22/07/2026 at 07:09..
[AMDGPU][NewPM] Run UniformityInfoAnalysis inside AMDGPUISelDAGToDAGPass (#211174)
Just move it from pipeline to isel pass, NFC.
https://invent.kde.org/qt/clang/llvm-project/-/commit/db369a6a6aa336806debcf2e110a41fe3e78b0cf
Git commit 7c72a115065720e2b6ad38bdee91ea3c5e580cfb by GitHub (on behalf of Fangrui Song) on 22/07/2026 at 07:24..
PerThreadBumpPtrAllocator: remove dependency on getThreadIndex (#209687)
PerThreadAllocator, only used by DWARFLinker, indexes a fixed
getThreadCount()-sized array by `getThreadIndex()`, so it only works on
ThreadPoolExecutor threads (and asserts elsewhere). It false-shares
adjacent threads' bump pointers.
Instead, create each thread's sub-allocator lazily on first use, keyed
by a process-unique instance id in a thread-local cache, with the
instance owning the heap-allocated sub-allocators. This drops the
getThreadIndex()/getThreadCount() dependence, unblocking the caller
participation change for `parallelFor`.
mlir::ThreadLocalCache solves the same problem by keying a per-thread
map on the instance pointer and reclaiming a thread's slot when an instance
dies, but costs a map lookup and shared_ptr bookkeeping per allocation; instances
here are few and short-lived, so an id-indexed vector is cheaper. The counter
behind claimPerThreadAllocatorId is defined out of line in Allocator.cpp
so Windows DLLs cannot duplicate it and alias two instances' sub-allocators.
Aided by Claude Fable 5
https://invent.kde.org/qt/clang/llvm-project/-/commit/7c72a115065720e2b6ad38bdee91ea3c5e580cfb
Git commit 06e24fa50e58068c6c9dabde2d38a1cdfd34b50d by GitHub (on behalf of Cullen Rhodes) on 22/07/2026 at 07:27..
[AArch64][SME] Scan function attributes once in SMEAttrs (NFC) (#210924)
Profiling sqlite on aarch64-O3 shows ~0.5% of compile-time is spent in
the SMEAttrs constructor, mostly from the inliner's areInlineCompatible
and getInlineCallPenalty hooks.
SMEAttrs does 14 string attribute lookups. Invert this to instead walk
the function attributes once and build the mask with a StringSwitch.
Improves CTMark geomean -0.20%, sqlite -0.40%.
https://llvm-compile-time-tracker.com/compare.php?from=4aa1590ad66a1bff9b3c74b4a2c7366473015b4c&to=37796f0f92101225e2fb5b6924acfdb5cba1b672&stat=instructions%3Au
Assisted-by: codex
https://invent.kde.org/qt/clang/llvm-project/-/commit/06e24fa50e58068c6c9dabde2d38a1cdfd34b50d
Git commit 9925bcf8d945b16546d9e0748d3828fa3cc6d7e7 by GitHub (on behalf of Tyler Chen) on 22/07/2026 at 07:42..
[RISCV][NFC] Fix WADD comment typo. (#211177)
https://invent.kde.org/qt/clang/llvm-project/-/commit/9925bcf8d945b16546d9e0748d3828fa3cc6d7e7
Git commit c75267c8ef60e2f61e2c0d9e029fca9221554baf by GitHub (on behalf of Mariusz Sikora) on 22/07/2026 at 07:47..
[AMDGPU] Builtins and intrinsics for v_cvt_scalef32_pk32_(fp|bf)6_f32 (#210713)
- builtins with documentation
- instructions
- new subtarget feature only for gfx13
- GlobalISel RegBankLegalize rules
- tests
https://invent.kde.org/qt/clang/llvm-project/-/commit/c75267c8ef60e2f61e2c0d9e029fca9221554baf
Git commit ff90624360a1a55289a1de147a2ec8c504de7aaa by GitHub (on behalf of Simon Pilgrim) on 22/07/2026 at 07:52..
[InstCombine] foldVectorBinop - don't fold length changing shuffles across binops (#211115)
As discussed on #210948 - the "Op(shuffle(V1, Mask), shuffle(V2, Mask))
-> shuffle(Op(V1, V2), Mask)" fold should only occur in InstCombine if
the shuffle is "like for like" and not length changing.
Leave the more general fold to an upcoming VectorCombine patch which can
handle the cost:benefit analysis, including multiuse shuffles.
https://invent.kde.org/qt/clang/llvm-project/-/commit/ff90624360a1a55289a1de147a2ec8c504de7aaa
Git commit e878b123ee0db40a16d62c421f6ea59a7ec59581 by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 07:54..
[AMDGPU] Do not copy noundef onto a widened kernarg load (#211181)
Sub-dword args are widened to an i32 load whose extra bits belong to a
sibling kernarg or padding, so noundef on the original arg does not
cover the full loaded value
Only copy it when the load type matches the argument type, mirroring the
existing range/nofpclass guards
https://invent.kde.org/qt/clang/llvm-project/-/commit/e878b123ee0db40a16d62c421f6ea59a7ec59581
Git commit b0c2dc0cf8f8de2fd2f0306deea0c5fcd07282da by GitHub (on behalf of Kareem Ergawy) on 22/07/2026 at 07:55..
[flang][PFT-to-MLIR] allocate missing body blocks in `createEmptyRegionBlocks` (#210950)
Problem
-------
Under -mmlir --wrap-unstructured-constructs-in-execute-region, branch
lowering hit a null Evaluation::block for body statements inside an
OpenMP loop. genMultiwayBranch tripped
Bridge.cpp: Assertion `block && "missing multiway branch block"' failed
and genFIR(SelectCaseStmt) tripped
Bridge.cpp: Assertion `e->block && "missing CaseStmt block"' failed
The wrap machinery decides an unstructured DO/IF is wrappable and stops
propagating its isUnstructured flag to the enclosing OpenMPConstruct.
The OMP construct's isUnstructured stays false, so the top-level
createEmptyBlocks treats it as a structured directive with nested
evaluations — it allocates only the OMP construct's first-nested block
and does not recurse into the DO body. Then OMP loop lowering takes
over the body via createEmptyRegionBlocks, which was written to
*re-parent* pre-existing blocks into its region and silently skipped
evals whose .block was still null. Body targets (e.g. label 17's
ContinueStmt, or a SelectCase's CaseStmts) therefore had no block when
the consumer read evalOfLabel(...).block, tripping the asserts.
Solution
--------
Restore the invariant that consumers of eval.block can trust it at
lowering time. In createEmptyRegionBlocks (DirectivesCommon.h), when an
eval has isNewBlock but no .block, create one in the current region
alongside the existing re-parenting path. The OMP lowering path then
finds pre-allocated blocks for the whole body — matching the state that
existed before the wrap feature changed isUnstructured propagation —
without any lazy-allocation logic at consumer sites.
Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/b0c2dc0cf8f8de2fd2f0306deea0c5fcd07282da
Git commit cfc921621a05b94be5742796fdb2ba5a58979e95 by GitHub (on behalf of Ömer Sinan Ağacan) on 22/07/2026 at 07:56..
[InstCombine] Optimize GEP comparisons with constant offsets (#208547)
https://alive2.llvm.org/ce/z/dCmoVn
In a GEP comparison with the same base like
%1 = gep i8, @base, i64 a
%2 = gep i8, @base, i64 b
%cmp = icmp ... %1, %2
When we know that the offsets cross the base's alignment boundary the
same
number of times, it means that either both of them will overflow, or
none of
them will. In these cases we can turn the comparison into offset
comparison:
%cmp = icmp ... a, b
https://invent.kde.org/qt/clang/llvm-project/-/commit/cfc921621a05b94be5742796fdb2ba5a58979e95
Git commit ca52c1b3abbadf829598872b7dded2bca2fd50c0 by GitHub (on behalf of Ryotaro Kasuga) on 22/07/2026 at 07:57..
[LoopInterchange] Prevent the transformation stage from stopping partway (#205564)
As mentioned in #205562, there are cases where the transformation stage
in LoopInterchange stops partway through, and the output IR ends up
partially modified rather than interchanged. Notably, the interchange is
recognized as having succeeded internally even in such cases. Apparently
this happens not to cause any miscompiles at the moment, but it is
clearly dangerous.
This patch removes the early exit in the transformation phase. We cannot
simply remove it, which checks for the presence of a unique successor of
the inner loop header, because there is a case where the header actually
has multiple successors. To avoid that situation, this patch changes the
code to call SplitBlock on the inner loop header unconditionally.
The test changes fall into two categories: some are simply due to newly
added redundant BBs. In the others, the expected interchanges are now
applied as intended, whereas previously the transformation failed and
the interchanges were not applied before this patch.
https://invent.kde.org/qt/clang/llvm-project/-/commit/ca52c1b3abbadf829598872b7dded2bca2fd50c0
Git commit 948c4a2fc3df17eeb44337d590d669d0150aecbb by GitHub (on behalf of Cullen Rhodes) on 22/07/2026 at 08:04..
[AArch64][GlobalISel] Select vector element extract into GPR (#210030)
Prototyping a new minimal type-based approach to RegBankSelect (#199040)
for compile-time purposes exposed various gaps in instruction selection
when not using the existing RegBankSelect pass. These manifested as new
fallbacks when compiling the IR dataset from [1].
This patch teaches instruction selection to handle extracts of scalar
i8/i16/i32 into GPR directly. This will prevent new fallbacks being
introduced when a new type-based RBS pass is added.
The test cases are extracted from [1].
Assisted-by: codex
[1] https://davemgreen.github.io/gisel.html
https://invent.kde.org/qt/clang/llvm-project/-/commit/948c4a2fc3df17eeb44337d590d669d0150aecbb
Git commit c23ad1b869cdcec16275304e1f0b1d419fe35ae9 by GitHub (on behalf of Nikolas Klauser) on 22/07/2026 at 08:22..
[libc++] Remove {Pause,Resume}Timing from fast push_back benchmarks (#209130)
These benchmarks are expected to run for a very short time, and
`{Pause,Resume}Timing` should only be used when operations are expected
to take a long time. Removing them reduces the amount of noise in these
benchmarks.
Fixes #208719
https://invent.kde.org/qt/clang/llvm-project/-/commit/c23ad1b869cdcec16275304e1f0b1d419fe35ae9
Git commit 3e009b9276206769da69b3a3730a19ddc6abefa6 by GitHub (on behalf of Mel Chen) on 22/07/2026 at 08:35..
[VPlan] Simplify EVL strided load match in optimizeMaskToEVL. nfc (#211193)
https://invent.kde.org/qt/clang/llvm-project/-/commit/3e009b9276206769da69b3a3730a19ddc6abefa6
Git commit cf7a6122a1247353ba29f5384885de9e42bd1e14 by GitHub (on behalf of Ebuka Ezike) on 22/07/2026 at 08:58..
[lldb-dap] Migrate the Completions tests (#210829)
Drop the Scenario dataclass as it is now clear what we are testing for.
https://invent.kde.org/qt/clang/llvm-project/-/commit/cf7a6122a1247353ba29f5384885de9e42bd1e14
Git commit 8beb627f6c59900cc080c9dba221dd197d6416c4 by GitHub (on behalf of Georgiy Samoylov) on 22/07/2026 at 09:06..
[lldb] Add array decaying (#210918)
In C, an array name in an expression "decays" into a pointer to its
first element. LLDB did not honor this: commands like `memory read
my_array` did not work correctly, because an aggregate type has no
scalar value, so trying to obtain one (ResolveValue/GetValueAsUnsigned)
failed.
This MR adds explicit array decay: for array-typed expressions, the
address of the array object itself is used instead of its (non-existent)
scalar value.
https://invent.kde.org/qt/clang/llvm-project/-/commit/8beb627f6c59900cc080c9dba221dd197d6416c4
Git commit b9ba0be057eb0f1989635376a267f5cb6ca3060c by GitHub (on behalf of Benjamin Maxwell) on 22/07/2026 at 09:12..
[SDAG] Specify unsigned compares for loop.dependence.{war|raw} masks (#197437)
Previously, the LangRef was ambiguous about the sign of comparisons used
to create the loop dependence masks. This resulted in the expansion not
following the intended semantics for extreme inputs.
For example, %ptrA = 0, %ptrB = UINT_MAX, should result in a (RAW) mask
with all lanes active. However, previously we'd do ``(%elementSize *
lane) < abs(%ptrB - %ptrA)``, which due to incorrectly using signed
arithmetic would result in a mask with a single lane active as
``abs(%ptrB - %ptrA)`` resulted in 1, not `UINT_MAX`. In other words,
``abs(%ptrB - %ptrA)`` should be ``unsigned-absolute-difference(%ptrA,
%ptrB)``.
Follow up to #188248.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b9ba0be057eb0f1989635376a267f5cb6ca3060c
Git commit 5205cd7e9e71321804ccc4f5eb805d42ce986216 by GitHub (on behalf of Kamlesh Kumar) on 22/07/2026 at 09:14..
[llvm-reduce] Tighten the check to count actual store NFC (#210933)
https://invent.kde.org/qt/clang/llvm-project/-/commit/5205cd7e9e71321804ccc4f5eb805d42ce986216
Git commit f07e2f1aabd1f62efd467ed397cb7b26ca60fb6d by GitHub (on behalf of Timothy Day) on 22/07/2026 at 09:22..
Thread Safety Analysis: Don't warn at joins that re-branch on a try-lock result (#209796)
Previously, when the result of a try-lock call is branched on more than
once, the paths between the branches would disagree on whether the
capability is held while remaining consistent at each branch. The analysis
then gave a false positive warning at the intermediate join:
mutex 'lock' is not held on every path through here
Create getTerminatorTrylockCall() helper from getEdgeLockset(); if the terminator
of a block branches on the result of a call to a try_acquire_capability-function
(perhaps negated or stored in a local variable), this helper returns that call and
its callee.
Use this new helper in getTerminatorTrylockCaps(), which will return the
capabilities acquired by a trylock; feed these capabilites to intersectAndWarn()
during a branch join, in order to avoid false positives.
Soundness is preserved because intersectAndWarn() still removes the
capabilities from the join block's entry lockset, ensuring any guarded access
inside the join block before the terminator is diagnosed. getEdgeLockset()
then re-adds the capability on the success edge.
This change resolves the false positive warning reported in [1].
Reported-by: https://lore.kernel.org/linux-fsdevel/[email protected]/ [1]
Assisted-by: AI was used a bit to understand the code and to help with testing and validation
https://invent.kde.org/qt/clang/llvm-project/-/commit/f07e2f1aabd1f62efd467ed397cb7b26ca60fb6d
Git commit 9bb81c2ffc5b349b54605cecb3e3a5e4a611f642 by GitHub (on behalf of Takayuki Todokoro) on 22/07/2026 at 09:42..
[MLIR][Affine] Preserve discardable attrs when adding loop yields (#210571)
`replaceWithAdditionalYields` only appends loop-carried values, so
preserve the loop's discardable attributes, matching `scf.for`.
Assisted-by: OpenAI Codex gpt-5.6-sol max
https://invent.kde.org/qt/clang/llvm-project/-/commit/9bb81c2ffc5b349b54605cecb3e3a5e4a611f642
Git commit dabf57f31715144eb75f2ce82efc5b0db6b9228d by GitHub (on behalf of Paul Walker) on 22/07/2026 at 10:01..
[LLVM][CodeGen][SVE] Extend NEON->SVE splat imm isel to cover 64-bit vectors. (#209833)
This extends https://github.com/llvm/llvm-project/issues/165559 to
include 64-bit vectors.
https://invent.kde.org/qt/clang/llvm-project/-/commit/dabf57f31715144eb75f2ce82efc5b0db6b9228d
Git commit 6c560cddfb1e206678866c6822baabcdcee2343f by GitHub (on behalf of jay0x) on 22/07/2026 at 10:17..
[flang][Lower][OpenMP] Fix reduction on array sections aborting in lowering (#209701)
**Summary**
This regression was introduced by #196094, which added a special
lowering path for reductions on a single array element, such as `a(2)`.
The problem is that Flang also treated an array section like `a(2:96)`
as if it were a single element. Because of this, the section was sent to
a code path that only supports scalar elements.
That path produced an array type that the reduction initialization code
could not handle, so Flang reached a `TODO` and aborted with a “not yet
implemented” error.
**Fix**
The fix is to use the special element path only when the expression has
rank 0, which means it represents one single value. Array sections have
rank greater than 0, so they should continue through the existing
boxed-array path.
Fixes : [209462](https://github.com/llvm/llvm-project/issues/209462)
---------
Co-authored-by: Jay Satish Kumar Patel <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/6c560cddfb1e206678866c6822baabcdcee2343f
Git commit 1dc74468ad2cc1b00ba979b52205f5873a021ddc by GitHub (on behalf of Connector Switch) on 22/07/2026 at 10:18..
Merge branch 'main' into users/c8ef/generator
https://invent.kde.org/qt/clang/llvm-project/-/commit/1dc74468ad2cc1b00ba979b52205f5873a021ddc