LLVM/project e0a86c1 — llvm/include/llvm/ADT ConcurrentHashtable.h, llvm/include/llvm/DWARFLinker StringPool.h

[ADT] Fix dangling key in ConcurrentHashTableInfoByPtr::getKey (#237642)
DeltaFile
+6-32llvm/lib/DWARFLinker/Parallel/TypePool.h
+6-32llvm/include/llvm/DWARFLinker/StringPool.h
+25-0llvm/unittests/ADT/ConcurrentHashtableTest.cpp
+1-1llvm/include/llvm/ADT/ConcurrentHashtable.h
+38-654 files

LLVM/project b8ef6b0 — llvm/lib/Transforms/IPO Attributor.cpp, llvm/test/Transforms/Attributor cgscc-new-ref-edge.ll

Attributor: Update the call graph for functions with replaced uses (#231546)

When the Attributor replaced the uses of a value, it only marked the
function of the replaced value as needing a call graph update if that
value was an instruction. Replacing an argument with a function, e.g., a
function pointer passed by all callers, adds a reference to that function 
without updating the call graph. The next function pass in the CGSCC
pipeline then hit an assertion about new reference edges. Mark the
function of every changed use instead.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+48-0llvm/test/Transforms/Attributor/cgscc-new-ref-edge.ll
+7-4llvm/lib/Transforms/IPO/Attributor.cpp
+55-42 files

LLVM/project 883cb94 — mlir/include/mlir/TableGen Format.h, mlir/lib/TableGen Format.cpp

[mlir][tblgen] Finish checked formatting migration through PDLL

Register parsed TableGen source buffers before processing imported
records. Format the predicate before wrapping it in the generated
success return, and propagate failure without appending an invalid
declaration.

Adapt shared formatting messages to PDLL diagnostics. Anchor the primary
at the import in the main document so LSP publishes it, and retain the
constraint definition, multiclass instantiations, and nested PDLL import
locations as notes. Formatting errors return through the parser and
leave the language server alive for subsequent edits.

Deprecate pointer-taking factories, lazy object types, PHKind shims, and
the unchecked summary helper while retaining compatibility behavior.
Migrate successful format tests and suppress warnings locally around
intentional legacy tests. Document recoverable import errors in the PDLL
reference.


    [9 lines not shown]
DeltaFile
+98-25mlir/lib/Tools/PDLL/Parser/Parser.cpp
+78-21mlir/unittests/TableGen/FormatTest.cpp
+79-0mlir/test/mlir-pdll-lsp-server/format-errors.test
+78-0mlir/test/mlir-pdll/Parser/format-errors.pdll
+18-5mlir/include/mlir/TableGen/Format.h
+7-0mlir/lib/TableGen/Format.cpp
+358-513 files not shown
+371-519 files

LLVM/project 9db43d4 — mlir/docs/DefiningDialects Operations.md, mlir/lib/TableGen CodeGenHelpers.cpp

[mlir][tblgen] Check substitutions throughout code generation

Migrate generator and shared-verifier emission to eager fatal formatting
with template-definition origins and operation use notes. Synthesized
properties without a record fall back to the operation location.
Speculative attribute and property uniquing now consumes checked errors
and falls back to inline verification. Keep value-specific bindings
local to their verifier.

Add checked summary-expression formatting that retains the escaped
segment and propagates its owned error to the source diagnostic
boundary. Expose reference-taking tgfmt and tgfmtv overloads returning
Expected, retain transition aliases, and document formatting semantics
and diagnostics in the existing ODS guide.

Escape literal dollars in a test builder comment, and keep the nested
matcher error test focused on its intended invalid DAG. Add regression
coverage for shared and inline constraints, summaries, attribute
templates, interface templates, and the reference-taking API.

    [6 lines not shown]
DeltaFile
+163-78mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+196-0mlir/test/mlir-tblgen/format-substitution-errors.td
+104-67mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
+109-57mlir/tools/mlir-tblgen/OpFormatGen.cpp
+107-30mlir/lib/TableGen/CodeGenHelpers.cpp
+90-0mlir/docs/DefiningDialects/Operations.md
+769-23212 files not shown
+1,014-29718 files

LLVM/project fad8fc9 — mlir/include/mlir/TableGen CodeGenHelpers.h, mlir/lib/TableGen CodeGenHelpers.cpp Format.cpp

[mlir][tblgen] Diagnose substitution failures at their source

Render owned formatting errors as source-aware messages, preserving
inner definition origins, use sites, and multiclass location arrays.
Consume every error payload before printing and terminating so joined
errors and their notes are not lost.

Add eager fatal wrappers for generator boundaries and use them for trait
predicates. Missing substitutions now fail in TableGen with the
template, failed occurrences, and available bindings instead of
generating bad C++. Snapshot the trait context before value verifiers
add temporary bindings, so an inline attribute check cannot accidentally
bind $_self for a trait.

Share message construction between generic logging and source
diagnostics. Use portable death-test expressions and handle invalid
success payloads defensively at the fatal-reporting boundary.

Validation: 74 TableGen unit tests and all 69 mlir-tblgen lit tests

    [6 lines not shown]
DeltaFile
+128-2mlir/unittests/TableGen/FormatTest.cpp
+81-27mlir/lib/TableGen/Format.cpp
+60-0mlir/test/mlir-tblgen/op-error.td
+42-0mlir/lib/TableGen/CodeGenHelpers.cpp
+27-1mlir/include/mlir/TableGen/CodeGenHelpers.h
+10-4mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+348-341 files not shown
+361-347 files

LLVM/project c7b2e8f — mlir/include/mlir/TableGen Format.h, mlir/lib/TableGen Format.cpp

[mlir][tblgen] Add checked formatting with owned substitution errors

Add tgfmtChecked and tgfmtvChecked, validating all placeholders before
rendering and returning owned FmtError payloads on failure. Retain
failed occurrences, available substitutions, and provenance for
diagnostic users.

Unify builtin and custom binding storage: addSubst("_self", ...) now
aliases withSelf(), including consistent last-registration-wins
behavior. Parse positional indices as decimal, so $010 means 10 instead
of 8 and $08 means 8 instead of reaching an unreachable path.
Unrepresentable indices become checked errors or legacy markers instead
of assertions.

Keep the legacy API lazy, including observing later context mutations.
The compatibility PHKind entry points remain until caller migration.

Validation: 66 TableGen unit tests; unchecked Expected arguments
rejected by the compiler. Include snapshot logging and typed error

    [4 lines not shown]
DeltaFile
+226-2mlir/unittests/TableGen/FormatTest.cpp
+167-28mlir/lib/TableGen/Format.cpp
+128-26mlir/include/mlir/TableGen/Format.h
+521-563 files

LLVM/project 131f7eb — llvm/lib/CodeGen/SelectionDAG SelectionDAGISel.cpp

[SelectionDAGISel] Make IsPredicateKnownToFail return a bool and take Index by reference. NFC (#237511)

This matches all of the predicate check functions it calls. This reduces
the code, but I don't expect any performance impact. The function is
likely inlined.

Also replace Table[Index-1] with Opcode.

Assisted-by: Claude
DeltaFile
+32-49llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+32-491 files

LLVM/project 34bf6e6 — mlir/docs PDLL.md, mlir/include/mlir/TableGen Format.h

[mlir][tblgen] Finish checked formatting migration through PDLL

Register parsed TableGen source buffers before processing imported
records. Format the predicate before wrapping it in the generated
success return, and propagate failure without appending an invalid
declaration.

Adapt shared formatting messages to PDLL diagnostics. Anchor the primary
at the import in the main document so LSP publishes it, and retain the
constraint definition, multiclass instantiations, and nested PDLL import
locations as notes. Formatting errors return through the parser and
leave the language server alive for subsequent edits.

Deprecate pointer-taking factories, lazy object types, PHKind shims, and
the unchecked summary helper while retaining compatibility behavior.
Migrate successful format tests and suppress warnings locally around
intentional legacy tests. Document recoverable import errors in the PDLL
reference.


    [8 lines not shown]
DeltaFile
+98-25mlir/lib/Tools/PDLL/Parser/Parser.cpp
+78-21mlir/unittests/TableGen/FormatTest.cpp
+79-0mlir/test/mlir-pdll-lsp-server/format-errors.test
+78-0mlir/test/mlir-pdll/Parser/format-errors.pdll
+18-5mlir/include/mlir/TableGen/Format.h
+7-0mlir/docs/PDLL.md
+358-513 files not shown
+371-519 files

LLVM/project 450c19f — mlir/docs/DefiningDialects Operations.md, mlir/lib/TableGen CodeGenHelpers.cpp

[mlir][tblgen] Check substitutions throughout code generation

Migrate generator and shared-verifier emission to eager fatal formatting
with template-definition origins and operation use notes. Synthesized
properties without a record fall back to the operation location.
Speculative attribute and property uniquing now consumes checked errors
and falls back to inline verification. Keep value-specific bindings
local to their verifier.

Add checked summary-expression formatting that retains the escaped
segment and propagates its owned error to the source diagnostic
boundary. Expose reference-taking tgfmt and tgfmtv overloads returning
Expected, retain transition aliases, and document formatting semantics
and diagnostics in the existing ODS guide.

Escape literal dollars in a test builder comment, and keep the nested
matcher error test focused on its intended invalid DAG. Add regression
coverage for shared and inline constraints, summaries, attribute
templates, interface templates, and the reference-taking API.

    [5 lines not shown]
DeltaFile
+163-78mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+196-0mlir/test/mlir-tblgen/format-substitution-errors.td
+104-67mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
+109-57mlir/tools/mlir-tblgen/OpFormatGen.cpp
+107-30mlir/lib/TableGen/CodeGenHelpers.cpp
+90-0mlir/docs/DefiningDialects/Operations.md
+769-23212 files not shown
+1,016-29918 files

LLVM/project 6d0353a — llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize runtime-checks-hoist.ll

[LV] Erase memcheck block early if the memory checks fold to false. (#237731)

If the memory runtime checks fold to false, a dead compare may be left
behind that keeps the hoisted bound expansions alive. Later expansions
may then re-use them, and they get removed when cleaning up the dead
check block, triggering an assertion in SCEVExpanderCleaner.

Clean up the memcheck block directly after creating the checks if they
folded to false, to avoid further expansions re-using anything left over
from MemCheckExp.
DeltaFile
+128-0llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
+5-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+133-02 files

LLVM/project 4d367cd — offload/plugins-nextgen/amdgpu/src rtl.cpp

fix wraparound bug and atomic release
DeltaFile
+4-4offload/plugins-nextgen/amdgpu/src/rtl.cpp
+4-41 files

LLVM/project fbf4f50 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 copyable-lane-external-use.ll

[SLP]Extract copyable scalars for isomorphic external users

External users, isomorphic to the user of a node with a copyable
scalar, extract it from that node, so other trees can reuse the
vector instead of gathering lanes from different vectors.

Assisted-by: Cursor

Reviewers: bababuck, RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/234324
DeltaFile
+12-32llvm/test/Transforms/SLPVectorizer/AArch64/copyable-lane-external-use.ll
+40-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+52-342 files

LLVM/project 85f1bbb — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 minbw-and-mask-unsigned-operand.ll

[SLP]Use operand signedness for forwarded demoted and operand

A demoted and with a full-width mask is replaced by its other operand.
If that operand is narrower, the cast in the final shuffle took its
signedness from known bits, sign-extending unsigned-demoted values.
Cast the operand with its own signedness, as the regular binop path
does.

Fixes #237530

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237748
DeltaFile
+5-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-1llvm/test/Transforms/SLPVectorizer/X86/minbw-and-mask-unsigned-operand.ll
+6-22 files

LLVM/project fd23f88 — llvm/test/Transforms/SLPVectorizer/X86 minbw-and-mask-unsigned-operand.ll

[SLP][NFC]Add a test with incorrect flag propagation, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237746
DeltaFile
+56-0llvm/test/Transforms/SLPVectorizer/X86/minbw-and-mask-unsigned-operand.ll
+56-01 files

LLVM/project 22b0cdc — llvm/test/Transforms/SLPVectorizer/X86 minbw-and-mask-unsigned-operand.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+56-0llvm/test/Transforms/SLPVectorizer/X86/minbw-and-mask-unsigned-operand.ll
+56-01 files

LLVM/project b3a8197 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP]Limit phi reordering to lists filling one register, NFCI

The prefix-first attempt from #234997 also ran for lists of mutually
incompatible phis and for lists longer than one register, where the
sorted windows never vectorized and only rebuilt rejected trees.

Assisted-by: Cursor

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/237743
DeltaFile
+10-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+10-21 files

LLVM/project 54a690d — offload/plugins-nextgen/amdgpu/dynamic_hsa hsa.cpp hsa_ext_amd.h, offload/plugins-nextgen/amdgpu/src rtl.cpp

[offload][AMDGPU] Properly scan for available SDMA engines

Two reasons:
(1) satisfy the documented API requirements of
hsa_amd_memory_async_copy_on_engine which say that the "client should
use hsa_amd_memory_copy_engine_status first to get the ID availability"
(2) work around device-dependent restrictions: the ROCr sources say that
"due to a RAS issue, GFX90a can only support H2D copies on SDMA0"

This patch was hand-manufactured using Neovim.
DeltaFile
+33-13offload/plugins-nextgen/amdgpu/src/rtl.cpp
+18-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
+1-0offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp
+52-133 files

LLVM/project 4181a65 — llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/X86 umulh.ll smulh.ll

[SelectionDAG] Canonicalize i1 MULHS/MULHU to zero in getNode (#236643)

i1 mulh operations always return zero, because the high bit of the 2-bit
product of two booleans is never set. This canonicalizes `MULHS`/`MULHU`
to zero for i1 in `SelectionDAG::getNode`, next to the existing i1
canonicalizations for `MUL` (to `AND`) and `ADD`/`SUB` (to `XOR`).

Without it, DAGCombiner folds `mulhs(x, 1)` to `sra x, 0` — the i1
constant 1 is also -1 — and returns `x` instead of 0.

Tests: `smulh_i1` in `CodeGen/X86/smulh.ll` and `umulh_i1` in
`CodeGen/X86/umulh.ll`.

Fixes #236347

Assisted-by: Claude Code
DeltaFile
+11-0llvm/test/CodeGen/X86/umulh.ll
+11-0llvm/test/CodeGen/X86/smulh.ll
+5-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+27-03 files

LLVM/project fa38f7d — llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize runtime-checks-hoist.ll

[LV] Bail out if the vector loop becomes dead late in executePlan. (#237733)

The minimum iteration check may only fold to true after
expandSCEVsToVPInstructions, after the existing check for a dead vector
loop. expandSCEVs then still expands the now-dead runtime check bounds
that are hoisted out of the outer loop in IR. SCEVExpander may re-use
values from the SCEV checks for them, which get removed together with
the dead SCEV check block, triggering an assertion in
SCEVExpanderCleaner.

Move check just before execute, to fix assertion
DeltaFile
+61-0llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
+12-13llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+73-132 files

LLVM/project 9fe21ee — llvm/lib/Transforms/Scalar LoopUnrollAndJamPass.cpp, llvm/test/Transforms/LoopUnrollAndJam reuse.ll

fixup! [LoopUnrollAndJam] Jamming Outside Loop for stencil
DeltaFile
+175-0llvm/test/Transforms/LoopUnrollAndJam/reuse.ll
+2-1llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
+177-12 files

LLVM/project 2ae3a2e — llvm/test/tools/llvm-mca/AArch64/Cortex A53-mac-forwarding.s

[AArch64] Add a Cortex-A53 multiply-accumulate forwarding test (NFC) (#237522)

Add an llvm-mca test for the Cortex-A53 scheduling model, ahead of the
changes
that follow. Cortex/A53-mac-forwarding.s runs dependent
multiply-accumulate
chains through the accumulator and through a multiplicand. This shows
the
accumulator forwarding, which the instruction tables in
Cortex/A53-neon-instructions.s and Cortex/A53-basic-instructions.s
cannot.

The checks reflect the current model, so the forwarding changes that
follow
show up as a diff to this test.

Part 1 of 4 of the split of #219478, to be merged in order.

AI tool use: prepared with the help of Claude (Anthropic), see the

    [3 lines not shown]
DeltaFile
+168-0llvm/test/tools/llvm-mca/AArch64/Cortex/A53-mac-forwarding.s
+168-01 files

LLVM/project 4497566 — libc/test/src/math/smoke acosbf16_test.cpp NearbyIntTest.h, libc/test/src/time localtime_r_test.cpp gmtime_r_test.cpp

[libc] Fix maybe unused warnings in Arm 32-bit no-FP baremetal builds (#237257)

In configurations without floating-point, some variables end up not
used, hence warnings are shown because of this.

This patch adds `[[maybe_unused]]` to the definitions affected by this.

The ultimate goal is to re-enable `-Werror` in no-FP builds.
DeltaFile
+4-4libc/test/src/math/smoke/NearbyIntTest.h
+3-2libc/test/src/time/ctime_r_test.cpp
+3-2libc/test/src/time/asctime_r_test.cpp
+2-2libc/test/src/time/localtime_r_test.cpp
+2-2libc/test/src/time/gmtime_r_test.cpp
+1-1libc/test/src/math/smoke/acosbf16_test.cpp
+15-132 files not shown
+17-158 files

LLVM/project 0db6610 — mlir/docs/DefiningDialects TableGenFormatting.md, mlir/include/mlir/TableGen Format.h

[mlir][tblgen] Finish checked formatting migration through PDLL

Register parsed TableGen source buffers before processing imported
records. Format the predicate before wrapping it in the generated
success return, and propagate failure without appending an invalid
declaration.

Adapt shared formatting messages to PDLL diagnostics. Anchor the primary
at the import in the main document so LSP publishes it, and retain the
constraint definition, multiclass instantiations, and nested PDLL import
locations as notes. Formatting errors return through the parser and
leave the language server alive for subsequent edits.

Deprecate pointer-taking factories, lazy object types, PHKind shims, and
the unchecked summary helper while retaining compatibility behavior.
Migrate successful format tests and suppress warnings locally around
intentional legacy tests. Complete migration and diagnostic
documentation.


    [8 lines not shown]
DeltaFile
+98-25mlir/lib/Tools/PDLL/Parser/Parser.cpp
+78-21mlir/unittests/TableGen/FormatTest.cpp
+79-0mlir/test/mlir-pdll-lsp-server/format-errors.test
+78-0mlir/test/mlir-pdll/Parser/format-errors.pdll
+18-5mlir/include/mlir/TableGen/Format.h
+12-4mlir/docs/DefiningDialects/TableGenFormatting.md
+363-554 files not shown
+382-5810 files

LLVM/project d477d42 — llvm/lib/Target/X86 X86TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/X86 shuffle-transpose.ll shuffle-two-src-inlane.ll

[CostModel][X86] Add AVX512BW cost for in-lane v64i8 2 src shuffles (#236618)

Without VBMI, two-source v64i8 shuffles always got the cross-lane cost
of 19,
even when the mask stays inside 128-bit lanes (e.g.
vpunpcklbw/vpunpckhbw).
Add an in-lane entry for AVX512BW that matches the AVX2 v32i8 one
(2*vpshufb + vpor) and check it before the cross-lane table.

This lets the Stockfish NNUE loop from #236617 get fully unrolled on
AVX512BW. The new LoopUnroll test covers the unroll decision, and the
first
commit adds the tests with the current costs.

Fixes #236617
DeltaFile
+180-0llvm/test/Transforms/LoopUnroll/X86/full-unroll-inlane-v64i8-shuffle.ll
+143-0llvm/test/Analysis/CostModel/X86/shuffle-two-src-inlane.ll
+10-0llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+1-1llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
+334-14 files

LLVM/project 74d1e68 — mlir/docs/DefiningDialects TableGenFormatting.md, mlir/lib/TableGen CodeGenHelpers.cpp

[mlir][tblgen] Check substitutions throughout code generation

Migrate generator and shared-verifier emission to eager fatal formatting
with template-definition origins and operation use notes. Synthesized
properties without a record fall back to the operation location.
Speculative attribute and property uniquing now consumes checked errors
and falls back to inline verification. Keep value-specific bindings
local to their verifier.

Add checked summary-expression formatting that retains the escaped
segment and propagates its owned error to the source diagnostic
boundary. Expose reference-taking tgfmt and tgfmtv overloads returning
Expected, retain transition aliases, and document migration and parsing
corrections.

Escape literal dollars in a test builder comment, and keep the nested
matcher error test focused on its intended invalid DAG. Add regression
coverage for shared and inline constraints, summaries, attribute
templates, interface templates, and the reference-taking API.

    [5 lines not shown]
DeltaFile
+163-78mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+196-0mlir/test/mlir-tblgen/format-substitution-errors.td
+104-67mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
+109-57mlir/tools/mlir-tblgen/OpFormatGen.cpp
+107-30mlir/lib/TableGen/CodeGenHelpers.cpp
+75-0mlir/docs/DefiningDialects/TableGenFormatting.md
+754-23213 files not shown
+1,011-29919 files

LLVM/project 1f44c11 — llvm/docs LangRef.md, llvm/utils/pygments llvm_lexer.py README.md

[docs] Fence more LangRef IR examples as `llvm`

Change the instruction examples that use a `<result>` placeholder, and
a few other IR examples, from `text` to `llvm`. The new lexer handles
the placeholder, which renders as plain text.

Also drop `llvm/utils/pygments/README.md` and the `pygmentize` fallback
in the lexer. The docs only load it through Sphinx.
DeltaFile
+29-29llvm/docs/LangRef.md
+0-15llvm/utils/pygments/README.md
+1-6llvm/utils/pygments/llvm_lexer.py
+30-503 files

LLVM/project aca067c — mlir/include/mlir/TableGen CodeGenHelpers.h, mlir/lib/TableGen CodeGenHelpers.cpp Format.cpp

[mlir][tblgen] Diagnose substitution failures at their source

Render owned formatting errors as source-aware messages, preserving
inner definition origins, use sites, and multiclass location arrays.
Consume every error payload before printing and terminating so joined
errors and their notes are not lost.

Add eager fatal wrappers for generator boundaries and use them for trait
predicates. Missing substitutions now fail in TableGen with the
template, failed occurrences, and available bindings instead of
generating bad C++. Snapshot the trait context before value verifiers
add temporary bindings, so an inline attribute check cannot accidentally
bind $_self for a trait.

Share message construction between generic logging and source
diagnostics. Use portable death-test expressions and handle invalid
success payloads defensively at the fatal-reporting boundary.

Validation: 74 TableGen unit tests and all 69 mlir-tblgen lit tests

    [5 lines not shown]
DeltaFile
+128-2mlir/unittests/TableGen/FormatTest.cpp
+81-27mlir/lib/TableGen/Format.cpp
+60-0mlir/test/mlir-tblgen/op-error.td
+42-0mlir/lib/TableGen/CodeGenHelpers.cpp
+27-1mlir/include/mlir/TableGen/CodeGenHelpers.h
+10-4mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+348-341 files not shown
+361-347 files

LLVM/project 3e5b45e — llvm/test/CodeGen/X86 ushl_sat_vec-512.ll sshl_sat_vec-512.ll

[X86] sshl/ushl sat tests - add full x86-64 level and 256/512-bit test coverage (#237715)

Prep work for #235912
DeltaFile
+462-240llvm/test/CodeGen/X86/sshl_sat_vec.ll
+346-163llvm/test/CodeGen/X86/ushl_sat_vec.ll
+437-0llvm/test/CodeGen/X86/sshl_sat_vec-256.ll
+347-0llvm/test/CodeGen/X86/ushl_sat_vec-256.ll
+277-0llvm/test/CodeGen/X86/sshl_sat_vec-512.ll
+206-0llvm/test/CodeGen/X86/ushl_sat_vec-512.ll
+2,075-4036 files

LLVM/project 9022da9 — clang/docs ReleaseNotes.md, clang/lib/Sema SemaInit.cpp

Revert "[Clang][Sema] Fix rejecting valid reference initialization with conversion function templates" (#237716)

Reverts llvm/llvm-project#233482

It broke some valid code as reported in
https://github.com/llvm/llvm-project/pull/233482#issuecomment-6556714067
DeltaFile
+0-13clang/test/SemaCXX/conversion-function.cpp
+3-4clang/lib/Sema/SemaInit.cpp
+1-3clang/test/SemaCXX/cxx1y-generic-lambdas.cpp
+0-3clang/docs/ReleaseNotes.md
+4-234 files

LLVM/project 541eaac — mlir/include/mlir/TableGen Format.h, mlir/lib/TableGen Format.cpp

[mlir][tblgen] Add checked formatting with owned substitution errors

Add tgfmtChecked and tgfmtvChecked, validating all placeholders before
rendering and returning owned FmtError payloads on failure. Retain
failed occurrences, available substitutions, and provenance for
diagnostic users.

Unify builtin and custom binding storage: addSubst("_self", ...) now
aliases withSelf(), including consistent last-registration-wins
behavior. Parse positional indices as decimal, so $010 means 10 instead
of 8 and $08 means 8 instead of reaching an unreachable path.
Unrepresentable indices become checked errors or legacy markers instead
of assertions.

Keep the legacy API lazy, including observing later context mutations.
The compatibility PHKind entry points remain until caller migration.

Validation: 66 TableGen unit tests; unchecked Expected arguments
rejected by the compiler. Include snapshot logging and typed error

    [3 lines not shown]
DeltaFile
+226-2mlir/unittests/TableGen/FormatTest.cpp
+167-28mlir/lib/TableGen/Format.cpp
+112-26mlir/include/mlir/TableGen/Format.h
+505-563 files