[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/jdenny-ornl/filecheck-pattern-notes'.
Changed from 9bb9a53bb3f35e4589fb8db72f1cfc5cf44db0df to 66f82a352be7b4d5d4f8c8ef1733b398ab912fcf
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 f8e258866980da486756e241016dd33ae68450be by GitHub (on behalf of Louis Dionne) on 21/07/2026 at 11:21..
[libc++] Include sizes in string benchmark names (#210795)

Otherwise we'd have duplicate benchmark names.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f8e258866980da486756e241016dd33ae68450be

Git commit 7f49d95c09e8a22a6de737ae6006edbb3a0adfca by GitHub (on behalf of Louis Dionne) on 21/07/2026 at 11:22..
[libc++][NFC] Fix synopsis comment for error_condition::message() (#210724)

The method was marked as noexcept in the synopsis, but it's neither
marked noexcept in the spec nor in our implementation.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7f49d95c09e8a22a6de737ae6006edbb3a0adfca

Git commit df4bb1f3106d39e5c6b767a28c0531efbbebc2d2 by GitHub (on behalf of Louis Dionne) on 21/07/2026 at 11:23..
[libc++] Compose the test suite Lit site config from harness and installation substitutions (#209638)

This patch restructures how libc++'s Lit site config is generated.
Instead of relying on the user-selected configuration file to include
the CMake bridge, it composes a site configuration from multiple
independent bits.

Importantly, it splits substitutions that pertain to the harness setup
(e.g. where to find Python) and substitutions that pertain to libc++
itself (e.g. the path to libc++ headers). This split and the top-level
composition of a site config file are incremental steps towards
decoupling the test suite from libc++'s own build.
https://invent.kde.org/qt/clang/llvm-project/-/commit/df4bb1f3106d39e5c6b767a28c0531efbbebc2d2

Git commit ad3f09c7de3da1f023bc1134eaa33be6d39cc9ca by GitHub (on behalf of Gábor Horváth) on 21/07/2026 at 11:33..
[ADT] Add single-pass merge for ImmutableSet/ImmutableMap (#209807)

The immutable-set/map dataflow joins merged two containers by inserting
the
elements of one into the other one at a time, costing O(|B| * log|A|)
and
re-copying shared spine nodes on every insert.

Add a single-pass, structure-sharing tree merge on ImutAVLFactory
(mergeTrees), exposed as ImmutableSet::Factory::unionSets and
ImmutableMap::Factory::mergeWith. It recurses over the larger operand
and
splits the smaller at each key, returning non-overlapping subtrees
unchanged,
so each spine node is copied at most once: O(|B| * log(|A|/|B| + 1)).

Two flags tune it for the different joins:
* KeepUnmatched - keep keys unique to one side (set union / a lattice
join
with an identity) vs. pass them through the combiner (a symmetric join,
   e.g. liveness Must->Maybe).
* SkipShared - return a pointer-identical subtree unchanged in O(1).
Valid
for an idempotent merge (Combine(a, a) == a), which holds for set union
and
every lattice join. Since dataflow states are path-copied from one
another,
a join's operands usually share most subtrees by pointer, so a join that
   touches only a few keys becomes nearly O(diff).

Wire it into the Clang lifetime-safety analysis (set and map joins) and
the
LiveVariables merge, and add ImmutableMergeBM to track it.

Speedups on the lifetime-safety dataflow benchmark (LoanPropagation
phase):
      pointer cycle in a loop  ~2.6x   (1.59 s  -> 0.61 s)
      CFG merges               ~190x   (1.83 s  -> 9.5 ms)
switch fan-out ~1.9x (LiveOrigins; disjoint states, no skip)
LiveVariables is ~2-3x faster on liveness-heavy inputs and neutral on
typical
code (the join is a small fraction of real-code analysis time).

ImmutableMergeBM confirms the merge beats the add loop for small and
near-identical operands, except for independently-built sets differing
by
exactly one element; when one operand is derived from the other -- the
real
dataflow case -- the pointer-skip makes even that a large win. New
randomized
ADT stress tests check the merge against std::set/std::map oracles for
both
canonicalizing and non-canonicalizing factories.

Assisted by: Claude Opus 4.8

Co-authored-by: Gabor Horvath <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/ad3f09c7de3da1f023bc1134eaa33be6d39cc9ca

Git commit b8eebf2704f2ebb6894fd952e4f15fdb62270606 by GitHub (on behalf of h-vetinari) on 21/07/2026 at 11:34..
[libc++][NFC] Re-order availability mapping to `_LIBCPP_INTRODUCED_IN_LLVM_{N}` (#210694)

Noticed that the new additions (from 16f692338cf and 8a531c3608c) were placed
rather randomly. Put the mapping back to reverse chronological order, see 
783fd2f9d.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b8eebf2704f2ebb6894fd952e4f15fdb62270606

Git commit c40a68644c550dcfa3c3d0b560e3aeea1d159d79 by GitHub (on behalf of Michael G. Kazakov) on 21/07/2026 at 11:40..
[libc++] Strip cv-refs in __desugars_to specialization for integral types (#208950)

This PR passes the argument type through `__remove_cvref_t` before
passing to `is_integral`.

Fixes #208236
https://invent.kde.org/qt/clang/llvm-project/-/commit/c40a68644c550dcfa3c3d0b560e3aeea1d159d79

Git commit faaeaf35a50acefd4e25e092e3f720067c40afe3 by GitHub (on behalf of Connector Switch) on 21/07/2026 at 11:41..
[libc++] Implement P0493R5: Atomic minimum/maximum (#180333)

Closes #105418.

Since gcc does not currently support `__atomic_fetch_min/max`, we use a
CAS loop in `atomic_ref` and `support/gcc.h`.

---------

Co-authored-by: Louis Dionne <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/faaeaf35a50acefd4e25e092e3f720067c40afe3

Git commit 460778b9d64ed36fd7e80a4cc73ea552aebf016b by GitHub (on behalf of Michael G. Kazakov) on 21/07/2026 at 11:42..
[libc++][pstl] Default implementation of parallel std::adjacent_difference (#207585)

This PR adds a "one-liner" default implementation of parallel
`std::adjacent_difference` on top of parallel binary `std::transform`.

The implementation builds two iterator ranges out of the input one, so
that a zip of these ranges yields adjacent pairs. Then performs a binary
transform to calculate and output the adjacent differences.

Part of https://github.com/llvm/llvm-project/issues/99938
https://invent.kde.org/qt/clang/llvm-project/-/commit/460778b9d64ed36fd7e80a4cc73ea552aebf016b

Git commit d7da964ee1eab426e0d1f617ae2947f4e30d304f by GitHub (on behalf of Balázs Benics) on 21/07/2026 at 11:46..
[analyzer][NFC] Add StackFrame parent-chain range helpers (#210938)

Walking a StackFrame's parent chain was open-coded across the Analysis
library and Static Analyzer as hand-rolled loops of the form `for (const
StackFrame *SF = X; SF; SF = SF->getParent())`.

Add range-based traversal helpers and convert the applicable loops:

* StackFrame::parents() - strict ancestors (excludes *this)
* StackFrame::parentsIncludingSelf() - *this then all ancestors

Both are built on a small forward `parent_iterator` that dereferences to
`const StackFrame &` and advances via getParent(), with a null
past-the-end sentinel.

For the common case of obtaining the current frame from an ExplodedNode
or CheckerContext, add a self-inclusive `stackframes()` convenience on
each that delegates to `getStackFrame()->parentsIncludingSelf()`.

Converted call-sites additionally adopt llvm::any_of / llvm::enumerate /
make_pointer_range where it makes the traversal more declarative. Loops
that stop at a target frame or advance conditionally (i.e. not "walk
until null") are intentionally left as-is.
https://invent.kde.org/qt/clang/llvm-project/-/commit/d7da964ee1eab426e0d1f617ae2947f4e30d304f

Git commit f72f994ad894bf82ab8d12f848f583c5d0cf0048 by GitHub (on behalf of Luke Hutton) on 21/07/2026 at 11:46..
[mlir][ods] Fix string interpolation at end of description (#209744)

Updates the error streaming string logic to handle the case where string
interpolation used at the end of the description. Previously this could
generate malformed code that would not compile e.g.:
```
"' failed to satisfy constraint: another attribute " << reformat(attr)";
```
With this change the above example would now generate:
```
"' failed to satisfy constraint: another attribute " << reformat(attr) << "";
```
https://invent.kde.org/qt/clang/llvm-project/-/commit/f72f994ad894bf82ab8d12f848f583c5d0cf0048

Git commit 3fc3ef399d9972361209917bf26ae9cc7317d3a9 by GitHub (on behalf of Akshay K) on 21/07/2026 at 11:47..
[Clang] Fix assertion failure when classifying a dependent call to a builtin (#210524)

## Summary
Fix an assertion failure when Clang classifies a built-in call with
type-dependent arguments before template instantiation, e.g., while
deducing an `auto` non-type template parameter:

  For example:
  ```cpp
  template <auto> struct S {};

  template <typename T>
  using Alias = S<__builtin_constant_p(T::x)>;
```
```
Assertion failed: (isa<T>(CanonicalType)), function castAs, file
TypeBase.h, line 9349.
 #9  clang::Type::castAs<clang::FunctionType>() const
 #10 clang::CallExpr::getCallReturnType(clang::ASTContext const&) const
 #11 ClassifyInternal(clang::ASTContext&, clang::Expr const*)
#12 clang::Expr::ClassifyImpl(clang::ASTContext&,
clang::SourceLocation*) const
 #13 clang::Sema::DeduceAutoType(...)
 #14 clang::Sema::CheckTemplateArgument(...)
```

## Cause
Built-in references initially have the BuiltinFn placeholder type. For a non-dependent call, `BuildResolvedCallExpr()` applies `CK_BuiltinFnToFnPtr`, converting the callee to its function-pointer type. 

When a call has type-dependent arguments, `BuildCallExpr()` postpones semantic analysis until instantiation. The callee, therefore, retains its BuiltinFn placeholder type. Deducing the auto non-type template parameter classifies the dependent call through `Expr::ClassifyImpl()`. This calls `CallExpr::getCallReturnType()`, which previously did not handle BuiltinFn and attempted to cast the placeholder to FunctionType, triggering an assertion.

The issue also affects ordinary builtins such as `__builtin_ffs` and is not specific to` __builtin_constant_p`.

 ## Fix
Handle `BuiltinFn` alongside the dependent and `Overload` callee cases in `CallExpr::getCallReturnType()` and return `DependentTy`. This matches the type `BuildCallExpr()` gives the `CallExpr` itself, so `getCallReturnType()` and `getType()` now agree on such calls.

Built-in resolution and built-in-specific type checking still occur as usual during template instantiation.

Added coverage for dependent calls and successful instantiation of `__builtin_constant_p` and `__builtin_ffs`,  a non-dependent control case, and getCallReturnType() for a BuiltinFn callee.
https://invent.kde.org/qt/clang/llvm-project/-/commit/3fc3ef399d9972361209917bf26ae9cc7317d3a9

Git commit fe0bc1136dc991486e6a84d6ed034dc3617faaa7 by GitHub (on behalf of Mariusz Sikora) on 21/07/2026 at 12:09..
[NFC][AMDGPU] Add s_wait asynccnt/tensorcnt test for gfx13 (#210916)
https://invent.kde.org/qt/clang/llvm-project/-/commit/fe0bc1136dc991486e6a84d6ed034dc3617faaa7

Git commit f2153eec7aaddd227c303bf0b6e6a8ccb7863857 by GitHub (on behalf of Alexis Engelke) on 21/07/2026 at 12:14..
[Xtensa][NFC] Use compact enum for CPUNames/features (#206954)

Store strings without relocations using compact enums. This reduces the
size of libLLVM.so .data.rel.ro by ~1kiB.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f2153eec7aaddd227c303bf0b6e6a8ccb7863857

Git commit 4d4bf128eb54cdd2ad347507208a202da1f9c172 by GitHub (on behalf of Arseniy Obolenskiy) on 21/07/2026 at 12:29..
[AMDGPU] Reject illegal buffer atomic data widths in SelectionDAG (#210925)

Continuation of the fix introduced in #210366, but this time for
raw/struct buffer atomics instead of image atomics
https://invent.kde.org/qt/clang/llvm-project/-/commit/4d4bf128eb54cdd2ad347507208a202da1f9c172

Git commit a83cc57559428ebd51d51c83db27a9454fbbe114 by GitHub (on behalf of eleviant) on 21/07/2026 at 12:31..
Attempt to fix buildbot failure (#210956)

Value names are discarded by default on build without asserts.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a83cc57559428ebd51d51c83db27a9454fbbe114

Git commit 981735b4df68cab22c5c8309f4fbc6b26aab7258 by GitHub (on behalf of Alexey Bataev) on 21/07/2026 at 12:32..
[SLP]Fix crash on short interleaved gathered-load remainder

A trailing, undersized chunk could keep an InterleaveFactor too
large for it, so RISCVTTIImpl::getInterleavedMemoryOpCost divided
by it and built a zero-element vector type.

Fixes #210849

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/210965
https://invent.kde.org/qt/clang/llvm-project/-/commit/981735b4df68cab22c5c8309f4fbc6b26aab7258

Git commit 3ed183660093a3d6aa286b5d1339a19c0c834aa1 by GitHub (on behalf of Ömer Sinan Ağacan) on 21/07/2026 at 12:33..
[GlobalISel][AArch64] Add more memcpy and memmove tests (NFC) (#210263)

Test inlined memcpy and memmove operations with multiple loads/stores
with different sizes.

New IR tests added for size 7 to check which one of load/store sequences
we generate:

- 4 + 2 + 1 bytes
- 4 + 4 bytes (4 bytes at offset, 4 bytes at offset + 3)

We also didn't have the `memcpy_inline_...` tests for the
`memmove.inline` intrinsic. I've copied all `memcpy_inline_...` tests
for `memmove.inline`, with the exception of sizes 65, 64, and 63, as I'm
not sure whether they're useful. (the same edge cases are already
checked in tests with sizes 10 and 7)

List of all IR tests added:

- memcpy_7
- memcpy_7_volatile
- memcpy_inline_7
- memcpy_inline_7_volatile
- memmove_7
- memmove_7_volatile
- memmove_inline_0
- memmove_inline_0_volatile
- memmove_inline_7
- memmove_inline_7_volatile
- memmove_inline_10
- memmove_inline_10_volatile
- memmove_inline_300
- memmove_inline_300_volatile
https://invent.kde.org/qt/clang/llvm-project/-/commit/3ed183660093a3d6aa286b5d1339a19c0c834aa1

Git commit 1a11f6ca17790ced1f3108c290e9c48d9bdb55e3 by GitHub (on behalf of Felipe de Azevedo Piovezan) on 21/07/2026 at 12:33..
[lldb] Delete AppleObjCRuntimeV1 (#203190)

This was used in older 32-bit ObjC programs, and it is not used anywhere
by the debugger.
https://invent.kde.org/qt/clang/llvm-project/-/commit/1a11f6ca17790ced1f3108c290e9c48d9bdb55e3

Git commit 27eeb7370281e4fdefdddeaa4b3cbb8ca11ea71f by GitHub (on behalf of Matt Arsenault) on 21/07/2026 at 12:38..
AMDGPU: Use module flags to control xnack and sramecc (#204595)

This ensures these ABI details are encoded in the IR module
rather than depending on external state from command-line flags.
Previously, these were encoded as function-level subtarget features.
The code object output was a single target ID directive implied
by the global subtarget. The backend would previously check if a
function's subtarget feature mismatched the global subtarget. This
is avoided by making xnack and sramecc module-level properties from
the start. This also provides proper linker compatibility
enforcement, moving the error point earlier.

The old encoding was also an abuse of the subtarget feature system.
Subtarget features are a bitvector, and later features in the string
can override earlier ones. The old handling added a special case
where explicit settings were preserved: ordinarily +feature,-feature
should result in the feature being disabled, but +xnack,-xnack would
preserve the explicit "-xnack" state, which differs from the absence
of any xnack setting.

The new flags are encoded as 0/1, with the "any" case represented
as the absence of the flag. I considered an explicit tri-state unknown
value, but decided against it.

This also removes warnings when using these module flags on targets
that do not support the corresponding feature. Previously, messages
were written directly to stderr instead of using proper diagnostics.
Avoiding the warning reduces burden on frontends to check which targets
require the flags.

For migration purposes, the subtarget features still exist. Currently,
they are still respected in the various binary tools, pending
disassembler changes to determine target ID modifiers from e_flags.
CodeGen requires using the module flags. An error will be raised when
attempting to use the old global subtarget features. These should be
removed after a migration period for frontends to update. Functionality
wise, bitcode autoupgrade should work. Old bitcode will not have the
flags, resulting in a different target ID in the output binary than
expected, but it should run correctly.

New cl::opts exist only because it was inconvenient to update all
tests using multiple xnack modes. Users should never use these.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/27eeb7370281e4fdefdddeaa4b3cbb8ca11ea71f

Git commit f90e121dde60bea7e2988cf277ca4a484bce33b9 by GitHub (on behalf of Paulius Velesko) on 21/07/2026 at 12:39..
[Darwin] Use macOS product version in ensureTargetInitialized (#206902)

`Darwin::ensureTargetInitialized()` recorded the raw triple OS version
from `getOSVersion()`, which on macOS is the Darwin *kernel* version
(e.g. `24.3.0`), not the macOS *product* version (`15.x`). The offload
host job later calls `setTarget()` again from `AddDeploymentTarget()`
with the product version; `setTarget()`'s reinit guard only
short-circuits when the versions match, so the mismatch trips
`assert(!TargetInitialized && "Target already initialized!")` and clang
aborts on every `-x hip --offload=spirv64* --target=arm64-apple-darwin`
compile.

Convert macOS kernel versions via `getMacOSXVersion()` so the lazy init
records the same version `AddDeploymentTarget()` uses later.
https://invent.kde.org/qt/clang/llvm-project/-/commit/f90e121dde60bea7e2988cf277ca4a484bce33b9

Git commit b1d21c6d3121898dc13c0df8cf9e4410bee75cfb by GitHub (on behalf of Paulius Velesko) on 21/07/2026 at 12:39..
[ExpandVariadics] Don't lower unmangled C printf on SPIR-V (#206998)

An unmangled C `printf` declaration demangles to bare `printf` (no
argument list), so `SPIRV::ignoreFunction`'s `printf(` prefix check
missed it and ExpandVariadics packed its arguments into a vararg buffer;
the SPIR-V backend then passed the buffer pointer as printf's first
variadic operand, so device printf printed pointer values instead of the
actual arguments. Match the bare name too so OpenCL/HIP printf (emitted
unmangled) is left as a variadic call for the backend's OpenCL.std
printf lowering.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b1d21c6d3121898dc13c0df8cf9e4410bee75cfb

Git commit 4aa8d561bb06ecf89c723524fddbf0b58c5ec205 by GitHub (on behalf of Paul Walker) on 21/07/2026 at 12:49..
[LLVM][SVE] Convert FFR intrinsic definition to use IntrRead/IntrWrite. (#210084)

Follows on from https://github.com/llvm/llvm-project/issues/154144 to
better articulate the FFR intrinsics memory effects.

I've been deliberatly cautious with marking FFR as read/write for the
load intrinsics. There is an argument they could be write only but I'm
not looking to optimise FFR accesses at this stage.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4aa8d561bb06ecf89c723524fddbf0b58c5ec205

Git commit 42972f5e5d950b6644a926f402dc54ea3ff06ec3 by GitHub (on behalf of Erich Keane) on 21/07/2026 at 12:56..
[CIR] Introduce data_member_offset attribute (#208777)

Some fields, like no_unique_address marked ones, aren't present in the
CIR struct type. This attribute represents an offset into a struct
instead, since get_member isn't possible without a member.

I also considered representing these types in the struct, but it ends up
causing a lot of awful looking structs, and forces the LLVMIR to contain
empty fields for each of these, but not in lexical order, which is
particularly awful looking.

I considered making this part of data-member, but it seems like not a
particularly good idea, since this isn't really getting a 'member' in
the traditional sense.
https://invent.kde.org/qt/clang/llvm-project/-/commit/42972f5e5d950b6644a926f402dc54ea3ff06ec3

Git commit 0e678e9ef18b1b2d3261207e288ae3f2667bbd19 by GitHub (on behalf of Nico Weber) on 21/07/2026 at 12:59..
[gn build] Port ea205541b987 (#210977)
https://invent.kde.org/qt/clang/llvm-project/-/commit/0e678e9ef18b1b2d3261207e288ae3f2667bbd19

Git commit 11a6145c5ed1f9676ad18189b7071e456c76bb79 by GitHub (on behalf of Nico Weber) on 21/07/2026 at 12:59..
[gn build] Port 921f4da4a05f (#210976)
https://invent.kde.org/qt/clang/llvm-project/-/commit/11a6145c5ed1f9676ad18189b7071e456c76bb79

Git commit 114372a86e7463cbdb52ced9f73cc7d70f49eda9 by GitHub (on behalf of Nico Weber) on 21/07/2026 at 12:59..
[gn build] Port 30c0454414ec (#210975)
https://invent.kde.org/qt/clang/llvm-project/-/commit/114372a86e7463cbdb52ced9f73cc7d70f49eda9

Git commit 14cb4614c65acc3c4f454220c2f2dae7b5ddaf34 by GitHub (on behalf of Nico Weber) on 21/07/2026 at 13:00..
[gn build] Port 1a11f6ca1779 (#210974)
https://invent.kde.org/qt/clang/llvm-project/-/commit/14cb4614c65acc3c4f454220c2f2dae7b5ddaf34

Git commit 2cd5deb2208683bc2d3545e125258a9714f3aef1 by GitHub (on behalf of Louis Dionne) on 21/07/2026 at 13:03..
[libc++] Fix test-at-commit after df4bb1f3106d (#210983)
https://invent.kde.org/qt/clang/llvm-project/-/commit/2cd5deb2208683bc2d3545e125258a9714f3aef1

Git commit 1d0b606198b502a307da0f688262a1044c38f316 by GitHub (on behalf of Dan Blackwell) on 21/07/2026 at 13:08..
[Darwin][TSan] Fix race in mach_vm_deallocate interceptor (#210716)

I have seen an issue whereby the meta store in MetaMap::AllocBlock lands
in the unmapped gap left during the tsan::MetaMap::ResetRange call;
where the range is first unmapped, and then remapped with MAP_FIXED.
This occurred under the mach_vm_deallocate interceptor, because it first
does the deallocate call, and only then does it call UnmapShadow -
leaving a gap where a fresh slab for malloc can land, only to have the
meta region for that range mapped out from under it, resulting in a bad
access fault.

It is worth noting that there is a comment above the IsValidMmapRange
function (which gets called during UnmapShadow), that describes this
exact issue in the context of munmap.

rdar://179172055

Assisted by: Claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/1d0b606198b502a307da0f688262a1044c38f316

Git commit 215b3e42d03e7e0cbd49ae0b15e726b3d1bdc360 by GitHub (on behalf of Michał Kurek) on 21/07/2026 at 13:18..
[DAGCombiner] Teach MatchLoadCombine to look through AND masks (#200247)

Fixes #191193

`MatchLoadCombine` can combine OR trees built from shifted/zexted
consecutive byte loads into a wider load, but it currently bails out
when one of the loaded bytes is masked before being shifted into place.
This will miss patterns such as the following
```
  zext(load i8 p) | (zext(and(load i8 p+1, 3)) << 8)
```
which can be implemented as a 16-bit load followed by a mask.

This PR teaches `calculateByteProvider()` to look through constant AND
masks by tracking the mask applied to each byte. When the byte providers
cover a consecutive load range, we form the wider load and apply a final
mask to preserve the original value.

Added X86 and AArch64 tests covering the masked-byte combine, plus
negative cases (non-adjacent loads, volatile, variable mask, multi-use
AND).

Assisted-by: Claude Code
https://invent.kde.org/qt/clang/llvm-project/-/commit/215b3e42d03e7e0cbd49ae0b15e726b3d1bdc360

Git commit 81081c00e99e35394e4d09016e565443cbec254e by GitHub (on behalf of Momchil Velikov) on 21/07/2026 at 13:19..
[GVN] Remove unused debug helper (NFC) (#210333)

The `GVNPass::dump` method is not used anywhere. Moreover, there's no
`GVNPass` state that corresponds to its parameter type. Even if a
`GVNPass::dump` method could be useful, this one wasn't it.
https://invent.kde.org/qt/clang/llvm-project/-/commit/81081c00e99e35394e4d09016e565443cbec254e

Git commit 7c445ab1d08597a89a829ff938b55264cc480150 by GitHub (on behalf of Zorojuro) on 21/07/2026 at 13:20..
[libc] Float128 Emulation in LLVM libc (#200565)

Introducing emulated float128 in LLVM libc
https://invent.kde.org/qt/clang/llvm-project/-/commit/7c445ab1d08597a89a829ff938b55264cc480150

Git commit 7c40a1d796cec2207bc697d94355a71962ee33df by GitHub (on behalf of Simon Pilgrim) on 21/07/2026 at 13:26..
[CostModel][X86] getArithmeticReductionCost - convert to CostKindTblEntry entries. NFC. (#210969)

No actual cost changes yet, but makes it much easier to adjust costs as
we progress.
https://invent.kde.org/qt/clang/llvm-project/-/commit/7c40a1d796cec2207bc697d94355a71962ee33df

Git commit b679982e67d34e8afa925691715aa69e06ea7e80 by GitHub (on behalf of Florian Hahn) on 21/07/2026 at 13:32..
[VPlan] Remove additional stray whitespace when printing calls. (#210979)

VPWidenCallRecipe::print had a stray whitespace between call and
fucntion name. Strip stray whitespace and add strict whitespace test to
guard against regressions.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b679982e67d34e8afa925691715aa69e06ea7e80

Git commit c3e48dfd552de502f778f1b190933944a62cf75a by GitHub (on behalf of Joel E. Denny) on 21/07/2026 at 13:38..
[FileCheck][NFC] Encapsulate more into InputAnnotationLabeler (#207484)

This patch migrates more label-making concerns from
buildInputAnnotations into the InputAnnotationLabeler. It also
eliminates the brittle approach of creating a new InputAnnotationLabeler
object with a separate label prefix upon each MatchResultDiag while
persisting an object to close the previous search range. Instead, this
patch creates just one InputAnnotationLabeler object to handle all
diags, and it maintains a table of label prefixes for check patterns.
That approach seems easier to understand and more amenable to code
evolution.
https://invent.kde.org/qt/clang/llvm-project/-/commit/c3e48dfd552de502f778f1b190933944a62cf75a

Git commit f2f92e5f3bccad7110caba80fec22af3eab460c7 by Joel E. Denny on 21/07/2026 at 13:40..
Merge branch 'main' into filecheck-improve-labeler
https://invent.kde.org/qt/clang/llvm-project/-/commit/f2f92e5f3bccad7110caba80fec22af3eab460c7

Git commit 12ba2cf340910c2e4df9ae5dd22a1680a7c61194 by Joel E. Denny on 21/07/2026 at 13:44..
Merge branch 'filecheck-improve-labeler' into filecheck-diag-annotator
https://invent.kde.org/qt/clang/llvm-project/-/commit/12ba2cf340910c2e4df9ae5dd22a1680a7c61194

Git commit 66f82a352be7b4d5d4f8c8ef1733b398ab912fcf by Joel E. Denny on 21/07/2026 at 13:45..
Merge branch 'filecheck-diag-annotator' into filecheck-pattern-notes
https://invent.kde.org/qt/clang/llvm-project/-/commit/66f82a352be7b4d5d4f8c8ef1733b398ab912fcf
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.