[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/petar-avramovic/extendedLLT-fptrunc'.
Changed from 898076885ee460647ce726b7aa1550d4d4a3ec32 to 01dadc084419145e4135a82a0ea8c303b302b2d4
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 c34d2c30e86358bfe308558b5e0719e9f5305153 by GitHub (on behalf of Aayush Shrivastava) on 20/07/2026 at 06:52..
[mlir] Fix mem2reg crash on scalable vector store/load with matching type (#209426)

Fixes #209065

`createInsertAndCast/createExtractAndCast` in `LLVMMemorySlot.cpp`
queried the bit size of the source/target types before checking whether
they were already identical. For scalable vector types (e.g.
`vector<[4]xi1>`), this size query implicitly converts a scalable
TypeSize to a scalar, which aborts. `mem2reg` hits this path for any
store or load whose value type exactly matches the slot's element type,
since `getStored/removeBlockingUses` run even when no cast is needed.

This fix adds an early return when the types are already equal, skipping
the size query, consistent with the existing short-circuit in
`areConversionCompatible/castSameSizedTypes`.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c34d2c30e86358bfe308558b5e0719e9f5305153

Git commit e2572b883f0b2bc7a7a3808e484039f9382aa898 by GitHub (on behalf of Ming-Yi Lai) on 20/07/2026 at 07:12..
[LLD][RISCV][Zicfilp] Generate unlabeled landing pad-style PLT (#145461)

To support dynamic linking when Zicfilp is enabled, lpad insns are
inserted into PLTs. This patch generates the unlabeled landing pad-style
PLT, in which all the lpads have label `0`, when ZICFILP-unlabeled is
enabled:

--- PLT Header:

```
1:  auipc  t3, %pcrel_hi(.got.plt)
    sub    t1, t1, t2
    l[w|d] t2, %pcrel_lo(1b)(t3)
    addi   t1, t1, -(hdr size + 16)
    addi   t0, t3, %pcrel_lo(1b)
    srli   t1, t1, log2(16/PTRSIZE)
    l[w|d] t0, PTRSIZE(t0)
    jr     t2
```

--- PLT Entry:

```
     lpad 0
1:   auipc   t2, %pcrel_hi([email protected])
     l[w|d]  t2, %pcrel_lo(1b)(t2)
     jalr    t1, t2
```

(The PLT format is specified in the psABI draft at
<https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/417>)

---------

Co-authored-by: Piyou Chen <[email protected]>
Co-authored-by: Kito Cheng <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/e2572b883f0b2bc7a7a3808e484039f9382aa898

Git commit 21d537e48677c6c9f3fe679694bba7bcaece90ce by GitHub (on behalf of Mel Chen) on 20/07/2026 at 07:28..
[LV][Test] Rename conflicting IR values to avoid FileCheck conflicts. nfc (#210293)
https://invent.kde.org/qt/clang/llvm-project/-/commit/21d537e48677c6c9f3fe679694bba7bcaece90ce

Git commit 99789ca18a7982a0b8d63e681d957590f67455c4 by GitHub (on behalf of A. Jiang) on 20/07/2026 at 07:32..
[libc++] Add tests for LWG3798 and mark it as Complete (#210640)
https://invent.kde.org/qt/clang/llvm-project/-/commit/99789ca18a7982a0b8d63e681d957590f67455c4

Git commit 9e2e9b33e14808541c0470b92ade34bee6608bf6 by GitHub (on behalf of Pavel Labath) on 20/07/2026 at 07:46..
[libc] Port process utilities to hermetic mode and enable some tests (#209999)

This is achieved by calling internal libc functions in hermetic mode. In
the overlay mode I keep calling the system functions so that the tests
work even on systems which don't have these implemented.

I also needed to implement the delete operators as both the libc proper
and the test framework uses them nowadays.

This is sufficient to enable all stdlib tests in hermetic mode, except
for one, which actually exposes a bug in the implementation. I'll deal
with that in a separate patch.
https://invent.kde.org/qt/clang/llvm-project/-/commit/9e2e9b33e14808541c0470b92ade34bee6608bf6

Git commit ba9a115e3ba30699cafe7815d851f89f02f821ea by GitHub (on behalf of Adam Scott) on 20/07/2026 at 07:51..
[AArch64] Fold vector shifts guarded against oversized amounts into USHL (#207628)

`select(icmp ult(amt, EltSize), shl(x, amt), 0)`, where EltSize is the
{8, 16, 32, 64} lane size, is the usual way to guard a variable vector
shift against shl poison. On AArch64 the guard is unnecessary because
USHL already returns zero once the shift amount reaches the lane size.

For v4i32:

Before:
```
	movi	v2.4s, #63
	movi	v3.4s, #32
	and	v1.16b, v1.16b, v2.16b
	ushl	v0.4s, v0.4s, v1.4s
	cmhi	v1.4s, v3.4s, v1.4s
	and	v0.16b, v1.16b, v0.16b
```
After:
```
	movi	v2.4s, #63
	and	v1.16b, v1.16b, v2.16b
	ushl	v0.4s, v0.4s, v1.4s
```

USHL reads each lane's shift amount as a signed value from its low byte
so amounts above 127 would be misread. The fold applies directly when
known bits can prove the amounts are at most 127 and otherwise the
amounts are clamped to EltSize with umin first, which is still one
instruction cheaper than the select.

NEON has no umin for 64-bit lanes so unbounded v2i64 amounts use the SVE
umin when available and otherwise keep the select.

lshr gets the same fold since it already lowers to ushl with a negated
amount.

This is the AArch64 counterpart of #86922, which added the same folds
for AVX2's variable shifts. This does the select(shift) half; the
shift(select) form will be a follow-up.

Closes #200698.
https://invent.kde.org/qt/clang/llvm-project/-/commit/ba9a115e3ba30699cafe7815d851f89f02f821ea

Git commit 92aded9ac802ed85971627bfa651697f960eefbf by GitHub (on behalf of Kareem Ergawy) on 20/07/2026 at 07:54..
[flang][PFT-to-MLIR] Wrap unstructured Fortran constructs in scf.execute_region (#208635)

Extend the PFT-to-MLIR (HLFIR/FIR) lowering so unstructured DO and IF
constructs are emitted inside scf.execute_region, hiding their
multi-block CFG behind a single op. OpenACC lowerings that reject
multi-block content (e.g. the "unstructured do loop in combined acc
construct" TODO in OpenACC.cpp) now see a structured op instead.

The main goal is to prevent propagating the "unstructured" property up
the evaluation tree just because one nested evaluation is unstructured;
which is the current behavior.

Flag: -mmlir --wrap-unstructured-constructs-in-execute-region (default
on).

An evaluation is wrappable iff all of the following hold:

  * wrap flag on
  * eval is parser::DoConstruct or parser::IfConstruct
  * eval.isUnstructured
* branchesAreInternal(eval) -- every controlSuccessor in the subtree
targets a nested eval or the constructExit
* !hasIncomingBranch(eval) -- no outside eval branches into the body
(PFT's synthetic IfConstruct around `if(c) goto X` absorbs label targets
between the IF and X; the incoming-branch check excludes such wrappers
when an outer GOTO names one of those labels)
* does not contain a ReturnStmt -- its lowering creates the function's
final block in the current region, which would mis-parent func.return
* not an infinite DO and does not contain one (no LoopControl in any
nested DO): the wrap's yield is unreachable and the body has no
write-shaped side effects, so RegionDCE treats the wrap as trivially
dead and drops it. Excluding the whole enclosing construct keeps such
infinite loops visible in the parent CFG.
* not the body DO of an enclosing OpenACCLoopConstruct or
OpenACCCombinedConstruct -- nor one of the N collapsed iterator DOs
reached by walking down through `collapse(N)`. Such DOs are driven
directly into acc.loop by the OpenACC lowering, so wrapping them would
hide the iteration from the acc.loop op.

Diagnostics
-----------
Emit per-wrap and per-function diagnostics on stderr so the wrapping is
observable from a single compile invocation:

  [wrap-unstructured] wrapped DO at <loc>
  [wrap-unstructured] wrapped IF at <loc>
  [wrap-unstructured] summary: N execute_region(s) wrapping unstructured
                      constructs at <loc>

The counter is reset per function and the summary is suppressed when no
wraps fire.

Co-authored-by: Claude Opus 4.7 <[email protected]>

---------

Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/92aded9ac802ed85971627bfa651697f960eefbf

Git commit 751fca6c06e4d29b8d2a62c307afce8ba6a0a101 by GitHub (on behalf of Fangrui Song) on 20/07/2026 at 08:06..
[Driver][test] Unwrap freebsd-mips-as.c RUN lines (#210658)

Collapse 3-line RUN blocks to 2 lines and move -### immediately after
%clang, matching the prevailing style for new tests.
https://invent.kde.org/qt/clang/llvm-project/-/commit/751fca6c06e4d29b8d2a62c307afce8ba6a0a101

Git commit a4ca7f3a670c84196cad4c739114b316fed6d8f1 by GitHub (on behalf of Pavel Labath) on 20/07/2026 at 08:09..
[libc][cmake] Remove proxy header XXX_macros -> XXX.h deps (#210008)

In the full build mode, these headers do not include the main XXX.h
header, which makes sense, because they exist to allow us only to expose
a part of it. They do include it in the overlay mode, but in this case,
they are referring to the header from the libc being overlaid, which
exists outside of the build system.

Also fix float_macros by moving
libc.include.llvm-libc-macros.float_macros from DEPENDS to
FULL_BUILD_DEPENDS, as llvm-libc-macros/float-macros.h is only included
under LIBC_FULL_BUILD.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a4ca7f3a670c84196cad4c739114b316fed6d8f1

Git commit f214ce6b0a9a6af9b1d899895e29cbba68ee2726 by GitHub (on behalf of Pavel Labath) on 20/07/2026 at 08:10..
[libc][bazel] Add missing arpa/inet functions and tests (#210310)

Add bazel build targets for the remaining arpa/inet functions
(inet_addr, inet_aton, inet_ntoa, and inet_ntop) along with their unit
tests and supporting targets (__support_net_address, headers, and proxy
types).

Assisted by Gemini.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f214ce6b0a9a6af9b1d899895e29cbba68ee2726

Git commit 72e0b55f9b1fd69030d7e9853a708bfd2fba36ec by GitHub (on behalf of Florian Hahn) on 20/07/2026 at 08:29..
[ConstraintSys] Solve sub-system with variables needed for query (#210432)

Update ConstraintSystem to only solve the sub-system containing all
variables relevant to a given query.

The sub-system contains the transitive closure of all variables in rows
involving the variables in the constraint to prove.

The iterative collection loop only needs very few iterations to
complete. The pruned system can significantly speed up Fourier–Motzkin
elimination and reduce the cost of copying the system.

This helps to notably decrease compile-time in cases when there are
larger numbers of variables & rows (especially during (Thin)LTO).

Highlights include
 * stage1-ReleaseThinLTO: -0.16%
 * stage1-ReleaseLTO-g: -0.19%
 * stage1-aarch64-O3: -0.04%


https://llvm-compile-time-tracker.com/compare.php?from=1f2772f8e26beb909c2a559f1fb08697e3e06909&to=77fbe7926609da96a193254e44efd1d6f8a097de&stat=instructions%3Au

Note that we will now stop to simplify conditions in code we proved
dead/unreachable earlier; previously, unrelated constraints in the
system that form contradictions would allow proving any unrelated fact.
After pruning, unrelated facts will no longer contribute.
https://invent.kde.org/qt/clang/llvm-project/-/commit/72e0b55f9b1fd69030d7e9853a708bfd2fba36ec

Git commit 4234ff65326237102157875f6ddf098355864178 by GitHub (on behalf of Nikolas Klauser) on 20/07/2026 at 08:35..
Reapply "[libc++][NFC] Inline std::function members into the class body" (#209555) (#210260)

This caused LLDB to fail, which has been fixed now.

This reverts commit 7618426138aae95561da676a1d1e10ee0392bf78.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4234ff65326237102157875f6ddf098355864178

Git commit 1ad0e6989597f550e1a5b53abd889366b65aa6c7 by GitHub (on behalf of Fangrui Song) on 20/07/2026 at 08:37..
[Driver,FreeBSD] Fix -pie for -r and -no-pie links (#210663)

Port Gnu.cpp changes ae623d16d50c and cac82e26c642 to FreeBSD and
Serenity: -r should suppress -pie. -nopie, OpenBSD specific, should not
be used by other OSes.

Group the options selecting the link mode and place them after -m, as
gnutools::Linker does, so that -r suppresses -export-dynamic and
--hash-style as well, and -no-pie overrides the -fsanitize PIE default.

Drop --enable-new-dtags: default in modern linkers.

Change -Bstatic to -static to follow Gnu.cpp (identical in lld and older
GNU ld).
https://invent.kde.org/qt/clang/llvm-project/-/commit/1ad0e6989597f550e1a5b53abd889366b65aa6c7

Git commit 37a2803740cc9df3d605431b2410c9d9c0bc5731 by GitHub (on behalf of Kamlesh Kumar) on 20/07/2026 at 08:39..
[AArch64] Add combine for interleave deinterleave (#208414)

These combines now can emit ldN/stN without interleaved access pass.
https://invent.kde.org/qt/clang/llvm-project/-/commit/37a2803740cc9df3d605431b2410c9d9c0bc5731

Git commit 6fb8d5fd507d976cb8072a7aa245c225c25ee08a by GitHub (on behalf of David Spickett) on 20/07/2026 at 08:42..
[lldb][docs] Remove image links from trace doc (#210664)

The document was first added in https://reviews.llvm.org/D105741 but
that did not include the images (they were not in the RFC or discussions
either).
https://invent.kde.org/qt/clang/llvm-project/-/commit/6fb8d5fd507d976cb8072a7aa245c225c25ee08a

Git commit 03b5c5285eaf0acdc1dc30c5be6e0a7cefeab16f by GitHub (on behalf of Nathan Gauër) on 20/07/2026 at 08:42..
[LSROA] Add logical SROA pass (#192058)

This commit adds a logical-pointer compatible SROA pass. As-is, the pass
does not optimizes nested structs, arrays, or usages of structured
alloca with non-structured GEP instructions.

Adding support for both is not complex, but increase the size of the PR,
hence we can start with this.

Next step will be to allow mem2reg to apply on logical alloca/ptr, and
to add support for nesting/arrays.

---------

Co-authored-by: Nikita Popov <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/03b5c5285eaf0acdc1dc30c5be6e0a7cefeab16f

Git commit b8300a76659d65fd9738de1c1e4bf5b71e9ef72b by GitHub (on behalf of Momchil Velikov) on 20/07/2026 at 08:44..
[GVN] Remove the "private" `llvm::gvn` namespace (NFC) (#210323)

Move `AvailableValue` and `AvailableValueInBlock` into GVNPass, similar
to other helper types.

Retain `llvm::gvn::GVNLegacyPass` as just `llvm::GVNLegacyPass` -
"legacy" is already a sufficent hint and it is not going to become more
"private" by stacking "gvn" prefixes to the name.

Ideally, `GVNLegacyPass` should be defined in an anonymous namespace,
but that is not possible because it is declared as a friend of GVNPass.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b8300a76659d65fd9738de1c1e4bf5b71e9ef72b

Git commit b9b454166eaa92d2e6e129f6c21ad59639d8364e by GitHub (on behalf of Hongyu Chen) on 20/07/2026 at 08:51..
[RISCV][P-ext] Generalize lowerVECTOR_SHUFFLEAsRV32PNarrowingShift (#210522)

The previous implementation only matches
`shuffle(extract_subvector(src), extract_subvector(src), mask)`.
This patch generalizes it to `shuffle(a, b, mask)`, so we can now lower
it to `PNSRL(concat(a,b), element_bits)` if it is a deinterleave
shuffle. And we use `foldConcatVector` to handle the original pattern
with `extract_subvector`.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b9b454166eaa92d2e6e129f6c21ad59639d8364e

Git commit 023361f8ef6aa47d10cd839515c58322890367c3 by GitHub (on behalf of David Spickett) on 20/07/2026 at 08:52..
[lldb][AArch64][Linux][NFC] Move RegisterSetType enum into header (#207145)

I will be using this later to replace all the register specific
functions this class has (WriteSVE/ReadSVE and so on) with single
functions that use RegisterSetType to decide what to do.

While I'm here, I've made some sizeof and casts use RegisterSetType in
case the underlying type changes later.
https://invent.kde.org/qt/clang/llvm-project/-/commit/023361f8ef6aa47d10cd839515c58322890367c3

Git commit 975c8f5a7b25f84a257ddfaf9605c62147a0913d by GitHub (on behalf of Raphael Isemann) on 20/07/2026 at 09:16..
[lldb][NFC] Remove various Stream::Printf calls with constants (#210294)

`Stream::Printf` needs to call various other (variadic) functions, needs
to parse the input string and potentially handle too-long format
outputs. Calling in with a constant string is wasting a lot of
instruction on doing nothing.

assisted-by: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/975c8f5a7b25f84a257ddfaf9605c62147a0913d

Git commit 1c1c0657f990b92d23067cb7367772f4c91ea32b by GitHub (on behalf of Abhay Kanhere) on 20/07/2026 at 09:20..
[ConstraintElim] LSHR x, n <=  x  when n< bitwidth (#209583)

A logical right shift never increases an unsigned value:
   for %r = lshr %x, %n, add the fact %r u<= %x when LSHR is not poison.

This extends the existing udiv/urem fact modeling to lshr.


https://alive2.llvm.org/ce/z/RUTMwe proof shown with constant value <
bit size
https://invent.kde.org/qt/clang/llvm-project/-/commit/1c1c0657f990b92d23067cb7367772f4c91ea32b

Git commit ead8fd8e29fbf3774b7a08bf7b991c2ada30112b by GitHub (on behalf of Hristo Hristov) on 20/07/2026 at 09:23..
[libc++][ranges][NFC] Format `lazy_split_view` (#210644)

Pre-requisite for: https://github.com/llvm/llvm-project/pull/193891
https://invent.kde.org/qt/clang/llvm-project/-/commit/ead8fd8e29fbf3774b7a08bf7b991c2ada30112b

Git commit eec2f0916d44c33beac52f4396c7a9c98b0c9cf6 by GitHub (on behalf of Hristo Hristov) on 20/07/2026 at 09:23..
[libc++][NFC] Removed duplicated `_LIBCPP_INTRODUCED_IN_LLVM_23` macros (#210602)

Removed the redundant macros, which apparently were added by two
different patches.
https://invent.kde.org/qt/clang/llvm-project/-/commit/eec2f0916d44c33beac52f4396c7a9c98b0c9cf6

Git commit 39a2c6a695f9d045b05fd5798a7cb99f3c7425a7 by GitHub (on behalf of Hristo Hristov) on 20/07/2026 at 09:23..
[libc++][test][NFC] Removed unsupported compilers from tests (#210413)
https://invent.kde.org/qt/clang/llvm-project/-/commit/39a2c6a695f9d045b05fd5798a7cb99f3c7425a7

Git commit 9cb6db4e3814fba503389aa0af16960847295fd2 by GitHub (on behalf of Momchil Velikov) on 20/07/2026 at 09:26..
Revert "[GVN] Remove the "private" `llvm::gvn` namespace (NFC)" (#210666)

Reverts llvm/llvm-project#210323

FAILED: lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o 


/var/llvm-compile-time-tracker/llvm-project/llvm/lib/Transforms/Scalar/GVN.cpp:4001:27:
error: qualified name does not name a class before ‘:’ token
 4001 | class llvm::GVNLegacyPass : public FunctionPass {
https://invent.kde.org/qt/clang/llvm-project/-/commit/9cb6db4e3814fba503389aa0af16960847295fd2

Git commit ded79d9ddea47eb3a42da740353c16d21e890354 by GitHub (on behalf of Arseniy Obolenskiy) on 20/07/2026 at 09:49..
[SPIR-V] Reject fp128 and ppc_fp128 types with a diagnostic (#208397)

Introduced as a part of discussion in
https://github.com/llvm/llvm-project/pull/208219
https://invent.kde.org/qt/clang/llvm-project/-/commit/ded79d9ddea47eb3a42da740353c16d21e890354

Git commit 4caba63c698121203eea9280a392159dc6328e68 by GitHub (on behalf of David Spickett) on 20/07/2026 at 09:52..
[lldb][test] Double the timeout for TestGuiSpawnThreads.py (#210043)

If the host machine is overloaded, spawning threads may be delayed due
to lack of resources. I'm pretty sure this is the cause of failures in
GitHub CI reported in
https://github.com/llvm/llvm-project/issues/209874.

For what the test is doing, we unfortunately cannot get around needing
to wait on the test program.

We could perhaps come up with a lit mode that runs some tests in serial,
but this is a larger project than I want to get into now.

For now, let's try doubling the timeout. This test is unlikely to fail
for real, so if it's taking a long time, it'll be due to system
resources. In 99% of cases, it'll pass in a few seconds still.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4caba63c698121203eea9280a392159dc6328e68

Git commit 35c8e920cdd5b53dccfd669ebd92f3e06f534aae by GitHub (on behalf of Valery Pykhtin) on 20/07/2026 at 10:02..
[NFC][AMDGPU] Use SIInstrFlags predicates in SIMemoryLegalizer and AMDGPUBaseInfo. (#209821)

Part of a series following the introduction of SIInstrFlags predicates.
https://invent.kde.org/qt/clang/llvm-project/-/commit/35c8e920cdd5b53dccfd669ebd92f3e06f534aae

Git commit 195df3d4654b43ecf35927e574a8061bfaecbb78 by GitHub (on behalf of Matsu) on 20/07/2026 at 10:14..
[mlir][OpenACC] Privatize worker reduction accumulators per worker (#210456)

Example:
```fortran
!$acc parallel
!$acc loop gang reduction(+:sum)
do k = 1, p
  !$acc loop worker reduction(+:sum)
  do j = 1, n
    !$acc loop vector reduction(+:sum)
    do i = 1, m
      sum = sum + a(i,j,k)
    end do
  end do
end do
```

In this code, the worker accumulator is both gang- and worker-scoped.
Shared
memory allocated only one copy, so workers raced while updating the same
value.

Fix: allocate one shared-memory accumulator per worker whenever worker
parallelism is present.
https://invent.kde.org/qt/clang/llvm-project/-/commit/195df3d4654b43ecf35927e574a8061bfaecbb78

Git commit 91ad9f0ce9655eb3715c937f7d64d329bac63817 by GitHub (on behalf of Petar Avramovic) on 20/07/2026 at 10:48..
AMDGPU/GlobalISel: Handle G_BITCAST for 16 bit extendedLLTs (#208750)

Handle bitcast between i16 and f16/bf16.
For true16 this was already legal, make it legal in regbanklegalize as well.
For non-true16 widen it using G_ANYEXT to i32 and G_TRUNC to dst.
The "i32 G_ANYEXT f16/bf16" and "f16/bf16 G_TRUNC i32" are already legal,
for example these are generated by common CallLowering argument lowering.
https://invent.kde.org/qt/clang/llvm-project/-/commit/91ad9f0ce9655eb3715c937f7d64d329bac63817

Git commit 7aa5b246f173dca6b326b49bd65f53f1a072fdf1 by Petar Avramovic on 20/07/2026 at 10:52..
AMDGPU/GlobalISel: Switch legalizer intrinsic lowering to extended LLTs

Affects various buffer intrinsics.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7aa5b246f173dca6b326b49bd65f53f1a072fdf1

Git commit 98995d244b81f1603faee8928d06f435b8109f25 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Fix G_UNMERGE_VALUES lowering for extended LLTs

Use integer type for bit twiddling instead of scalar.
https://invent.kde.org/qt/clang/llvm-project/-/commit/98995d244b81f1603faee8928d06f435b8109f25

Git commit 67b1e4a76cf128f7e38a1ba89944d7f5e3991ae6 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Fix G_MERGE_VALUES lowering for extended LLTs

Use integer type for bit twiddling instead of scalar.
https://invent.kde.org/qt/clang/llvm-project/-/commit/67b1e4a76cf128f7e38a1ba89944d7f5e3991ae6

Git commit 44b48862f4865c3d7d79bd49dd8835b026fddd52 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Stop using changeTo in legaizer actions

Use changeElementSizeTo or changeElementCountTo to preserve extended LLT.
https://invent.kde.org/qt/clang/llvm-project/-/commit/44b48862f4865c3d7d79bd49dd8835b026fddd52

Git commit 42b927145a905dd66dd0135c9ed1b98eae51e0a2 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Fix legalizer lowering for G_EXTRACT/INSERT_VECTOR_ELT

Use LLT::integer in bit twiddling lowering for extract/insert vector element.
https://invent.kde.org/qt/clang/llvm-project/-/commit/42b927145a905dd66dd0135c9ed1b98eae51e0a2

Git commit fb0046e216202e132f67b3dbff2844f546554dfa by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Explicitly widen scalar to i32 for load and store

Affects f16 and bf16. Earlier, they were widened to f32 and s32 respectively.
The actual error was the artifact combiner creating a copy between f32/i32
which fails in the machine verifier. Maybe we could create a bitcast there.
However i32 is more efficient for us and matches well with how argument
lowering keeps f16 and bf16 in i32 copies to/from physical registers.
Also starting from f16 store, G_STORE %0(f16), %1(p1) :: (store (f16),
and doing widen scalar to 32 bit type, i32 makes more sense since store
will store 16 least significant bits G_STORE %0(i32), %1(p1) :: (store (f16)
compared to G_STORE %0(f32), %1(p1) :: (store (f16), which looks incorrect if
we assume input was really in f32 format.
https://invent.kde.org/qt/clang/llvm-project/-/commit/fb0046e216202e132f67b3dbff2844f546554dfa

Git commit db8938d17a69061ecc65dd5b7ae0bc5c474760a4 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Use integer as MMO type for loads and stores lowering

We could get away with just the type from MMO in most cases, but MMO splitting
creates MMO with LLT::scalar and we prefer integer.
https://invent.kde.org/qt/clang/llvm-project/-/commit/db8938d17a69061ecc65dd5b7ae0bc5c474760a4

Git commit f935e0ec225e9782b2caba44a8863fccf2b3f45b by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Fix extending load narrow scalar

isAnyScalar is explicit LLT::scalar check but we want to narrow scalar
integer types as well.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f935e0ec225e9782b2caba44a8863fccf2b3f45b

Git commit b53a2f4815899a6bfb992838a7fed9c0b068d1e3 by Petar Avramovic on 20/07/2026 at 10:57..
AMDGPU/GlobalISel: Use integers for read-any-lane split type
https://invent.kde.org/qt/clang/llvm-project/-/commit/b53a2f4815899a6bfb992838a7fed9c0b068d1e3

Git commit 01dadc084419145e4135a82a0ea8c303b302b2d4 by Petar Avramovic on 20/07/2026 at 10:58..
GlobalISel: Use extended LLTs in f64 to f16 fptrunc lowering
https://invent.kde.org/qt/clang/llvm-project/-/commit/01dadc084419145e4135a82a0ea8c303b302b2d4
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.