LLVM/project 5302d36 — clang/docs/analyzer checkers.md, clang/lib/StaticAnalyzer/Checkers/WebKit PtrTypesSemantics.cpp ASTUtils.cpp

[WebKit Checkers] Add built-in recognition for standard view types (#226350)

libc++ doesn't fully annotate `[[clang::lifetimebound]]` for all view
types. This results in false negatives in borrow checking.

Ultimately we need to fix this in libc++, but for now we can work around
the most common / most important false negatives. For example, borrow
checking can now check

    for (auto& x : vector | std::views::reverse) { ... }

Assisted-by: Claude
DeltaFile
+234-9clang/test/Analysis/Checkers/WebKit/unborrowed-local-vars-cxx23.cpp
+64-40clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
+46-1clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
+45-0clang/test/Analysis/Checkers/WebKit/unborrowed-local-vars.cpp
+30-0clang/test/Analysis/Checkers/WebKit/mock-canborrow.h
+20-0clang/docs/analyzer/checkers.md
+439-502 files not shown
+447-508 files

LLVM/project ab52e9f — libcxx/include valarray complex, libcxx/test/std/numerics/complex.number/complex complex_requires_cv_unqualified_object.verify.cpp

[libc++] Add static_assert diagnostics for LWG3133 named requirements (#212360)

Add a static_assert to both std::complex<T> and std::valarray<T>
requiring that T be a cv-unqualified object type that satisfies the
Cpp17DefaultConstructible, Cpp17CopyConstructible, Cpp17CopyAssignable,
and Cpp17Destructible named requirements, per the revised wording in
[numeric.requirements]. This mirrors the existing pattern already used
by std::optional<T>.

Non-_v (class-style) trait forms are used throughout so that the
assertion is well-formed even when <complex>/<valarray> are included in
C++03/11/14 mode.

Test coverage:
- A .verify.cpp for complex<T> and one for valarray<T>, each covering
six failure modes: cv-qualified types, and one type violating each of
the four named requirements individually.

Follows-up e062a29cf865bb7cadea6cb605c9f3515e5b883f.
DeltaFile
+63-0libcxx/test/std/numerics/complex.number/complex/complex_requires_cv_unqualified_object.verify.cpp
+62-0libcxx/test/std/numerics/numarray/template.valarray/valarray_requires_cv_unqualified_object.verify.cpp
+11-0libcxx/include/valarray
+11-0libcxx/include/complex
+147-04 files

LLVM/project f950b04 — llvm/include/llvm/Transforms/Utils LoopUtils.h, llvm/lib/Transforms/Utils LoopUnroll.cpp LoopUtils.cpp

[Transforms] Remove unused functions (NFC) (#226655)

createAnyOfReduction:
The last caller was removed on January 18, 2026 in commit
ae1bd068db293c494c4c6314da3b9d138706460d.

canHaveUnrollRemainder:
The last caller, in an assert, was removed on May 1, 2026 in commit
316f0d3bfeaf7eee7b6d4ae60d357a8216ec5264.

Assisted-by: Antigravity
DeltaFile
+0-30llvm/lib/Transforms/Utils/LoopUtils.cpp
+0-20llvm/lib/Transforms/Utils/LoopUnroll.cpp
+0-5llvm/include/llvm/Transforms/Utils/LoopUtils.h
+0-553 files

LLVM/project e217205 — llvm/test/Transforms/LoopVectorize find-last-ptr-induction.ll iv-select-cmp.ll, llvm/test/Transforms/LoopVectorize/AArch64 conditional-scalar-assignment.ll

[VPlan] Mark default value or ExtractLastActive as only first lane used. (#226153)

The default value (operand 0) of ExtractLastActive is the scalar value
of @llvm.experimental.vector.extract.last.active. Only the first lane is
used, mark accordingly.

PR: https://github.com/llvm/llvm-project/pull/226153
DeltaFile
+12-16llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment.ll
+8-12llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
+4-6llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll
+4-6llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
+3-4llvm/test/Transforms/LoopVectorize/find-last-ptr-induction.ll
+3-4llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment.ll
+34-484 files not shown
+39-5410 files

LLVM/project 173c08c — lld/ELF/Arch LoongArch.cpp

[lld][LoongArch] Prevent relaxation oscillation for PCHi20 and CALL

Relaxation of pcalau12i+addi (relaxPCHi20Lo12, isInt<22>) and
call36/call30 (relaxMediumCall, isInt<28>) can oscillate: shrinking
one section moves a symbol, which flips isInt<N> for other sites and
changes bytesDropped again.  In large programs (e.g. Rust) the PC of
a site can stabilize while Dest jitter near the range limit, so
remove keeps alternating between 0 and 4 and relaxOnce never settles.

Follow the same approach as RISCV::relaxCall: after a few passes, do
not allow remove to increase beyond the previous pass's value
(cur - delta).  Pass that cap as prevRemove into the two helpers;
range checks may still clear remove (0) when the target goes out of
range.

No reduced in-tree stress test: the failure is layout- and
input-order-sensitive and was validated against a fixed response-file
reproduction in the bug issue.
DeltaFile
+22-7lld/ELF/Arch/LoongArch.cpp
+22-71 files

LLVM/project 7ff1282 — llvm/lib/CodeGen SpillPlacement.cpp, llvm/test/CodeGen/AMDGPU wave-profile-spill-zero-cost.mir

[CodeGen] Keep wave-profiled spill frequencies positive

SpillPlacement expects positive block weights, but a valid wave profile can
record zero executions for a CFG-reachable block. Giving such a block zero
spill cost can make the allocator choose a very different placement.

Clamp every accepted wave-derived frequency to at least one, as we already
do for nonzero counts that round down to zero. Unmeasured or rejected blocks
still use their existing MBFI frequency. Add a focused MIR test for a valid
zero-wave record.

This pattern arose in a profiled Composable Kernel convolution case. With
the separate spill correctness fixes and partial spilling enabled, the
zero-cost policy failed two CPU-reference checks; the positive floor passed
both. The test checks the cost directly; the application result was checked
separately on gfx950.
DeltaFile
+27-0llvm/test/CodeGen/AMDGPU/wave-profile-spill-zero-cost.mir
+3-2llvm/lib/CodeGen/SpillPlacement.cpp
+30-22 files

LLVM/project 688a149 — clang/lib/Sema SemaOpenMP.cpp, clang/test/OpenMP collapse_iv_width_codegen.cpp

[Clang][OpenMP] Optimize `collapse` IV bit-width precision expression (#225612)

`collapse` used to build both a 32-bit and a 64-bit trip-count, then
keep one.

This patch does the same in `checkOpenMPLoop`:

If we know 32-bit is enough, build only 32-bit.
Else build 64-bit first.
Build 32-bit only when the product is a compile-time constant and fits.

Origin: `flatten` already builds only the width it keeps.
DeltaFile
+56-52clang/lib/Sema/SemaOpenMP.cpp
+52-0clang/test/OpenMP/collapse_iv_width_codegen.cpp
+108-522 files

LLVM/project 0a90c92 — mlir/test/Dialect/Affine int-range-interface.mlir, mlir/test/Dialect/Arith int-range-interface.mlir int-range-narrowing.mlir

[mlir] Remove remaining strict property assembly opt-outs (#226702)

Migrate Toy, test, and Python dialect formats to use prop-dict for
inherent properties. Update assembly fixtures and expected output for
strict property printing.

Assisted-by: Codex
DeltaFile
+83-83mlir/test/Dialect/GPU/int-range-interface.mlir
+70-70mlir/test/Dialect/Arith/int-range-narrowing.mlir
+55-55mlir/test/Dialect/Affine/int-range-interface.mlir
+42-41mlir/test/python/dialects/python_test.py
+35-35mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
+34-34mlir/test/Dialect/Arith/int-range-interface.mlir
+319-31835 files not shown
+525-55741 files

LLVM/project 6b85e67 — clang/lib/CIR/CodeGen CIRGenCUDANV.cpp, clang/lib/CIR/Dialect/Transforms LoweringPrepare.cpp

[CIR][CUDA] Read fat binary in CIRGen and store its bytes on the module (#225971)

Two problems with the current implementation of GPU CIR:

1. `LoweringPrepare` read the fat binary from disk, via
`astCtx->getSourceManager().getFileManager().getVirtualFileSystem()`. A
   transform pass should not do I/O, and this is one of the `ASTContext`
   dependencies that keeps the post-CIRGen pipeline from being IR-to-IR.
Some of the related discussion on this has been done
[here](https://discourse.llvm.org/t/rfc-clangir-making-cir-pipeline-boundaries-first-class-driver-artifacts/90998)
and PR: #219048
2. `#cir.cu.binary_handle` stored the *file path*. That's a build input,
not a
property of the program: it bakes one machine's directory layout into a
   `.cir`.

The PR removes the file path and adds an attribute
CIRGen now reads the file in and records the contents 
as `#cir.cu.device_binary`, a `StringAttr` of raw bytes. The

    [14 lines not shown]
DeltaFile
+68-2clang/lib/CIR/CodeGen/CIRGenCUDANV.cpp
+16-32clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+34-0clang/test/CIR/IR/invalid-cuda-device-binary.cir
+22-0clang/test/CIR/CodeGenCUDA/missing-gpubinary.cu
+21-0clang/test/CIR/Diagnostics/mlir-error-routing.cpp
+0-20clang/test/CIR/Diagnostics/mlir-error-routing.cu
+161-545 files not shown
+185-8411 files

LLVM/project 2305da8 — llvm/test/Transforms/SLPVectorizer/AMDGPU cross-block-fmul-fadd.ll

[NFC][SLP][AMDGPU] Precommit a cross-block fmul fadd contraction test (#226609)

Two contract fmuls feed contract fadds in different successors. AMDGPU
sinks such an fmul into the block of its user and fuses the pair, so the
scalar form is one fma per path. Record the current behaviour, the pair
is kept scalar when the fmul is operand 0 of the fadd and paired when it
is operand 1.
DeltaFile
+124-0llvm/test/Transforms/SLPVectorizer/AMDGPU/cross-block-fmul-fadd.ll
+124-01 files

LLVM/project 2dc8cb1 — clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

[SSAF] Close unsafe-buffer reachability over override families

An unsafe pointer reaching one override's parameter is equally unsafe in every
sibling and base override of that method, because the call site picks the
target dynamically. Without closing over the families, reachability depended
on which override the extractor happened to see the flow through, so a fix
suggested for the base could be contradicted by a derived override.

- Mirroring is level-preserving: families relate slot entities, so a reachable
  EPL propagates only to the same pointer level on its family members.
- Mirroring happens inside the pointer-flow search, so flows out of a mirrored
  EPL are followed too.
- Type-constrained slots are never mirrored onto, so C3 still holds.

§4 of rdar://179151603

Assisted-By: claude
DeltaFile
+240-0clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+55-14clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+295-142 files

LLVM/project 7d76686 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses CMakeLists.txt

[SSAF] Serialize virtual method summaries and families

Per-TU summaries and whole-program results cross process boundaries, and the
JSON layer refuses to write a summary kind it has no format for. Register both
sides so --ssaf-extract-summaries=VirtualMethod becomes usable and the family
result survives a round trip.

Deserialization tolerates a missing override list, since a root virtual method
legitimately has none.

§3 of rdar://179151603
DeltaFile
+379-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/VirtualMethodFamilyFormatTest.cpp
+186-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyFormat.cpp
+22-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+5-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+594-01 files not shown
+595-07 files

LLVM/project 9350306 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamilyAnalysis.cpp

[SSAF] Drop the unused OwnerMethodId from method families

The only consumer, the unsafe-buffer reachability closure, needs just the family
a slot belongs to.
- Recording the owning method cost a map per analysis and a field per slot for
  nothing.
- With only the family left, the per-slot `Data` collapses into a plain
  slot-to-family map.

Assisted-By: claude
DeltaFile
+42-86clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysisTest.cpp
+7-46clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+5-25clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+54-1573 files

LLVM/project 0c4ac41 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamilyAnalysis.cpp

[SSAF] Drop the dead MethodFamilyUnionFind::seed overloads

Nothing calls either overload; they are scaffolding left over from the
prototype this analysis was extracted from.

- `Roots` is populated entirely by the lazy self-rooting in `find()`,
  reached via `unionSets()`.
- `seed(E, Owner)` ignored `Owner` altogether. The parameter only existed
  because `seed(Owner, S)` was copy-pasted from
  `Owners::recordOwner(Owner, S)`, which does need it.
- Where the prototype did call `seed`, it ran immediately above
  `unionSets()` over the same entities, so it was a no-op there too.

Also document that a virtual method with no override relation contributes
no entries, so the omission reads as deliberate rather than as a gap.

Assisted-By: claude
DeltaFile
+0-11clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+1-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-112 files

LLVM/project 8c817d5 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/include/clang/ScalableStaticAnalysis/Core/Model EntityId.h

[SSAF] Group virtual method slots into override families

A virtual call site can dispatch to any override, so the parameter and return
slots that occupy the same vtable slot across an override chain are
indistinguishable to a caller. Whole-program consumers therefore have to treat
them as one unit or they will reason about a slot that a call never actually
reaches.

Compute those units up front, keyed per slot, so consumers only need a map
lookup rather than their own traversal of the override relation. Overloads
occupy distinct vtable slots and stay in distinct families.

The family representative is the smallest EntityId in the class, which keeps
the result stable across runs.

§2 of rdar://179151603
DeltaFile
+336-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysisTest.cpp
+201-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+46-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+11-0clang/include/clang/ScalableStaticAnalysis/Core/Model/EntityId.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+596-01 files not shown
+597-07 files

LLVM/project ea0493b — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodEntityExtractor.cpp

[SSAF] Extract the virtual method override relation per TU (#213316)

A virtual call may dispatch to any override of its callee, so a whole-program
analysis cannot reason about a method's parameters and return value in
isolation. It needs to know which method overrides which, and which slots
that relates. Collect this per TU, so a later pass can join the related
slots into families.

JSON serialization lands separately, so the summary is not writable via
`--ssaf-extract-summaries` yet.

§1 of rdar://179151603

Assisted-By: claude
DeltaFile
+264-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyExtractorTest.cpp
+155-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyTestSupport.h
+145-0clang/unittests/ScalableStaticAnalysis/ParsedAST.h
+92-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodEntityExtractor.cpp
+51-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+708-02 files not shown
+710-08 files

LLVM/project 8b96ddb — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 trimmed-node-matching-gather-emitted-first.ll

[SLP]Do not reuse transformed nodes in gathers emitted before their user

Gathers of the users with all scalars used outside the block are emitted
before the user, while the transformed nodes are emitted with the user.
Reusing such a transformed node postponed the gather and moved only the
last instruction of the transformed node buildvector, breaking dominance.

Fixes #226674

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/226687
DeltaFile
+69-0llvm/test/Transforms/SLPVectorizer/X86/trimmed-node-matching-gather-emitted-first.ll
+4-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+73-22 files

LLVM/project f432cba — mlir/include/mlir/Transforms GreedyPatternRewriteDriver.h, mlir/lib/Transforms/Utils GreedyPatternRewriteDriver.cpp

[mlir] Avoid rewriting unreachable blocks in the greedy driver

A rewrite can disconnect a block after the iteration's initial CFG sweep.
Track reachability through rewriter notifications and skip worklist
operations in unreachable blocks until the next iteration removes them.

Cache reachability per region and compare final successors after each
rewrite. Preserve the cache for successor-equivalent changes, added edges,
and block merges that keep surviving blocks reachable. Recompute for other
CFG changes, including entry changes and cross-region block moves.

Keep cache updates separate from reachability queries, returning failure
when a full traversal is required. Collect each successor set once for
validation and retain compact vector snapshots in the cache. Check
containing blocks when querying operations in nested regions, caching the
ancestor result until listener notifications invalidate it.

Cover inserted and redirected blocks, blocks connected before rewrite
completion, nested regions, block moves and merges, and explicit op lists.

    [6 lines not shown]
DeltaFile
+259-1mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+206-0mlir/test/Transforms/greedy-cfg-reachability.mlir
+94-4mlir/test/lib/Dialect/Test/TestPatterns.cpp
+51-5mlir/test/Transforms/test-strict-pattern-driver.mlir
+41-0mlir/test/Transforms/canonicalize-dce.mlir
+9-3mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
+660-136 files

LLVM/project 1916c2c — clang/lib/AST/ByteCode EvaluationResult.cpp, libcxx/test/std/algorithms/alg.modifying.operations/alg.swap pstl.swap_ranges.pass.cpp

Rebase, address comments, improvements

Created using spr 1.3.7
DeltaFile
+733-228llvm/test/Transforms/LoopVectorize/VPlan/execution-frequencies-match-bfi.ll
+389-0llvm/test/Transforms/LoopFusion/guard_skip_empty_block.ll
+1-381clang/lib/AST/ByteCode/EvaluationResult.cpp
+252-26orc-rt/test/unit/support/bind-test.cpp
+187-0libcxx/test/std/algorithms/alg.modifying.operations/alg.swap/pstl.swap_ranges.pass.cpp
+164-0llvm/test/CodeGen/AArch64/sve-fixed-length-shuffle-reverse.ll
+1,726-635334 files not shown
+6,348-2,420340 files

LLVM/project 10872fe — llvm/test/Transforms/SLPVectorizer/AArch64 reduced-value-next-to-fused-fmul.ll, llvm/test/Transforms/SLPVectorizer/AMDGPU fmul-sunk-into-fadd-block.ll

[SLP][NFC]Add extra FMA candidates tests, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/226684
DeltaFile
+52-0llvm/test/Transforms/SLPVectorizer/AMDGPU/fmul-sunk-into-fadd-block.ll
+42-0llvm/test/Transforms/SLPVectorizer/AArch64/reduced-value-next-to-fused-fmul.ll
+94-02 files

LLVM/project 9f8d812 — clang/lib/CodeGen BackendConsumer.h CodeGenAction.cpp, clang/lib/Interpreter Interpreter.cpp DeviceOffload.h

Revert "[clang-repl] Implement IncrementalHIPDeviceParser for HIP device compilation" (#226679)

Reverts llvm/llvm-project#218337 buildbot failures
DeltaFile
+8-209clang/lib/Interpreter/DeviceOffload.cpp
+9-55clang/lib/Interpreter/DeviceOffload.h
+0-50clang/unittests/Basic/TargetIDTest.cpp
+0-9clang/lib/CodeGen/CodeGenAction.cpp
+0-8clang/lib/CodeGen/BackendConsumer.h
+6-1clang/lib/Interpreter/Interpreter.cpp
+23-3323 files not shown
+25-3409 files

LLVM/project c495a9b — mlir/docs ReleaseNotes.md, mlir/docs/DefiningDialects Operations.md _index.md

[mlir] Enable strict properties in assembly formats by default (#225742)

Make strict property assembly formats the default and remove redundant
per-dialect settings. Keep legacy test fixtures explicitly opted out and
update the documentation.

Downstream can opt out for now using `let
useStrictPropertiesInAssemblyFormat = 0;` ; This will be removed in a
future release.

Part of #155475 

Assisted-by: Codex
DeltaFile
+11-13mlir/docs/DefiningDialects/_index.md
+8-12mlir/docs/DefiningDialects/Operations.md
+12-0mlir/docs/ReleaseNotes.md
+6-5mlir/include/mlir/IR/DialectBase.td
+2-1mlir/test/mlir-tblgen/op-format.td
+2-1mlir/test/mlir-tblgen/op-format-invalid.td
+41-3260 files not shown
+54-8066 files

LLVM/project 8228ace — mlir/include/mlir/Transforms GreedyPatternRewriteDriver.h, mlir/lib/Transforms/Utils GreedyPatternRewriteDriver.cpp

[mlir] Avoid rewriting unreachable blocks in the greedy driver

A rewrite can disconnect a block after the iteration's initial CFG sweep.
Track reachability through rewriter notifications and skip worklist
operations in unreachable blocks until the next iteration removes them.

Cache reachability per region and compare final successors after each
rewrite. Preserve the cache for successor-equivalent changes, added edges,
and block merges that keep surviving blocks reachable. Recompute for other
CFG changes, including entry changes and cross-region block moves.

Keep cache updates separate from reachability queries, returning failure
when a full traversal is required. Collect each successor set once for
validation and retain compact vector snapshots in the cache. Check
containing blocks when querying operations in nested regions.

Cover inserted and redirected blocks, blocks connected before rewrite
completion, nested regions, block moves and merges, and explicit op lists.
Use observer diagnostics to check whether affected operations are processed

    [5 lines not shown]
DeltaFile
+187-1mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+171-0mlir/test/Transforms/greedy-cfg-reachability.mlir
+83-4mlir/test/lib/Dialect/Test/TestPatterns.cpp
+51-5mlir/test/Transforms/test-strict-pattern-driver.mlir
+41-0mlir/test/Transforms/canonicalize-dce.mlir
+9-3mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
+542-136 files

LLVM/project e9e2743 — llvm/lib/Target/AVR AVRRegisterInfo.cpp TODO.md

[AVR][NFC] Improve some comment messages (#226423)
DeltaFile
+10-9llvm/lib/Target/AVR/AVRInstrInfo.td
+7-6llvm/lib/Target/AVR/AVRISelLowering.cpp
+5-5llvm/lib/Target/AVR/AVRInstrInfo.cpp
+4-4llvm/lib/Target/AVR/AVRDevices.td
+0-7llvm/lib/Target/AVR/TODO.md
+2-2llvm/lib/Target/AVR/AVRRegisterInfo.cpp
+28-334 files not shown
+33-3910 files

LLVM/project fbbf217 — clang/lib/CodeGen BackendConsumer.h CodeGenAction.cpp, clang/lib/Interpreter Interpreter.cpp DeviceOffload.h

Revert "[clang-repl] Implement IncrementalHIPDeviceParser for HIP device comp…"

This reverts commit 0b4f72d00bdd2ef1707c5098d12936bfa159b414.
DeltaFile
+8-209clang/lib/Interpreter/DeviceOffload.cpp
+9-55clang/lib/Interpreter/DeviceOffload.h
+0-50clang/unittests/Basic/TargetIDTest.cpp
+0-9clang/lib/CodeGen/CodeGenAction.cpp
+0-8clang/lib/CodeGen/BackendConsumer.h
+6-1clang/lib/Interpreter/Interpreter.cpp
+23-3323 files not shown
+25-3409 files

LLVM/project fccc863 — orc-rt/include/orc-rt/bedrock/sps SimpleRemoteCAOverSocket.h, orc-rt/lib/bedrock/sys/posix/sps SimpleRemoteCAOverSocket.cpp

[orc-rt] SimpleRemoteCAOverSocket: require a stream socket. (#226676)

SimpleRemote framing reads each message in as many parts as the socket
delivers it, which a socket that preserves message boundaries (datagram,
seqpacket) would truncate. Check SO_TYPE up front and reject anything
but SOCK_STREAM; the socket is owned by then, so it is closed on
failure.

Assisted-by: Claude
DeltaFile
+16-0orc-rt/test/unit/bedrock/sps/SimpleRemoteCAOverSocketTest.cpp
+10-0orc-rt/lib/bedrock/sys/posix/sps/SimpleRemoteCAOverSocket.cpp
+2-1orc-rt/include/orc-rt/bedrock/sps/SimpleRemoteCAOverSocket.h
+28-13 files

LLVM/project e8e4a54 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-fixed-length-shuffle-reverse.ll

[AArch64] Use SVE rev for full reverse shuffles with SVE128 (#224589)

When the vscale_range is always 1, we can make use of the SVE rev
instruction to perform a full 128bit vector reverse.

Sidesteps #223597 for SVE128
DeltaFile
+18-12llvm/test/CodeGen/AArch64/sve-fixed-length-shuffle-reverse.ll
+11-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+29-132 files

LLVM/project babcc2b — clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

[SSAF] Close unsafe-buffer reachability over override families

An unsafe pointer reaching one override's parameter is equally unsafe in every
sibling and base override of that method, because the call site picks the
target dynamically. Without closing over the families, reachability depended
on which override the extractor happened to see the flow through, so a fix
suggested for the base could be contradicted by a derived override.

- Mirroring is level-preserving: families relate slot entities, so a reachable
  EPL propagates only to the same pointer level on its family members.
- Mirroring happens inside the pointer-flow search, so flows out of a mirrored
  EPL are followed too.
- Type-constrained slots are never mirrored onto, so C3 still holds.

§4 of rdar://179151603

Assisted-By: claude
DeltaFile
+240-0clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+55-14clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+295-142 files

LLVM/project e7019f8 — mlir/lib/Dialect/IRDL/IR IRDL.cpp, mlir/lib/Target/IRDLToCpp IRDLToCpp.cpp

[MLIR][IRDL] Instantiate "." in IRDL-defined names as nested namespaces (#207035)

In PR #187911, it was revealed that the constraints on IRDL op names
placed by irdl-to-cpp were too restrictive.
This PR will address that by allowing "." in operation names to denote
nested namespaces, but not "$".

To discuss:
- ops like `wmma.f16.16x16x64.bf8_bf` cannot be registered as C++
identifiers cannot begin with a number. In discussions, we have opted to
prefix the generated namespaces with _.

Codex was used to generate the lit tests.

Close #187911.

Assisted-by: OpenAI Codex (GPT-5 and 6)
DeltaFile
+110-12mlir/test/lib/Dialect/TestIRDLToCpp/test_irdl_to_cpp.irdl.mlir
+89-23mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
+17-12mlir/lib/Dialect/IRDL/IR/IRDL.cpp
+216-473 files

LLVM/project f696114 — clang/include/clang/ScalableStaticAnalysis BuiltinAnchorSources.def, clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h

[SSAF] Serialize virtual method summaries and families

Per-TU summaries and whole-program results cross process boundaries, and the
JSON layer refuses to write a summary kind it has no format for. Register both
sides so --ssaf-extract-summaries=VirtualMethod becomes usable and the family
result survives a round trip.

Deserialization tolerates a missing override list, since a root virtual method
legitimately has none.

§3 of rdar://179151603
DeltaFile
+379-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/VirtualMethodFamilyFormatTest.cpp
+186-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyFormat.cpp
+22-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+5-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+1-0clang/include/clang/ScalableStaticAnalysis/BuiltinAnchorSources.def
+594-01 files not shown
+595-07 files