[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/alexey-bataev/spr/slpsupport-copyables-in-the-fmuladd-multiplicand'.
Changed from 0000000000000000000000000000000000000000 to 264f240f5e86ae1746cc2622b0ce912de881cb9d
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 29bc0749034c4f2bda0752360ecacd4e89d7439c by GitHub (on behalf of Ebuka Ezike) on 29/07/2026 at 11:30..
[lldb] Fix crash on creating string error (#212503)

It crashes because the `default` error string may not be a format string
compared to the `fallback` error string
https://invent.kde.org/qt/clang/llvm/-/commit/29bc0749034c4f2bda0752360ecacd4e89d7439c

Git commit 5989d40ab1d0db8333b5976d957a49525d36cf35 by GitHub (on behalf of jeanPerier) on 29/07/2026 at 11:31..
[flang] Wire allocation-placement into the optimizer pipeline (default off) - memory passes unification [3/5] (#210745)

Add a hidden -enable-allocation-placement flag that, when set, replaces
the stack-arrays and memory-allocation-opt passes in the default FIR
optimizer pipeline with the unified allocation-placement pass. The flag
is off by default, so the legacy passes remain the default path and
behavior is unchanged.

When enabled, the pass runs with its default byte-size thresholds; the
-fstack-arrays strategy is forwarded through the new stackArrays option.

Assisted-by: AI
https://invent.kde.org/qt/clang/llvm/-/commit/5989d40ab1d0db8333b5976d957a49525d36cf35

Git commit 6e116760ca4010be890b7fa39c93f2c902ab2a31 by GitHub (on behalf of Alexey Bataev) on 29/07/2026 at 11:42..
[SLP]Initial support for copyables in fmuladd intrinsic

Adds llvm.fmuladd as a main operation for copyable elements. A
non-fmuladd lane V is modeled as fmuladd(0.0, -0.0, V), which equals
-0.0 + V == V for every V. Only the addend operand is supported for
now; multiplicand operands may be added later.

Reviewers: bababuck, hiraditya, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/211245
https://invent.kde.org/qt/clang/llvm/-/commit/6e116760ca4010be890b7fa39c93f2c902ab2a31

Git commit a41d59740625948c6b334abbf921d0888b6f0377 by GitHub (on behalf of Hui) on 29/07/2026 at 11:54..
[libc++][test][NFC] remove old UNSUPPORTED clang from clear_padding.pass.cpp (#212690)

Follow up PR for comment
https://github.com/llvm/llvm-project/pull/211258/changes#r3663614103

I think I must have made an oversight while resolving a merge conflict
https://invent.kde.org/qt/clang/llvm/-/commit/a41d59740625948c6b334abbf921d0888b6f0377

Git commit 2545a108f4d173ed509e3eea33753227bdd6f847 by GitHub (on behalf of Florian Hahn) on 29/07/2026 at 12:02..
[VPlan] Compute cost of some VPWidenIntOrFpInductions in VPlan (#202232)

Add initial implementation of VPWidenIntOrFpInductionRecipe::computeCost,
handling un-truncated inductions.

For the first patch, only compute costs in VPlan if there are no
truncated inductions (in that case, there are additional differences for
the cost model, as previously we would not cost the truncate properly)
and the vector loop won't get unrolled (no induction cost).

Note that some decision change. This is due to the legacy cost model
computing the cost of the original IR, where the induction is scaled in
the loop in each iteration (e.g. with mul), while in the vector loop we
scale the increment, and there is just an add to increment the
induction. This is more accurate than the legacy cost computation.

PR: https://github.com/llvm/llvm-project/pull/202232
https://invent.kde.org/qt/clang/llvm/-/commit/2545a108f4d173ed509e3eea33753227bdd6f847

Git commit 6314c9731eafa68837bbbab65e347922134b004a by GitHub (on behalf of firmiana) on 29/07/2026 at 12:05..
[lldb][NFC] Explicitly list unsupported DWARF expression opcodes (#210363)

This PR addresses
[#202251](https://github.com/llvm/llvm-project/issues/202251).

Several opcodes recognized by LLDB's DWARF expression decoding logic
currently have no explicit `case` in `DWARFExpression::Evaluate`. They
therefore reach the generic default path, which makes it unclear whether
their evaluator status is intentional or an omission.

Explicitly list the affected opcodes and group them with the existing
`DW_OP_xderef`, `DW_OP_xderef_size`, `DW_OP_call2`, and `DW_OP_call4`
cases. All twelve known but unsupported opcodes now share an
`unimplemented opcode` return, while `default` remains responsible for
unknown and vendor-handled opcodes. No opcode evaluation semantics
change.

The affected opcodes are `DW_OP_call_ref`, `DW_OP_constx`,
`DW_OP_const_type`, `DW_OP_regval_type`, `DW_OP_deref_type`,
`DW_OP_xderef_type`, `DW_OP_reinterpret`, and
`DW_OP_GNU_implicit_pointer`.

## Tests

The existing per-opcode status-locking tests in
`DWARFExpressionTest.cpp` cover all affected cases and are updated to
check the unified diagnostic.
https://invent.kde.org/qt/clang/llvm/-/commit/6314c9731eafa68837bbbab65e347922134b004a

Git commit d630025295d5ef6724ec9deab162b983ffee6638 by GitHub (on behalf of Felix Ye) on 29/07/2026 at 12:05..
[mlir][toy] Fix Ch6/Ch7 llvm-lowering tests (#212118)

Add missing `| FileCheck %s` to `RUN` lines so `CHECK` lines can be
verified. Also correct the expected result from `30` to `36`. The result
should be `6*6=36`.

The example in the tutorial is correct (`3.600000e+01`).
https://mlir.llvm.org/docs/Tutorials/Toy/Ch-6/

Signed-off-by: Felix Ye <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/d630025295d5ef6724ec9deab162b983ffee6638

Git commit c53789fcf54979f7986d2e396920b725ce88f3e4 by GitHub (on behalf of Nikolas Klauser) on 29/07/2026 at 12:09..
[libc++][NFC] Clean up atomic_support.h (#212464)

We don't support any compilers which don't have the atomic builtins, so
we don't need to check whether they exist. There is also no need for an
anonymous namespace, since all the functions are inline.
https://invent.kde.org/qt/clang/llvm/-/commit/c53789fcf54979f7986d2e396920b725ce88f3e4

Git commit 25cc0d29e2c34966116f897e0db496d94cf91acf by GitHub (on behalf of Sander de Smalen) on 29/07/2026 at 12:09..
[AArch64] NFC: simplify isCopyInstrImpl expression (#212487)

To something more intuitive by applying the following logic:
* `!isVirtual()` -> `isPhysical()`
* `!isPhysical()` -> `isVirtual()`
* `(a || b) && (!a || c)` -> `(!a && b) || (a && c)`
https://invent.kde.org/qt/clang/llvm/-/commit/25cc0d29e2c34966116f897e0db496d94cf91acf

Git commit f53596de0e42e9df10831cb50438bc8b85f826b3 by GitHub (on behalf of Folkert de Vries) on 29/07/2026 at 12:11..
[MIPS][clang] make `_Complex` ABI match GCC (#212119)

fixes https://github.com/llvm/llvm-project/issues/212109

From the edits to the release notes:

- On MIPS, a `_Complex` value with an integer element type is now
returned packed
into a single integer register when it fits in one, matching GCC. A
`_Complex char` or
`_Complex short`, and on N32/N64 also a `_Complex int`, is no longer
returned
with one part per register. `-fclang-abi-compat=23` restores the
previous
  behavior. (#GH212109)

- On MIPS N32/N64, a `_Complex float` or `_Complex double` argument is
now packed
into integer registers, or onto the stack, once there is no longer room
to give
each of its parts a floating-point register, matching GCC. Clang
previously
always passed the parts separately. `-fclang-abi-compat=23` restores the
previous
  behavior. (#GH212109)
https://invent.kde.org/qt/clang/llvm/-/commit/f53596de0e42e9df10831cb50438bc8b85f826b3

Git commit 1d6a3dd80b48ad1990ed5e3e11acd3b06d2909b6 by GitHub (on behalf of antoine moynault) on 29/07/2026 at 12:19..
[LinkerWrapper][test] fix test offload-wrapper.ll (#212713)

The llc RUN command added in #212614 needs the X86 backend registered
https://invent.kde.org/qt/clang/llvm/-/commit/1d6a3dd80b48ad1990ed5e3e11acd3b06d2909b6

Git commit deed195c31f0ece487aa5ef79c90633860f10b93 by GitHub (on behalf of Arseniy Zaostrovnykh) on 29/07/2026 at 12:27..
[analyzer] Prune infeasible states related to concrete ints early to fix a crash (#210912)

RangedConstraintManager discards a simplified symbol if it reduces to a
concrete integer. This leads to delayed realization that some state
might be infeasible (because the concrete integer does not fit in the
assumed range), which might produce unexpected null pointers on the
following state splits.

PthreadLockChecker has fallen just into this trap. It assumes
`pthread_mutex_lock` is always called in a feasible state, which is was
not true.
In particular, in ZFS the analyzer crashes when runs in CTU mode because
it reaches `pthread_mutex_lock()` in over-constraint state (see the
reduced example in the first commit).

Checkers rely on the invariant that a state split can never result in
both `StateRef`s being null. To fix this violation of the invariant,
this patch helps RangedConstraintManager to realize a state is
infeasible and abort its exploration early so no follow-up state split
produce unexpected null-null pair.

Assisted by Claude Opus 4.8

--
CPP-8665
https://invent.kde.org/qt/clang/llvm/-/commit/deed195c31f0ece487aa5ef79c90633860f10b93

Git commit ed389ca093797baab0bcc95ffd2b6ca41741c40d by GitHub (on behalf of Aochang Liu) on 29/07/2026 at 12:29..
[CodeGen][ARM] Add regression tests for #202263 (#202599)

The underlying issue—RegisterCoalescer eliminating an undef COPY and
leaving a partial subregister redef that reads a value that no longer
exists—was fixed in #204039.

This PR adds the regression coverage originally developed alongside the
fix attempt, so the pattern remains covered:

- an end-to-end IR test that checks the generated assembly with
FileCheck;
- a focused single-pass `-run-pass=register-coalescer` MIR test using
`-verify-coalescing`, which reproduces the "Instruction is reading
nonexistent value" verifier error from #202263 when #204039 is reverted,
and passes with the fix applied.

Fixes #202263
https://invent.kde.org/qt/clang/llvm/-/commit/ed389ca093797baab0bcc95ffd2b6ca41741c40d

Git commit e393b0a120de3cc3b0055d129056b30e48777cb6 by GitHub (on behalf of Krzysztof Parzyszek) on 29/07/2026 at 12:30..
[OpenMP] Split UPDATE clause into two: for ATOMIC and for DEPOBJ (#212270)

The UPDATE clause has the same spelling on both of these directives, but
functionally it's two different clauses. Split them into "update", and
"update_depend_objects" to be able to tie their properties to their enum
ids.

This should make it easier to implement auto-generating of clause
properties in the future by avoiding spelling conflicts.

---------

Co-authored-by: Alexey Bataev <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/e393b0a120de3cc3b0055d129056b30e48777cb6

Git commit f43c0e2dac8d75362a07e283f44ae20339cd1de2 by GitHub (on behalf of Matt Arsenault) on 29/07/2026 at 12:33..
AMDGPU: Manually convert some MC tests to subarch triples (#212728)
https://invent.kde.org/qt/clang/llvm/-/commit/f43c0e2dac8d75362a07e283f44ae20339cd1de2

Git commit 31de6f2c4b4d38bbcabea7a1eeb000f90f368604 by GitHub (on behalf of Arseniy Obolenskiy) on 29/07/2026 at 13:07..
[mlir][SPIR-V] Add SPIRVToLLVM conversions for GL.FSign and GL.SSign (#206934)
https://invent.kde.org/qt/clang/llvm/-/commit/31de6f2c4b4d38bbcabea7a1eeb000f90f368604

Git commit 6279654d605a6821a4ece039d13504a15b09ac03 by GitHub (on behalf of Nico Weber) on 29/07/2026 at 13:10..
[gn] port c2fa41286818 (AMDGPUTargetParserDef.inc) (#212763)
https://invent.kde.org/qt/clang/llvm/-/commit/6279654d605a6821a4ece039d13504a15b09ac03

Git commit 2f910f66e7e181c8c1b6ed97d44e6f4bceb6c557 by GitHub (on behalf of newgre) on 29/07/2026 at 13:11..
[CopyProf] Add CopyProf instrumentation passes. (#207385)

This patch introduces the instrumentation passes and corresponding tests
for CopyProf, a profiling tool designed to identify unnecessary object
copies in C++ applications.
RFC at

https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038.

Three passes are added:
- CopyProfPass inserts enter/exit callback around special member
functions.
- CopyPRofStoresPass instruments store instructions to track memory
modifications.
- ModuleCopyProfPass inserts a module constructor to initialize the
CopyProf runtime at program startup (will be added later).
https://invent.kde.org/qt/clang/llvm/-/commit/2f910f66e7e181c8c1b6ed97d44e6f4bceb6c557

Git commit b3115cd807196e465ce3fc16f0cab58be24e47fc by GitHub (on behalf of lonely eagle) on 29/07/2026 at 13:13..
[mlir][affine] Add useExpensiveMath option to AffineLoopNormalize pass (#211989)

This PR integrates constant bound inference into the existing
`AffineLoopNormalize` pass under a new `useExpensiveMath` option. When
`useExpensiveMath` is enabled (disabled by default due to potential
compilation time overhead), the pass leverages
`ValueBoundsConstraintSet` (uss presburger) analysis to refine dynamic
`affine.for` loop bounds into compile-time constant bounds. RFC:
https://discourse.llvm.org/t/rfc-mlir-enable-dynamic-and-tighter-affine-unrolling-via-valueboundsconstraintset/91055/2

---------

Co-authored-by: Oleksandr "Alex" Zinenko <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/b3115cd807196e465ce3fc16f0cab58be24e47fc

Git commit c8c6c0ff7461a5a4c19c110d830945967bc97329 by GitHub (on behalf of Matsu) on 29/07/2026 at 13:16..
[flang] Drop nuw on XArrayCoor for non-positive slice steps (#212639)

Example:
```fortran
z(:, 3:2:-1) = z(:, 1:2)
```

In this code, reverse-section indexing lowers `idx*step` / `diff+adj`
with `nuw`. A negative step can make the product negative, so `nuw` is
invalid and LLVM `-O2` can drop the stores.

Fix: keep `nsw|nuw` only for known positive steps; otherwise keep `nsw`
and drop `nuw` (negative, zero, or unknown).
https://invent.kde.org/qt/clang/llvm/-/commit/c8c6c0ff7461a5a4c19c110d830945967bc97329

Git commit 03de9b148a19996fd722e9af6d09ecaf95f8a1b2 by GitHub (on behalf of Ian Tayler Lessa) on 29/07/2026 at 13:31..
[mlir][tosa] Extend cancelling block-scaled cast optimisation to bf16 (#212517)

The CancellingBlockScaledCastsOptimization optimises away sequences
where a block-scaled tensor is cast to fp32 and then cast back to its
original block-scaled type.

This patch extends it to also cover cases where the intermediate type is
bf16, since the 7 bits of mantissa and 8 bits in the exponent are
sufficient to encode any `element * scale` product with valid
block-scaled type combinations.

---------

Signed-off-by: Ian Tayler Lessa <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/03de9b148a19996fd722e9af6d09ecaf95f8a1b2

Git commit dc5f2aae75b1f80cd30c57f9298d63b104da94d4 by GitHub (on behalf of Chirag Patel) on 29/07/2026 at 13:35..
[Analysis] Adding convert_from_arbitrary_fp support in computeKnownFPClass. (#208585)

fixes #208437 

From LangRef for intrinsic convert_from_arbitrary_fp ,
"Normal finite values are converted exactly. NaN values follow LLVM’s
standard NaN rules; the NaN representation is preserved... and the NaN
payload may be truncated or extended..."
-> if src has Nan -> preserve nan

"If a value exceeds the representable range of the target type (for
example, converting Float8E8M0FNU with large exponents to half), the
result is converted to infinity with the appropriate sign."
https://invent.kde.org/qt/clang/llvm/-/commit/dc5f2aae75b1f80cd30c57f9298d63b104da94d4

Git commit 13a6fc28ac56e0abd84d90e60d9fb325c7c3ec84 by GitHub (on behalf of aokblast) on 29/07/2026 at 13:37..
[benchmark] Back port 2b0bff7 from upstream (#212278)

Fix compile error with clang -Werror -Wunused-template
(cherry picked from commit 2b0bff7444a8df460daab2e5af18bce45ca00657)
https://invent.kde.org/qt/clang/llvm/-/commit/13a6fc28ac56e0abd84d90e60d9fb325c7c3ec84

Git commit 7f0e5f9eb7466f68bb10d418421c9295bf80b345 by GitHub (on behalf of Anonmiraj) on 29/07/2026 at 13:42..
[clang] Cache the analysis-based warning policy in effect (#212213)

While benchmarking with warnings enabled, I found that
`AnalysisBasedWarnings::getPolicyInEffectAt` runs at the end of every
function body, performing six location-sensitive `isIgnored()` queries.
This overhead comes from #136323 ([compile-time
impact](https://llvm-compile-time-tracker.com/compare.php?from=2a9f77f6bd48d757b2d45aadcb6cf76ef4b4ef32&to=71ce9e26aec00e4af27a69ccfab8ca1773ed7018&stat=instructions:u)).

Since these six diagnostics only depend on the diagnostic state at the
query location and whether it is in a system header or macro, we can
cache the computed policy rather than recomputing it for every function.

The cache flushes when a `#pragma clang diagnostic` changes severities,
and it bypasses active diagnostic suppression mappings.

Compile-time results for this pr:

https://llvm-compile-time-tracker.com/compare.php?from=49de424f45389cb757c3cc8c50daf38d024e2314&to=a61503b54e9568254885777cf89f5ca1586ec99f&stat=instructions%3Au
https://invent.kde.org/qt/clang/llvm/-/commit/7f0e5f9eb7466f68bb10d418421c9295bf80b345

Git commit 7e1aba74a4f702dbd0b5c2ebc87f88dffb851b6e by GitHub (on behalf of zhijian lin) on 29/07/2026 at 13:44..
Reland [PowerPC] improve performance on the isNan and !isNan function in case of -ffp-model=strict (#212565)

1. reland the patch https://github.com/llvm/llvm-project/pull/204170
2. and fix the regression caused by above patch.
https://invent.kde.org/qt/clang/llvm/-/commit/7e1aba74a4f702dbd0b5c2ebc87f88dffb851b6e

Git commit e61b2abe8b7d7baef9192b41aa92f123640ca598 by GitHub (on behalf of Cullen Rhodes) on 29/07/2026 at 13:46..
[AArch64] Remove GPR64arg register class (#212457)

GPR64arg was added in fcbec02ea6fb to describe X0-X7 for the reserved
argument-register check. It is an ABI register set rather than an
allocation constraint and should not be used for register allocation.
Given it has a single use that only cares about the number of registers,
a register class isn't necessary.

This exposes that GlobalISel recomputes the minimal register class when
a matching inline asm input is tied to a fixed physical-register output.
For X2 that class was GPR64arg, getRegistersForValue already asks the
target which class implements the output constraint. Retain that class
and reuse it for the matching input.

Assisted-by: codex
https://invent.kde.org/qt/clang/llvm/-/commit/e61b2abe8b7d7baef9192b41aa92f123640ca598

Git commit 2faa90a208a14b7e681dc9122a889c894823814a by GitHub (on behalf of Zach Goldthorpe) on 29/07/2026 at 13:50..
[AMDGPU] Retain subreg when legalising generic operand (#212636)

When building a `COPY` to legalise a generic operand whose register
class does not match what is expected, the subregister is not retained
in the copy, and is not dropped from the newly created virtual
destination register.
https://invent.kde.org/qt/clang/llvm/-/commit/2faa90a208a14b7e681dc9122a889c894823814a

Git commit a463071dc427777a2a2bfc155c6680d7ff220994 by GitHub (on behalf of Marina Taylor) on 29/07/2026 at 14:04..
[LTO] Handle GlobalIFunc in LTOModule::parseSymbols (#212515)

Avoids the assert immediately below.

Fixes #45694

rdar://182744700
https://invent.kde.org/qt/clang/llvm/-/commit/a463071dc427777a2a2bfc155c6680d7ff220994

Git commit 82c7b9ac09e55cfc9887cb4e0de6221209c690b5 by GitHub (on behalf of Tshaka Lekholoane) on 29/07/2026 at 14:09..
[clang-format] Add Natural option for SortIncludes (#210788)

`SortIncludes` currently orders includes lexicographically with the
option to ignore case or extension. This adds another option, `Natural`,
that compares embedded runs of digits as numbers rather than sequences
of characters, matching the "natural sort" behaviour found in most file
managers and tools like `sort` when called with the `-V` option.

**Disclaimer**

AI assistance was used in initial exploration and review but the code is
"hand generated".
https://invent.kde.org/qt/clang/llvm/-/commit/82c7b9ac09e55cfc9887cb4e0de6221209c690b5

Git commit f2453af624353273325fe888d794a925ea9fe852 by GitHub (on behalf of Jay Foad) on 29/07/2026 at 14:14..
[AMDGPU] Improve MemorySSA walking in isClobberedInFunction (#211817)

Consistently call the two argument overload
`MemorySSAWalker::getClobberingMemoryAccess(MemoryAccess,
MemoryLocation)` to get a clobbering def (according to the AliasAnalysis
used by MSSA) before applying the special cases in `isReallyAClobber`.

This has the effect of marking more loads as `amdgpu-noclobber` and
selecting SMEM load instructions for them.

Fixes: ROCM-28492
https://invent.kde.org/qt/clang/llvm/-/commit/f2453af624353273325fe888d794a925ea9fe852

Git commit 2b06cb5e103886e9606d431defcd5159302ab87f by GitHub (on behalf of Dhruva) on 29/07/2026 at 14:23..
[DAGCombine] Freeze after load is scalarized. (#212587)

fixes #211567
https://invent.kde.org/qt/clang/llvm/-/commit/2b06cb5e103886e9606d431defcd5159302ab87f

Git commit 01891953eea17544f6181bb51c973711a382702b by GitHub (on behalf of Shengxin Pei) on 29/07/2026 at 14:24..
[Clang][OpenMP] Fixed an assertion on omp taskloop transparent (#200663)

In
https://github.com/llvm/llvm-project/blob/15bb4a97a798ed43b3966c99d37585651b965e5e/clang/lib/Parse/ParseOpenMP.cpp#L3289-L3295
We missed a check for `WrongDirective` before calling
`ActOnOpenMPTransparentClause`.

This patch adds the missing check.
fix #197162
https://invent.kde.org/qt/clang/llvm/-/commit/01891953eea17544f6181bb51c973711a382702b

Git commit e854fb756ef1f5e65bd03a16a7d1bde1ebf7769c by GitHub (on behalf of Nico Weber) on 29/07/2026 at 14:33..
[gn build] Port 2f910f66e7e1 (#212782)
https://invent.kde.org/qt/clang/llvm/-/commit/e854fb756ef1f5e65bd03a16a7d1bde1ebf7769c

Git commit 82a4cd776063b8c1013045b00b6bb3449c45e8b6 by GitHub (on behalf of Zahira Ammarguellat) on 29/07/2026 at 14:51..
[OpenMP] Restore loop variable values after loop-tranformation constructs. (#208533)

This patch fixes loop variable finalization for OpenMP 6.0
loop-transformations constructs: `tile`, `stripe`, `reverse`,
`interchange` and `fuse` to comply with spec requirement page 371, lines
19-21. The spec requires that "After the execution of the
loop-transforming construct, the loop-iteration variables of any of its
transformation-affected loops have the values that they would have
without the loop-transforming directive".
https://invent.kde.org/qt/clang/llvm/-/commit/82a4cd776063b8c1013045b00b6bb3449c45e8b6

Git commit 196b4b6a2dec34c19bca14f4ba15aee56f2abfe7 by GitHub (on behalf of Michael G. Kazakov) on 29/07/2026 at 15:08..
[libc++][pstl] Implementation of a parallel std::adjacent_find() based on std::mismatch() (#210604)

This PR implements a parallel `std::adjacent_find()` based on parallel
`std::mismatch`. The implementation reshapes the input range as two ranges
offset by 1 element and asks `std::mismatch` to find the first equal pair.

Part of #99938.
https://invent.kde.org/qt/clang/llvm/-/commit/196b4b6a2dec34c19bca14f4ba15aee56f2abfe7

Git commit 705aa2a864d1573a17e62cfbcffbafdab7745a6d by GitHub (on behalf of lijinpei-amd) on 29/07/2026 at 15:14..
[JumpThreading] Materialize PHIs in duplicateCondBranchOnPHIIntoPred (#204859)

In duplicateCondBranchOnPHIIntoPred, updateSSA iteratively updates the
uses of
the instructions of BB (the duplicated block) according to ValueMapping.
For
PHIs, however, the mapping is inconsistent: the keys refer to the values
before
the parallel assignment of the PHIs, while the mapped-to values refer to
the
values after it. E.g.

  BB:
    %arr  = phi [ %ov.0, %PredBB ], ...
    %ov.0 = phi [ %ov.sel, %PredBB ], ...
  --->
    %arr  => %ov.0
    %ov.0 => %ov.sel

So an iterative replacement miscompiles: a use of the duplicated %arr is
replaced by %ov.sel, while the correct replacement is %ov.0.

Fix this by splitting PredBB -> BB (SplitEdge) into a PredEdgeBB,
cloning the
PHIs into PredEdgeBB and mapping BB's PHIs to the clones:

  BB:
    %arr  = phi [ %ov.0, %PredEdgeBB ], ...
    %ov.0 = phi [ %ov.sel, %PredEdgeBB ], ...
  PredEdgeBB:
    %arr.dup  = phi [ %ov.0, %PredBB ]
    %ov.0.dup = phi [ %ov.sel, %PredBB ]
  --->
    %arr  => %arr.dup
    %ov.0 => %ov.0.dup

Since a distinct set of PHIs is used as the mapped-to values, the
iterative
replacement is correct.

Fixes #197725.
Fixes #203868.

Assisted-by: Opus-4.8 (Claude Code)
https://invent.kde.org/qt/clang/llvm/-/commit/705aa2a864d1573a17e62cfbcffbafdab7745a6d

Git commit be76618bc973b0009fa0618fbc6978f4c74bfdc7 by GitHub (on behalf of Charles Zablit) on 29/07/2026 at 15:24..
[lldb][Windows] Check for EOF before the ctrl-c retry in GetLine (#212745)

On Windows `lldb --repl` can hang forever instead of exiting at EOF.

`IOHandlerEditline::GetLine` checks `GetLastError() ==
ERROR_OPERATION_ABORTED` and does a `continue` before checking `feof`.
However `fgets` is a CRT function and does not set the Win32 last error
value, so the `GetLastError` read is not the expected error. When it
happens to be `ERROR_OPERATION_ABORTED` (995) the loop never reaches the
EOF check.

This reorders the checks so EOF wins unconditionally, and adds
`clearerr` before the ctrl-c retry (a real interrupt leaves the error
flag set, which would fail the next `fgets`). ctrl-c handling is
otherwise unchanged.

rdar://183335061
https://invent.kde.org/qt/clang/llvm/-/commit/be76618bc973b0009fa0618fbc6978f4c74bfdc7

Git commit 4fabb4360701da1210f0456f2bcc05f8dfa1a0c0 by GitHub (on behalf of Gaëtan Bossu) on 29/07/2026 at 15:29..
[AArch64][CostModel] Lower wide fixed-length vector reductions cost (#211824)

When vscale is known > 1, SVE will be used to perform most reductions.
This should be reflected in the cost model.
https://invent.kde.org/qt/clang/llvm/-/commit/4fabb4360701da1210f0456f2bcc05f8dfa1a0c0

Git commit 312aa8cf8ccd97c0d2a6980c0a0fb9ee0ee5290e by GitHub (on behalf of Adrian Prantl) on 29/07/2026 at 15:30..
[LLDB] Remove Xcode sdk guessing from Makefile.rules (NFC) (#212378)

This cleanup patch pushes the auto-detection of the `macosx` SDK from
Makefile.rules up into `dotest.py` and unifies it with the existing SDK
handling for other Apple platforms.

Assisted-by: claude
https://invent.kde.org/qt/clang/llvm/-/commit/312aa8cf8ccd97c0d2a6980c0a0fb9ee0ee5290e

Git commit e3f24d8cf7d07d8c7f6208e5cce4b422cb1d0806 by GitHub (on behalf of John Brawn) on 29/07/2026 at 15:36..
[LoopIdiom] Use SCEV for deciding memmove validity (#211274)

When the loop index variable is smaller than the GEP offset size, and is
thus sign or zero extended before being used, then the IR that is
expanded from the SCEV expressions for the load and store locations will
be in a form that means GetPointerBaseWithConstantOffset can't deduce
the base and offset, meaning we can't generate memmove.

Solve this by deciding memmove validity based on the SCEV expressions
instead of the IR that is expanded from them. This means we also need to
insert a check to handle a null base pointer, as that was previously
handled implicitly due to how SCEVExpander expands expressions involving
null pointers.
https://invent.kde.org/qt/clang/llvm/-/commit/e3f24d8cf7d07d8c7f6208e5cce4b422cb1d0806

Git commit 45ef27a69895fcb756fec0d7a16d39706e5d9c06 by GitHub (on behalf of Zach Goldthorpe) on 29/07/2026 at 15:42..
[AMDGPU] Handle True16 high-half 16-bit packing idiom with uniform operand (#211102)

With True16 instructions, the high-half packing idiom from #206058 tries
to `OR` a 16-bit VGPR operand into the high half of the other operand,
but this causes a crash if the other operand is uniform, as this
generates an invalid `$sgpr = COPY $sgpr_hi16`.
https://invent.kde.org/qt/clang/llvm/-/commit/45ef27a69895fcb756fec0d7a16d39706e5d9c06

Git commit 7140530173c72de832458c12ac9bdcba1ca2d2ba by GitHub (on behalf of Alexey Bataev) on 29/07/2026 at 15:45..
[SLP][NFC]Add a test with nother candidate for fmuladd copyables, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/212802
https://invent.kde.org/qt/clang/llvm/-/commit/7140530173c72de832458c12ac9bdcba1ca2d2ba

Git commit 264f240f5e86ae1746cc2622b0ce912de881cb9d by Alexey Bataev on 29/07/2026 at 15:56..
[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
https://invent.kde.org/qt/clang/llvm/-/commit/264f240f5e86ae1746cc2622b0ce912de881cb9d
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.