LLVM/project 769d5e5 — llvm/include/llvm/Transforms/Utils LowerCommentStringPass.h, llvm/lib/Transforms/Utils LowerCommentStringPass.cpp

[LLVM][NFC] Describe both producers of !loadtime_comment in LowerCommentStringPass
DeltaFile
+32-26llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
+6-2llvm/include/llvm/Transforms/Utils/LowerCommentStringPass.h
+38-282 files

LLVM/project 2a96d57 — mlir/lib/Dialect/MemRef/IR MemRefOps.cpp, mlir/lib/Dialect/MemRef/Transforms ExpandStridedMetadata.cpp

[mlir][memref] Enforce consistent reinterpret_cast metadata (#217338)

This PR implements [[RFC] Clarify `memref.reinterpret_cast` Verification
of Dynamic
Metadata](https://discourse.llvm.org/t/rfc-clarify-memref-reinterpret-cast-verification-of-dynamic-metadata).

## Context
`memref.reinterpret_cast` describes its result through both its mixed
offset/size/stride metadata and its result `MemRefType`. Currently,
verification allowed a dynamic result-type correspond to static
operation metadata, introducing inconsistent descriptors.

For example, the verifier permits:
```mlir
%r = memref.reinterpret_cast %base
    to offset: [0], sizes: [%n, 2], strides: [%s, 1] : memref<f32>
      to memref<?x?xf32, strided<[?, ?], offset: ?>>
```
where the operation constructs a descriptor with a statically known

    [32 lines not shown]
DeltaFile
+23-15mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+27-5mlir/lib/Dialect/MemRef/Transforms/ExpandStridedMetadata.cpp
+13-13mlir/test/Dialect/MemRef/canonicalize.mlir
+25-0mlir/test/Dialect/MemRef/expand-strided-metadata.mlir
+12-9mlir/test/Conversion/MemRefToSPIRV/memref-to-spirv.mlir
+19-0mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+119-427 files not shown
+155-5513 files

LLVM/project 3804292 — lldb/unittests/ObjectContainer ObjectContainerClangOffloadBundleTest.cpp

[lldb] Fix offload bundle unit tests on 32-bit systems (#226922)

DataExtractor::GetByteSize returns uint64_t for reasons I don't yet
understand. I might change it to size_t but let's unblock the build for
now.

Fixes #222362 / 08ee0ef5da10d27d5776df1e1ff81c46a38d9b5c.
DeltaFile
+4-2lldb/unittests/ObjectContainer/ObjectContainerClangOffloadBundleTest.cpp
+4-21 files

LLVM/project 6ee306d — llvm/lib/Target/X86 X86ISelDAGToDAG.cpp, llvm/test/CodeGen/X86 bzhi-standalone-mask.ll

[X86] Select standalone ~(-1 << n) masks as BZHI (#226158)

InstCombine canonicalizes (1 << n) - 1 to xor (shl -1, n), -1. When that
mask feeds an AND, X86DAGToDAGISel::matchBitExtract folds the whole
expression into BZHI, and the add form is selected as BZHI even on its
own because Select enters matchBitExtract from ISD::ADD. The xor form on
its own is not: a mask that is returned, stored, or consumed by anything
but AND is selected as mov -1; shlx; not.

Enter matchBitExtract from ISD::XOR too under BMI2, so the standalone
mask becomes mov -1; bzhi. That is one instruction shorter and avoids
the shlx+not dependency chain. BMI1-only targets keep the shift form,
since BEXTR would need the count moved into bits 15:8 first.

Assisted-by: Claude Code
DeltaFile
+260-0llvm/test/CodeGen/X86/bzhi-standalone-mask.ll
+11-5llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+271-52 files

LLVM/project 2cf5aa5 — lld/test/ELF loongarch-relax-call-stress.s loongarch-relax-pcrel-stress.s

Add medium call stress test case
DeltaFile
+47-0lld/test/ELF/loongarch-relax-pcrel-stress.s
+13-13lld/test/ELF/loongarch-relax-call-stress.s
+60-132 files

LLVM/project 2b9bd2c — clang/docs LanguageExtensions.md, clang/lib/Sema SemaDecl.cpp

[Clang][AIX] Skip mangling for -mloadtime-comment-vars when no listed name contains the identifier
DeltaFile
+16-9clang/test/CodeGen/PowerPC/loadtime-comment-vars.cpp
+17-0clang/lib/Sema/SemaDecl.cpp
+2-1clang/docs/LanguageExtensions.md
+35-103 files

LLVM/project 310cf74 — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Remove (X && Y) | (X && !Y) -> X combine. NFC (#219368)

We have smaller combines that can take care of this now that we process
recipes in a worklist after #213900
DeltaFile
+1-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-71 files

LLVM/project 628b40e — llvm/test/CodeGen/AMDGPU amdgcn.bitcast.512bit.ll amdgcn.bitcast.1024bit.ll, llvm/test/CodeGen/RISCV bitinsert-bitextract.ll

Merge branch 'main' into users/lukel97/loop-vectorize/use-findcanonicalivincrement
DeltaFile
+6,086-6,026llvm/test/CodeGen/RISCV/rvv/expandload.ll
+4,903-4,925llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+3,913-3,252llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
+3,098-2,506llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
+4,294-0llvm/test/CodeGen/RISCV/bitinsert-bitextract.ll
+1,702-1,742llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+23,996-18,4513,528 files not shown
+150,373-66,4873,534 files

LLVM/project 2e02368 — lld/test/ELF loongarch-relax-call-stress.s

Fix a typo
DeltaFile
+1-1lld/test/ELF/loongarch-relax-call-stress.s
+1-11 files

LLVM/project 44d86af — llvm/unittests/CodeGen/GlobalISel LegalizerHelperTest.cpp

[GlobalISel][NFC] Restore the extended LLT flag to its saved value in tests (#224897)

AArch64GISelMITest's setUp() constructs an AArch64TargetMachine, which
unconditionally enables the process-global extended LLT flag. Ending the
ExtLLT tests with setUseExtended(false) therefore disables the flag for
every test that runs afterwards in the same process.

Save the flag's value on entry and restore it on exit instead.
DeltaFile
+8-4llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
+8-41 files

LLVM/project a2dd33a — lld/ELF/Arch LoongArch.cpp, lld/test/ELF loongarch-relax-call-stress.s

[lld][LoongArch] Prevent relaxation oscillation for LA.PCRel 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.

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.
DeltaFile
+47-0lld/test/ELF/loongarch-relax-call-stress.s
+22-7lld/ELF/Arch/LoongArch.cpp
+69-72 files

LLVM/project 084a4e6 — clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-gfx10.hip

[CIR][AMDGPU] Implement __builtin_amdgcn_*_dpp* builtins (#226469)

This commit implements the `__builtin_amdgcn_update_dpp`,
`__builtin_amdgcn_mov_dpp`, and `__builtin_amdgcn_mov_dpp8` builtins in
CIR, closely matching the implementation in
CodeGenFunction::EmitAMDGPUBuiltinExpr from OGCG.

Assisted-by: Claude Sonnet 5

Signed-off-by: Steffen Holst Larsen <sholstla at amd.com>
DeltaFile
+68-4clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+52-0clang/test/CIR/CodeGenHIP/builtins-amdgcn-gfx10.hip
+120-42 files

LLVM/project cb9ee31 — flang/include/flang/Optimizer/Transforms Passes.td, flang/lib/Optimizer/Transforms CMakeLists.txt LoopInvariantCodeMotion.cpp

Reland [flang] Support scoped LICM and OpenACC capture provenance (#225401)  (#226909)

Follow compute-region capture operands when checking whether scalar and
scalar-descriptor loads are safe to speculate. Preserve the existing
optional, array-element, and loop-modification safety checks.

Add an optional only-inside operation-name selector while retaining
function-scoped alias analysis. Resolve the name once per function and
compare interned operation names during ancestor traversal. The default
continues to select all loops. An explicit name selects loops with a
matching ancestor within the function, including the function itself.

Cover capture safety, host exclusion, non-OpenACC and nested scopes,
loop boundaries, unmatched names, and the function boundary.

The motivation for this is to allow running LICM only on device relevant
loop at O0.

Reland #225401 with CMakeFiles.txt change to fix shared library builds.
DeltaFile
+137-0flang/test/Transforms/licm-acc-captured-ref.fir
+44-0flang/test/Transforms/licm-acc-compute-only.fir
+39-0flang/test/Transforms/licm-scope.fir
+24-1flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
+11-1flang/include/flang/Optimizer/Transforms/Passes.td
+1-0flang/lib/Optimizer/Transforms/CMakeLists.txt
+256-26 files

LLVM/project 4353a0d — llvm/docs ConvergentOperations.rst, llvm/test/CodeGen/AMDGPU bitinsert-bitextract.ll

Merge main into users/mariusz-sikora-at-amd/gfx13/v-exclusive-scan-mc
DeltaFile
+6,086-6,026llvm/test/CodeGen/RISCV/rvv/expandload.ll
+4,294-0llvm/test/CodeGen/RISCV/bitinsert-bitextract.ll
+3,321-0llvm/test/CodeGen/ARM/bitinsert-bitextract.ll
+1,989-0llvm/test/CodeGen/RISCV/bitinsert-bitextract-fp.ll
+1,976-0llvm/test/CodeGen/AMDGPU/bitinsert-bitextract.ll
+0-1,607llvm/docs/ConvergentOperations.rst
+17,666-7,6332,689 files not shown
+101,435-43,9202,695 files

LLVM/project 8fe3fdd — llvm/lib/IR Verifier.cpp, llvm/lib/Transforms/Utils CodeExtractor.cpp

[CodeExtractor][Verifier] Fix OoB read when a DIExpression is used multiple times (#226857)

#224360 made fixupDebugInfoPostExtraction reuse the existing
DIExpression, but this is not sound if the expression is referenced
multiple times, as occurs with cold/hot code splitting.

This PR is the trivial fix of restricting this change to only apply if
there is a single user of the expression.

I've also added an additional verifier guard to capture these failures.

Fixes #226848

AI usage: Claude used to find a way to construct
dbg-value-arg-index-out-of-range.ll so that I could add a verifier guard
that bypassed the other existing verifier guards.
DeltaFile
+91-0llvm/test/Verifier/dbg-record-expression-arg-out-of-range.ll
+85-0llvm/test/Transforms/HotColdSplit/split-out-dbg-val-arglist.ll
+27-0llvm/test/DebugInfo/AArch64/dbg-value-arg-index-out-of-range.ll
+13-0llvm/lib/IR/Verifier.cpp
+6-3llvm/lib/Transforms/Utils/CodeExtractor.cpp
+4-0llvm/test/Assembler/invalid-diexpression-arg-negative.ll
+226-36 files

LLVM/project d19087a — llvm/test/CodeGen/AMDGPU rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll rewrite-vgpr-mfma-to-agpr-spill-multi-store-codegen.ll

AMDGPU: Make rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll less allocator sensitive

This test is sensitive to the exact split and spills which occur, and disappeared
under a future upstream improvement. Use basic RA with a fixed occupancy since it more
stably produces the spill pattern.

Also add a codegen reference test for the same kernel, so future codegen improvements are
visible.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+694-0llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-codegen.ll
+2-2llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll
+696-22 files

LLVM/project 7a931b5 — llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp

[GlobalISel] Use getCmpLibcallReturnType() for FCMP libcalls (NFC) (#226813)

The GCC soft-float comparison routines return `CMPtype`, not always
`i32`.


https://gcc.gnu.org/onlinedocs/gccint/Soft-float-library-routines.html#Comparison-functions-1
> 3.2.3 Comparison functions
> There are two sets of basic comparison functions.
> ...
> Runtime Function: CMPtype __unordsf2 (float a, float b)
> Runtime Function: CMPtype __unorddf2 (double a, double b)
> Runtime Function: CMPtype __unordtf2 (long double a, long double b)
> ...

The FCMP libcall result was hardcoded to i32. Use
`getCmpLibcallReturnType()`, as SelectionDAG does.

NFC for in-tree targets.

Co-authored-by: Thorbjørn Ravn Andersen <tra at ravnand.dk>
DeltaFile
+4-3llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+4-31 files

LLVM/project 4362da2 — llvm/lib/Target/AMDGPU GCNHazardRecognizer.h GCNHazardRecognizer.cpp, llvm/test/CodeGen/AMDGPU mai-hazards-gfx90a.mir mai-hazards-gfx942.mir

[AMDGPU] Add wait states between different MFMAs sharing an accumulator (#218363)

A full-register src2/C read after an MFMA write emits no wait states,
relying on accumulator forwarding that only works while the chain stays
on one MFMA. Two different MFMAs sharing an accumulator instead need the
wait states of a partial overlap: on gfx950, v_mfma_f32_16x16x32_f16
then
v_mfma_f32_16x16x16_f16 on the same tuple needs 5 and got none. Compare
canonicalized opcodes so mac and register-bank forms still match.

Assisted-by: Claude Opus 5
DeltaFile
+158-0llvm/test/CodeGen/AMDGPU/mai-hazards-gfx942.mir
+86-65llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+9-0llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir
+5-0llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
+258-654 files

LLVM/project 10cd57a — llvm/include/llvm/CGData CodeGenData.h CodeGenDataReader.h, llvm/lib/CGData CodeGenData.cpp CodeGenDataReader.cpp

[CGData] Stop exporting cl::opts. NFC (#226861)

LTO reads `-codegen-data-thinlto-two-rounds` through
`extern cl::opt<bool> CodeGenDataThinLTOTwoRounds`, and llvm-cgdata
assigns
`IndexedCodeGenDataLazyLoading`, exported from CodeGenDataReader.h. Add
`cgdata::thinLTOTwoRounds()` for LTO, and pass lazy loading to
`CodeGenDataReader::create` as a parameter, so that the options can be
file-local.

Aided by Opus 5.5
DeltaFile
+8-11llvm/lib/CGData/CodeGenDataReader.cpp
+8-8llvm/include/llvm/CGData/CodeGenDataReader.h
+10-4llvm/lib/CGData/CodeGenData.cpp
+4-4llvm/tools/llvm-cgdata/llvm-cgdata.cpp
+4-0llvm/include/llvm/CGData/CodeGenData.h
+1-2llvm/lib/LTO/LTO.cpp
+35-296 files

LLVM/project bbbfd87 — llvm/docs ORCv2.md, llvm/include/llvm/ExecutionEngine/Orc Core.h ExecutorProcessControl.h

[ORC] Remove callSPSWrapper, callSPSWrapperAsync, and callWrapper (#226893)

All in-tree callers now use Proxy. Remove the SPS convenience call
methods from ExecutionSession and ExecutorProcessControl, along with the
unit tests that exercised them (Proxy dispatch is covered by
SPSProxySpecTest). Also remove the blocking callWrapper convenience
methods, which have no remaining users.

Add a "How to call functions in the executor" section to
llvm/docs/ORCv2.md describing Proxy, controller-interface descriptors
and sps::ProxySpec, how lookupAndApply and recordProxy resolve proxies,
and how to migrate from callSPSWrapper.

Clients calling these methods directly should migrate to Proxy; see "How
to call functions in the executor" in llvm/docs/ORCv2.md.
DeltaFile
+94-0llvm/docs/ORCv2.md
+0-59llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
+0-53llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp
+0-32llvm/include/llvm/ExecutionEngine/Orc/Core.h
+94-1444 files

LLVM/project 55f6f93 — orc-rt/test/regression README.md, orc-rt/test/regression/languages/c/addressing/cross-object global-data-load.test hidden-data-load.test

[orc-rt] Add initial C addressing regression tests. (#226901)

Add tests that check that JIT'd C code can address data, both in the
same object and in other objects. Each test covers a single construct
(e.g. a load of static data, or a pointer to an array element in another
object stored in initialized data), since linker/loader bugs usually
crash the JIT'd program, and a crash identifies only the failing test.
Each test runs at -O0 and -O2.

To support multi-object tests, add a split-file substitution and lit
feature, and accept .test files in languages/c.

Update the README's test conventions to match: one construct per test,
"Check that" and "Stresses:" header comments, -O0 and -O2 RUN lines, and
guidance on keeping constructs alive under optimization without hiding
the optimized lowering.

Assisted-by: Claude
DeltaFile
+109-7orc-rt/test/regression/README.md
+29-0orc-rt/test/regression/languages/c/addressing/cross-object/global-array-element-pointer-in-data.test
+28-0orc-rt/test/regression/languages/c/addressing/cross-object/hidden-data-load.test
+27-0orc-rt/test/regression/languages/c/addressing/cross-object/global-data-load.test
+22-0orc-rt/test/regression/languages/c/addressing/same-object/global-data-pointer-in-data.c
+21-0orc-rt/test/regression/languages/c/addressing/same-object/global-data-store.c
+236-75 files not shown
+289-911 files

LLVM/project ee28ae7 — orc-rt/tools/ogre ogre.cpp

[orc-rt] Add comments to the ogre utility. NFC. (#226900)
DeltaFile
+45-4orc-rt/tools/ogre/ogre.cpp
+45-41 files

LLVM/project 7cb518a — llvm/include/llvm/CodeGen AsmPrinter.h, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

TargetMachine: Remove pointer-size query methods (#226404)

Remove the shim methods from the TargetMachine's copy of the DataLayout, 
which will soon be eliminated. The Module owns the authoritative DataLayout, 
so callers should read the value from the contextual Module.

Completely unreasonably, Mips's ABI name can change the pointer size which
we probably should just not support. Many other triple checks will never be 
correct. This avoids potential mismatches in these contexts, but I still expect
this to be widely broken.

Some of the TargetLowering constructor changes and AMDGPULegalizerInfo
changes are kind of annoying. We could pass in the DataLayout through the 
subtarget constructors but it didn't seem worth the effort and the information 
should be derivable from the triple anyway.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+11-15llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+14-12llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+12-7llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+4-3llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+5-2llvm/include/llvm/CodeGen/AsmPrinter.h
+3-2llvm/lib/Target/AVR/AVRTargetMachine.h
+49-4132 files not shown
+108-8438 files

LLVM/project 42477f2 — 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 17f2379 — 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
+15-69llvm/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
+20-1136 files not shown
+25-12012 files

LLVM/project 60fc055 — llvm/lib/Target/AMDGPU SILowerControlFlow.cpp, llvm/test/CodeGen/AMDGPU lower-control-flow-live-variables-update.xfail.mir lower-control-flow-live-variables-update.mir

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
+87-0llvm/test/CodeGen/AMDGPU/lower-control-flow-live-variables-update.mir
+5-71llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+0-42llvm/test/CodeGen/AMDGPU/lower-control-flow-live-variables-update.xfail.mir
+92-1133 files

LLVM/project fcd36e8 — clang/docs LanguageExtensions.md, clang/test/CodeGen/PowerPC loadtime-comment-vars.cpp

[Clang][AIX] Document C-linkage and unnamed-namespace names and the warning group. Test both forms
DeltaFile
+42-26clang/test/CodeGen/PowerPC/loadtime-comment-vars.cpp
+12-4clang/docs/LanguageExtensions.md
+54-302 files

LLVM/project 4bc5bfe — 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
+38-131llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+18-18llvm/test/CodeGen/X86/statepoint-vreg-unlimited-tied-opnds.ll
+9-16llvm/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
+83-1831 files not shown
+85-1857 files

LLVM/project 3c6aab7 — llvm/test/CodeGen/AMDGPU shufflevector.v2i64.v8i64.ll amdgcn.bitcast.960bit.ll, llvm/test/CodeGen/X86 mul-i1024.ll

CodeGen: Compute LiveIntervals before TwoAddressInstructions

TwoAddressInstructions is the traditional primary use of LiveVariables,
but it has gained a LiveIntervals path. By moving LiveIntervals earlier,
the default flips to rely on it instead of LiveVariables. The overall
test churn is mostly neutral, with more net wins than losses.

This should move before phi elimination. This is a staging move to
incrementally remove the LiveVariables support from TwoAddressInstructions,
and because the move to running LiveIntervals on SSA is a bigger leap.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+2,603-2,582llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+1,833-1,839llvm/test/CodeGen/AMDGPU/load-local-i16.ll
+1,790-1,779llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
+1,685-1,735llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+1,569-1,565llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll
+1,316-1,322llvm/test/CodeGen/X86/mul-i1024.ll
+10,796-10,822299 files not shown
+47,312-47,703305 files

LLVM/project 2378df7 — llvm/lib/CodeGen TargetPassConfig.cpp, llvm/test/CodeGen/RISCV/rvv fminimum-sdnode.ll fmaximum-sdnode.ll

Remove the obsolete -early-live-intervals flag
DeltaFile
+89-180llvm/test/CodeGen/X86/statepoint-cmp-sunk-past-statepoint.ll
+2-9llvm/test/CodeGen/Thumb2/mve-shuffle.ll
+0-8llvm/test/CodeGen/RISCV/rvv/fminimum-sdnode.ll
+0-8llvm/test/CodeGen/RISCV/rvv/fmaximum-sdnode.ll
+1-5llvm/test/CodeGen/Thumb2/mve-vld3.ll
+0-5llvm/lib/CodeGen/TargetPassConfig.cpp
+92-21543 files not shown
+96-27449 files