LLVM/project 8653a63 — llvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen TargetRegisterInfo.cpp InlineSpiller.cpp

Refactor subreg spilling logic.

Avoiding Lanebitemask manipulations.
Moved most of generic the calculations to use TargetRegisterInfo APIs.
Added a new API to get the covering subreg index given a lanebitmask.
DeltaFile
+102-0llvm/test/CodeGen/AMDGPU/subreg-reload-tuple.mir
+28-27llvm/lib/CodeGen/InlineSpiller.cpp
+20-0llvm/lib/CodeGen/TargetRegisterInfo.cpp
+12-5llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+2-2llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+1-1llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+165-356 files

LLVM/project 629ca65 — llvm/lib/Remarks YAMLRemarkParser.h YAMLRemarkSerializer.cpp, llvm/unittests/Remarks YAMLRemarksSerializerTest.cpp YAMLRemarksParsingTest.cpp

[Remarks] Fix YAML remark round-trip for values that need escaping

The serializer writes argument values with more than one newline as
literal block scalars. A block scalar has no escapes, so a value that
also contained a control character other than tab or newline was
written with the raw byte, which strict YAML readers reject. Such
values now use the double-quoted form.

The parser took the raw scalar text and stripped only single quotes, so
double-quoted values came back with their quotes and escapes, and ''
inside single quotes was not unescaped. Decode scalars with
ScalarNode::getValue instead and report escape errors. Unescaped values
and block scalar values are copied into storage owned by the parser.
Block scalar values used to point into the YAML document, which next()
frees before returning the remark.

Assisted-by: Claude
DeltaFile
+49-0llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp
+29-0llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp
+12-6llvm/lib/Remarks/YAMLRemarkParser.cpp
+11-1llvm/lib/Remarks/YAMLRemarkSerializer.cpp
+6-0llvm/lib/Remarks/YAMLRemarkParser.h
+107-75 files

LLVM/project c73e88a — mlir/lib/Target/LLVMIR/Dialect/LLVMIR CMakeLists.txt LLVMToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR llvmir.mlir

[MLIR][LLVMIR] Restore constant folding for global initializer GEPs

Before #226904, a GEP in a global initializer went through
IRBuilder::CreateGEP, and MLIR's IRBuilder<TargetFolder> folded the result
with ConstantFoldConstant. That combines nested GEPs, folds null and integer
bases, and infers inbounds and nuw when the offset stays within the global.
Building the constant expression directly skipped the folder, so the output
lost those flags.

Fold the constant again for the non-inrange case. The inrange path never
went through the folder and is unchanged.

CIR's vtable, VTT and constant pointer tests check for the inferred flags
(for example CIR/CodeGen/vtt.cpp) and have failed since #226904.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+10-0mlir/test/Target/LLVMIR/llvmir.mlir
+5-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+1-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/CMakeLists.txt
+16-03 files

LLVM/project 43bd07b — lldb/include/lldb/Host/windows PathUtils.h, lldb/source/Host/windows FileSystem.cpp Host.cpp

[lldb][Windows] Strip the extended-length prefix from host and process paths (#227373)

This patch introduces a helper function to strip the extended-length
path prefix from windows paths.
DeltaFile
+30-0lldb/include/lldb/Host/windows/PathUtils.h
+28-0lldb/unittests/Host/windows/PathUtilsTest.cpp
+6-1lldb/source/Host/windows/Host.cpp
+3-2lldb/source/Host/windows/FileSystem.cpp
+4-1lldb/source/Plugins/Process/Windows/Common/ProcessDebugger.cpp
+3-1lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+74-51 files not shown
+75-57 files

LLVM/project fcd0b0d — clang-tools-extra/clangd/refactor/tweaks ExtractFunction.cpp, clang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl

Merge branch 'main' into users/arsenm/amdgpu/gisel-cf-pseudo-dead-defs
DeltaFile
+1,594-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exclusive.scan.ll
+912-0llvm/lib/ExecutionEngine/JITLink/ELF_mips.cpp
+413-0llvm/include/llvm/ExecutionEngine/JITLink/mips.h
+262-9clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
+260-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+226-0llvm/lib/ExecutionEngine/JITLink/mips.cpp
+3,667-9119 files not shown
+5,439-287125 files

LLVM/project 5b11db2 —

[RISCV][P-ext] Support Packed Widening Unzip (#227211)
DeltaFile
+0-00 files

LLVM/project 7505b4a — llvm/lib/Target/ARM ARMISelLowering.cpp, llvm/test/CodeGen/Thumb optional-def-dead-cpsr.ll

ARM: Preserve the dead flag when activating the optional CPSR def

This did not preserve the original dead flag, so it would be recomputed
later by LiveVariables or RegAllocFast.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+46-0llvm/test/CodeGen/Thumb/optional-def-dead-cpsr.ll
+1-0llvm/lib/Target/ARM/ARMISelLowering.cpp
+47-02 files

LLVM/project 6d6ab7f — clang-tools-extra/clangd/refactor/tweaks ExtractFunction.cpp, clang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl

Merge branch 'main' into users/arsenm/amdgpu/valu-scc-branch-dead-scc
DeltaFile
+1,594-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exclusive.scan.ll
+912-0llvm/lib/ExecutionEngine/JITLink/ELF_mips.cpp
+413-0llvm/include/llvm/ExecutionEngine/JITLink/mips.h
+262-9clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
+260-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+226-0llvm/lib/ExecutionEngine/JITLink/mips.cpp
+3,667-9119 files not shown
+5,439-287125 files

LLVM/project 762e955 — clang-tools-extra/clangd/refactor/tweaks ExtractFunction.cpp, clang/test/CodeGenOpenCL builtins-amdgcn-gfx13.cl

Merge branch 'main' into users/arsenm/amdgpu/simulated-trap-dead-scc
DeltaFile
+1,594-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exclusive.scan.ll
+912-0llvm/lib/ExecutionEngine/JITLink/ELF_mips.cpp
+413-0llvm/include/llvm/ExecutionEngine/JITLink/mips.h
+262-9clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
+260-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+226-0llvm/lib/ExecutionEngine/JITLink/mips.cpp
+3,667-9119 files not shown
+5,439-287125 files

LLVM/project d9b12f5 — clang-tools-extra/clangd/refactor/tweaks ExtractFunction.cpp, clang-tools-extra/clangd/unittests/tweaks ExtractFunctionTests.cpp

[clangd] Extract to Function: mark unmodified captured parameters const

Every captured variable was always passed by non-const reference, even when the extracted code never modifies it, resulting in misleading function signatures.

Determine, for each captured variable, whether it's ever (possibly) mutated within the extraction zone, and add `const` to the parameter's type when it isn't. Still passed by reference either way, to avoid a copy.

The check is folded directly into the existing zone traversal (`captureZoneInfo`'s `ExtractionZoneVisitor`), so its cost stays proportional to the size of the code being extracted. Direct mutations (assignment, increment/decrement, non-const method calls, explicit casts to non-const reference, non-const-reference call arguments, ...) are recognized precisely from each occurrence's immediate syntactic context. Anything that aliases a captured variable (a reference bound to it, its address taken, capture by reference in a lambda, a forwarding-reference call argument, a non-const-ref range-for loop variable) is conservatively treated as a possible mutation, without tracing whether the alias itself is later mutated -- trading a little precision in alias-heavy code for a simple, linear-cost check.

Array-typed captures are never made const, since array-to-pointer decay and array-element mutation have enough edge cases that it wasn't worth special-casing for a rare pattern.

Assisted-by: Claude
DeltaFile
+262-9clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
+190-3clang-tools-extra/clangd/unittests/tweaks/ExtractFunctionTests.cpp
+452-122 files

LLVM/project 00b72f1 — llvm/lib/Remarks YAMLRemarkSerializer.cpp, llvm/unittests/Remarks YAMLRemarksSerializerTest.cpp

[Remarks] Escape control characters in multi-line YAML remark arguments

Argument values with more than one newline are written as YAML literal
block scalars. A block scalar has no escapes, so a value that also
contains a control character (other than tab and newline) was written
with the raw byte, which strict YAML readers reject. Use the
double-quoted form for such values instead.

Assisted-by: Claude
DeltaFile
+29-0llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp
+11-1llvm/lib/Remarks/YAMLRemarkSerializer.cpp
+40-12 files

LLVM/project 5f376e4 — lldb/include/lldb/Target ThreadPlan.h, lldb/source/API SBThread.cpp

[lldb] Share the address lookup of thread until and StepOverUntil (#226978)

`thread until` and `SBThread::StepOverUntil` turned their targets into
addresses using different code. This commit introduces a helper function
`GetStepUntilAddresses` to unify behavior and the error message.

It resolves lines as `thread until` did: a line without line table
entries resolves to the nearest following line with entries. For
StepOverUntil, a line that is only the call site of an inlined function
now resolves that way too.

The wording of errors is that of `thread until`.
DeltaFile
+6-60lldb/source/Commands/CommandObjectThread.cpp
+12-48lldb/source/API/SBThread.cpp
+56-0lldb/source/Target/ThreadPlan.cpp
+12-0lldb/include/lldb/Target/ThreadPlan.h
+2-2lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py
+88-1105 files

LLVM/project 668b338 — flang/lib/Optimizer/CodeGen PreCGRewrite.cpp, flang/test/Fir cg-rewrite-unfoldable-slice.fir

[flang][codegen] Report a shape or slice cg-rewrite cannot read

cg-rewrite folds a fir.shape, fir.shape_shift, fir.shift or fir.slice
into the code-gen form by reading it through its defining op. A value
that has none cannot be folded. For a slice this went unreported: the
rewrite dropped it and produced a descriptor for the whole array rather
than the section it names. For a shape it reached a cast on a null
defining op.

Report it instead, and say which operand. Rebuilding the value covers a
block argument, but not every case: a slice chosen by an arith.select
has no single value to take apart.
DeltaFile
+45-13flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
+25-0flang/test/Fir/cg-rewrite-unfoldable-slice.fir
+70-132 files

LLVM/project ab31d64 — flang/lib/Optimizer/CodeGen PreCGRewrite.cpp, flang/test/Fir cg-rewrite-compile-time-only-block-args.fir

[flang][codegen] Rebuild compile-time-only block arguments in cg-rewrite

A fir.shape, fir.shape_shift, fir.shift or fir.slice only describes an
array at compile time. cg-rewrite reads one through its defining op and
folds it into the code-gen form, so none of these types has an LLVM
lowering and none is expected to reach codegen.

A pass that merges two blocks differing only in such a value passes it
as a block argument instead, and a block argument has no defining op.
The fold then finds nothing to read: a slice is dropped, leaving a
descriptor for the whole array rather than the section, and a shape
reaches a cast on a null defining op.

Rebuild the value in the block. The operands behind it are integers,
which can be block arguments, so take those as arguments, forward them
along each branch, and build the value from them at the top of the
block. The merge is kept and no block is duplicated.
DeltaFile
+116-0flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
+73-0flang/test/Fir/cg-rewrite-compile-time-only-block-args.fir
+189-02 files

LLVM/project 16a83c3 — mlir/lib/Target/LLVMIR/Dialect/LLVMIR CMakeLists.txt LLVMToLLVMIRTranslation.cpp, mlir/test/Target/LLVMIR llvmir.mlir

[MLIR][LLVMIR] Restore constant folding for global initializer GEPs

Before c68a4ca2a920 (#226904), a GEP in a global initializer went through
`IRBuilder::CreateGEP`, and MLIR's `IRBuilder<TargetFolder>` ran the result
through `ConstantFoldConstant`. Besides combining nested GEPs and folding
null or integer bases, that infers `inbounds` when the offset stays within
the global's size and, since `inbounds` implies `nusw`, `nuw` for a
non-negative offset. #226904 builds the constant expression directly and
skips the folder, so those flags disappeared from the output.

Run `ConstantFoldConstant` on the built constant for the non-inrange case.
The inrange path bypassed the TargetFolder before as well and keeps its
output.

CIR's lit tests for vtables, VTTs and constant pointer initializers expect
the inferred `inbounds nuw` (for example CIR/CodeGen/vtt.cpp and
CIR/CodeGenCXX/base-layout.cpp) and have been failing since #226904.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+10-0mlir/test/Target/LLVMIR/llvmir.mlir
+6-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+1-0mlir/lib/Target/LLVMIR/Dialect/LLVMIR/CMakeLists.txt
+17-03 files

LLVM/project 5fb2ee7 — llvm/lib/Target/NVPTX NVPTXTargetMachine.cpp NVPTXCodeGenPassBuilder.cpp, llvm/test/CodeGen/NVPTX llc-pipeline-npm.ll

NVPTX: Drop LiveVariables from the register allocation pipeline

The optimized RegAlloc pipeline ran LiveVariables only to satisfy PHIElimination
and TwoAddressInstruction, both of which no longer need it. Remove the
LiveVariables run (and, in the new pass manager, the UnreachableMachineBlockElim
that was there only as a LiveVariables prerequisite).

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+0-7llvm/lib/Target/NVPTX/NVPTXCodeGenPassBuilder.cpp
+0-2llvm/test/CodeGen/NVPTX/llc-pipeline-npm.ll
+0-1llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+0-103 files

LLVM/project 5ed6384 — llvm/lib/Target/AMDGPU SILowerControlFlow.cpp

AMDGPU: Remove update-only LiveVariables maintenance from SILowerControlFlow

This was only maintained, never relied on. Part of staged LiveVariables
removal.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+5-71llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+5-711 files

LLVM/project d286062 — llvm/lib/Target/AMDGPU SIFoldOperands.cpp SIInstrInfo.cpp, llvm/lib/Target/RISCV RISCVInstrInfo.cpp

CodeGen: Drop the LiveVariables parameter from convertToThreeAddress

This was used for analysis updates, but now the analysis is being
removed.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+12-66llvm/lib/Target/X86/X86InstrInfo.cpp
+0-17llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+0-11llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+1-10llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+2-4llvm/lib/Target/X86/X86InstrInfo.h
+2-2llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+17-1106 files not shown
+22-11712 files

LLVM/project 854aba6 — llvm/lib/CodeGen TwoAddressInstructionPass.cpp, llvm/test/CodeGen/Hexagon two-addr-tied-subregs.mir

CodeGen: Remove LiveVariables use from TwoAddressInstructionPass

Now that LiveIntervals is computed unconditionally before TwoAddressInstructions
in the pipeline, the pass no longer needs LiveVariables.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+42-135llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+18-18llvm/test/CodeGen/X86/statepoint-vreg-unlimited-tied-opnds.ll
+10-8llvm/test/CodeGen/X86/two-address-subreg-to-reg-kill.mir
+8-8llvm/test/CodeGen/SystemZ/twoaddr-kill.mir
+7-7llvm/test/CodeGen/Hexagon/two-addr-tied-subregs.mir
+3-3llvm/test/CodeGen/X86/twoaddr-dbg-value.mir
+88-1791 files not shown
+90-1817 files

LLVM/project 0dba1ee — polly/docs ReleaseNotes.rst

[Polly] Remove previous release's ReleaseNotes (#227644)

Only include changes after the 23.x release:
https://github.com/llvm/llvm-project/blob/release/23.x/polly/docs/ReleaseNotes.rst
DeltaFile
+0-8polly/docs/ReleaseNotes.rst
+0-81 files

LLVM/project e9ec9b5 — mlir/lib/Dialect/Vector/Transforms VectorDropLeadUnitDim.cpp

[MLIR][Vector] Fix typo from #226524 (#227642)
DeltaFile
+1-1mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
+1-11 files

LLVM/project 67f26e1 — llvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU wqm.mir finalize-isel-kill-scc-vcc.mir

AMDGPU: Restore dropped EXEC/SCC defs on SI_KILL_F32_COND_IMM (#227604)

These pseudos may clobber scc, so they need the def on the instruction
definition. c16f776028dd added a let block over the defm, overriding the
[EXEC, SCC] defs in the base PseudoInstKill class.

With the defs gone, selection was free to leave a compare result in SCC
across the kill. #134718 then marked SCC live-in to the split block to
satisfy the verifier, which can probably cleaned up. The result is
visible in skip-if-dead.ll: in scc_use_after_kill_inst the s_cbranch_scc0 after
the kill consumed the exec update's SCC instead of the s_cmp_lg_u32 it was
selected for.

Pass the extra defs as a multiclass parameter so an override cannot drop
the mandatory ones again. Selection now sinks the compare past the kill,
so SCC is never live across it and the dead flags from a3cf6f45fb68 are
correct as written.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+8-12llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
+4-5llvm/lib/Target/AMDGPU/SIInstructions.td
+2-2llvm/test/CodeGen/AMDGPU/finalize-isel-kill-scc-vcc.mir
+1-1llvm/test/CodeGen/AMDGPU/wqm.mir
+15-204 files

LLVM/project 365931e — llvm/test/CodeGen/Mips/GlobalISel/instruction-select gloal_address_pic.mir implicit_def.mir, llvm/test/CodeGen/Mips/GlobalISel/legalizer implicit_def.mir

Mips/GlobalISel: Update hand written call MIR to mark $ra dead

The call lowering marks the implicit $ra def of JAL/JALRPseudo dead, so
update the hand written MIR inputs and the corresponding checks to match
what the IRTranslator now produces.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+12-12llvm/test/CodeGen/Mips/GlobalISel/regbankselect/float_args.mir
+12-12llvm/test/CodeGen/Mips/GlobalISel/instruction-select/float_args.mir
+8-8llvm/test/CodeGen/Mips/GlobalISel/regbankselect/implicit_def.mir
+8-8llvm/test/CodeGen/Mips/GlobalISel/legalizer/implicit_def.mir
+8-8llvm/test/CodeGen/Mips/GlobalISel/instruction-select/implicit_def.mir
+4-4llvm/test/CodeGen/Mips/GlobalISel/instruction-select/gloal_address_pic.mir
+52-5211 files not shown
+74-7417 files

LLVM/project d6fc996 — lldb/test/API/functionalities/process_save_core_minidump_reload_crash TestMinidumpReloadCrash.py

[lldb] Skip minidump reload test on unsupported architectures (#227634)

`TestMinidumpReloadCrash.py` runs `process save-core
--plugin-name=minidump` on any architecture, so it fails on 32-bit arm:

```
error: failed to save core file for process to '.../process.core':
architecture arm not supported.
```

`ArchThreadContexts::prepareRegisterContext` in
`MinidumpFileBuilder.cpp`
builds a thread context for x86_64 and aarch64 only, so `AddThreadList`
rejects any other architecture.  Gate the test like the other minidump
save-core tests.
DeltaFile
+2-0lldb/test/API/functionalities/process_save_core_minidump_reload_crash/TestMinidumpReloadCrash.py
+2-01 files

LLVM/project 2820795 — compiler-rt/lib/orc elfnix_tls.mips.S, llvm/include/llvm/ExecutionEngine/JITLink mips.h

[JITLink][Mips] Add ELF backend (#224578)

Add support for O32, N32, and N64 relocatable ELF objects in both byte
orders. Handle O32 implicit addends and HI/LO pairing, N32 relocation
groups, and N64 packed relocations. Preserve the MIPS64 ISA triple for
N32 while recording its four-byte pointer ABI in LinkGraph.

Implement absolute, PC-relative, GP/GOT, and compound fixups, GOT-backed
$t9 call stubs, and EH-frame support. Use MIPS-specific GOT keys for
target, addend, and exact/page entries, and collect GP-relative content
into one ordered region. Support standard MIPS ISAs, including release-6
stubs.

Integrate GD/LD TLS with ELFNixPlatform and add an assembly resolver
that reads the thread pointer with rdhwr before calling the existing C
implementation. Honor explicit MIPS relocation-model requests while
retaining the static default. JITLink remains opt-in and RuntimeDyld
remains the default.


    [2 lines not shown]
DeltaFile
+912-0llvm/lib/ExecutionEngine/JITLink/ELF_mips.cpp
+413-0llvm/include/llvm/ExecutionEngine/JITLink/mips.h
+226-0llvm/lib/ExecutionEngine/JITLink/mips.cpp
+72-0llvm/unittests/ExecutionEngine/JITLink/MipsTests.cpp
+62-0compiler-rt/lib/orc/elfnix_tls.mips.S
+55-0llvm/test/ExecutionEngine/JITLink/Mips/ELF_got_ordering.s
+1,740-054 files not shown
+2,311-9860 files

LLVM/project 4dd9d22 — polly/lib/Support RegisterPasses.cpp, polly/test lit.site.cfg.in

[Polly] Remove non-goal TODO (#227638)

Apply post-commit review changes of #227545.

`%loadNPMPolly` is necessary to conditionally load the Polly plugin and
not having to repreat a lot of options in each regression test. It
cannot be spelled out in each individual test. Apply this change as
discussed in
https://github.com/llvm/llvm-project/pull/227545#discussion_r4142513423.
It could replaced with a tool substitution instead.

Also prefer use the default-sized `SmallVector` as by the LLVM
programmer's manual:
https://llvm.org/docs/ProgrammersManual.html#llvm-adt-smallvector-h.
DeltaFile
+0-2polly/test/lit.site.cfg.in
+1-1polly/lib/Support/RegisterPasses.cpp
+1-32 files

LLVM/project 4509a57 — llvm/test/CodeGen/AArch64 mops-dead-nzcv.ll

Remove test
DeltaFile
+0-72llvm/test/CodeGen/AArch64/mops-dead-nzcv.ll
+0-721 files

LLVM/project 37e3866 — llvm/lib/Target/AArch64/GISel AArch64InstructionSelector.cpp, llvm/test/CodeGen/AArch64 mops-dead-nzcv.ll

AArch64/GlobalISel: Mark the MOPS pseudo NZCV def dead

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+72-0llvm/test/CodeGen/AArch64/mops-dead-nzcv.ll
+5-2llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+77-22 files

LLVM/project 457e5ba — llvm/lib/Transforms/InstCombine InstCombineAddSub.cpp, llvm/test/Transforms/InstCombine divceil.ll

[InstCombine] Use context instruction in divceil overflow check (#227158)

Divceil optimization only happens if we can prove x + y - 1 does not
overflow. Originally, a SimplifyQuery with no context instruction was
passed to checkDivCeilNUW which made it so that the optimization never
happened if the bound came from an assume. This meant that even when an
assume proved that x + y - 1 did not overflow, the optimization did not
happen.

This change passes SQ.getWithInstruction(&I) so the range of x is
computed at the add being folded, and assumes that apply there are used
when deciding whether we can fold.

Fixes #220849

AI Disclosure: I used Claude to help explain LLVM concepts while I was
trying to understand the problem. It also walked me through syntax,
helper functions that I should utilize, good test cases, and general
formatting for things like test case comments.
DeltaFile
+96-0llvm/test/Transforms/InstCombine/divceil.ll
+2-1llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
+98-12 files

LLVM/project 58b8623 — mlir/lib/Dialect/Vector/Transforms VectorDropLeadUnitDim.cpp, mlir/test/Dialect/Vector vector-dropleadunitdim-transforms.mlir

Revert "[mlir][vector] Use `ShapeCastOp` in `castAwayContractionLeadingOneDim…"

This reverts commit 2c298348bfe15a69788e83ea64831873dcfd3c58.
DeltaFile
+22-73mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
+44-33mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
+66-1062 files