LLVM/project b822a27 — compiler-rt/test/msan release_origin_999.c release_origin_998.c

convert to cherry-pick PR and simplify message

Created using spr 1.3.7
DeltaFile
+0-1compiler-rt/test/msan/release_origin_999.c
+0-1compiler-rt/test/msan/release_origin_998.c
+0-1compiler-rt/test/msan/release_origin_997.c
+0-1compiler-rt/test/msan/release_origin_996.c
+0-1compiler-rt/test/msan/release_origin_995.c
+0-1compiler-rt/test/msan/release_origin_994.c
+0-6994 files not shown
+0-1,0001,000 files

LLVM/project d1e15b6 — llvm/lib/CodeGen BranchFolding.cpp, llvm/test/CodeGen/X86 branchfolding-debug-invariant.mir

[BranchFolding] Ignore debug instructions in singleton cond branch check (#228715)

DBG_VALUE was counted when checking for a single-branch block, so the
duplicate branch was kept only under -g.

Fixes #228713

Assisted-by: Claude Opus 5.5
DeltaFile
+68-0llvm/test/CodeGen/X86/branchfolding-debug-invariant.mir
+2-1llvm/lib/CodeGen/BranchFolding.cpp
+70-12 files

LLVM/project 0edf624 — mlir/lib/Transforms RemoveDeadValues.cpp, mlir/test/Transforms remove-dead-values.mlir

[mlir][RemoveDeadValues] Replace dead function argument uses with poison (#208881)

Dropping all uses of a dead function argument can leave null operands in
surviving side-effecting operations in unreachable code.
Subsequent canonicalization may then crash while folding the invalid
operation.

This PR replaces the remaining uses with `ub.poison` before erasing the
argument and add a regression test.

Fixes #206920, fixes #203226
DeltaFile
+49-0mlir/test/Transforms/remove-dead-values.mlir
+14-3mlir/lib/Transforms/RemoveDeadValues.cpp
+63-32 files

LLVM/project 3bfed00 — mlir/lib/IR AffineExpr.cpp, mlir/test/Dialect/Affine canonicalize.mlir

[MLIR] Guard against overflow when simplifying affine expressions. (#228010)

Fixes https://github.com/llvm/llvm-project/issues/224577.

Current canonicalizer may lead to signed integer overflow while
simplifying affine expressions. This change adds overflow checks and
returns `failure()` when an overflow is detected.
DeltaFile
+36-0mlir/test/Dialect/Affine/canonicalize.mlir
+10-3mlir/lib/IR/AffineExpr.cpp
+46-32 files

LLVM/project 0f8a76d — compiler-rt/test/msan release_origin.c

pin to single CPU instead of chunking memset

Created using spr 1.3.7
DeltaFile
+14-2compiler-rt/test/msan/release_origin.c
+14-21 files

LLVM/project 9b9e3f0 — llvm/test/tools/llvm-ar error-opening-permission.test

[test][llvm-ar] Restore file permissions in error-opening-permission.test (#230361)

error-opening-permission.test sets chmod 100 on %t/permission.b to test
EACCES handling, leaving an unreadable file in the build directory after
the test finishes. This causes permission errors for tools like rsync
when copying the build directory.

Restore permissions with chmod 700 at the end of the test, matching
llvm/test/tools/llvm-ranlib/error-opening-permission.test.

Assisted-by: Gemini
DeltaFile
+2-1llvm/test/tools/llvm-ar/error-opening-permission.test
+2-11 files

LLVM/project 255b974 — compiler-rt/test/msan release_origin_999.c release_origin_998.c

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-0compiler-rt/test/msan/release_origin_999.c
+1-0compiler-rt/test/msan/release_origin_998.c
+1-0compiler-rt/test/msan/release_origin_997.c
+1-0compiler-rt/test/msan/release_origin_996.c
+1-0compiler-rt/test/msan/release_origin_995.c
+1-0compiler-rt/test/msan/release_origin_899.c
+6-0994 files not shown
+1,000-01,000 files

LLVM/project 807027f — compiler-rt/test/msan release_origin_901.c release_origin_9.c

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+2-1compiler-rt/test/msan/release_origin.c
+1-0compiler-rt/test/msan/release_origin_901.c
+1-0compiler-rt/test/msan/release_origin_9.c
+1-0compiler-rt/test/msan/release_origin_90.c
+1-0compiler-rt/test/msan/release_origin_900.c
+1-0compiler-rt/test/msan/release_origin_899.c
+7-1995 files not shown
+1,002-11,001 files

LLVM/project ca18429 — llvm/test/tools/llvm-ar error-opening-permission.test

Refactor permission test for llvm-ar

Update permission test to handle command chaining
DeltaFile
+2-2llvm/test/tools/llvm-ar/error-opening-permission.test
+2-21 files

LLVM/project 6115c6d — clang/test/CodeGen/AArch64/sve orv.c, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_orv.c

[clang][CIR] Add tests for SVE ORV intrinsics (#230082)

adds CIR tests for svorv (plain SVE) intrinsics.

Moves and adapts sve-intrinsics/acle_sve_orv.c to sve/orv.c.

Part of #223963
DeltaFile
+159-0clang/test/CodeGen/AArch64/sve/orv.c
+0-155clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_orv.c
+159-1552 files

LLVM/project 85b28b1 — clang/test/CodeGen/AArch64/sve pfalse.c len.c

[clang][CIR] Restore SME compile checks in SVE tests (#230072)

Follow up on the discussion in
[#227657](https://github.com/llvm/llvm-project/pull/227657\#discussion\_r4175421753)
by restoring SME compile checks in `addv.c`, `dup.c`, `len.c`, and
`pfalse.c`.
DeltaFile
+2-0clang/test/CodeGen/AArch64/sve/pfalse.c
+2-0clang/test/CodeGen/AArch64/sve/len.c
+2-0clang/test/CodeGen/AArch64/sve/dup.c
+2-0clang/test/CodeGen/AArch64/sve/addv.c
+8-04 files

LLVM/project ce2a498 — compiler-rt/lib/builtins truncsfhf2.c extendhfsf2.c

[compiler-rt] Restrict __gnu_h2f_ieee and __gnu_f2h_ieee to arm32 EABI (#220170)
DeltaFile
+1-1compiler-rt/lib/builtins/truncsfhf2.c
+1-1compiler-rt/lib/builtins/extendhfsf2.c
+2-22 files

LLVM/project 3853d20 — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp

[VPlan] Use erase_if in VPIRMetadata::intersect (NFC) (#231038)

Simplify metadata removal using erase_if.
DeltaFile
+2-10llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-101 files

LLVM/project 40ab028 — llvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp

[VPlan] Build packs from lane values in replicateByVF (NFC). (#231040)

Previously materializePacksAndUnpacks created single-operand
BuildVectors for all per-lane definitions with vector users or users
inside replicate regions, which replicateByVF later extended with the
per-lane values. Recipes in replicate regions then accessed their lanes
via extractelement(BuildVector, Lane), which had to be folded by several
BuildVector look-throughs.

Instead, create the BuildVectors directly in replicateByVF from the
per-lane definitions, only for users that need a vector. Users inside
replicate regions keep using the original definition until the replicate
regions are dissolved; the resulting lane extracts are then replaced by
the corresponding per-lane definitions before the original definition is
removed. As BuildVectors are only created with all lanes, they now
always use only the first lane of their operands.

This removes a number of indirections and folds, and simplifies the
code.
DeltaFile
+23-24llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
+2-38llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
+5-7llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+0-7llvm/lib/Transforms/Vectorize/VPlan.cpp
+1-5llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+2-1llvm/lib/Transforms/Vectorize/VPlan.h
+33-822 files not shown
+35-848 files

LLVM/project 78a45e9 — orc-rt/include/orc-rt/bedrock Session.h, orc-rt/include/orc-rt/bedrock/sps SessionSPSCI.h

[orc-rt] Add Session instance symbols, SPS CI to look them up (#231043)

Objects created at runtime (e.g. service instances) have no symbols
under the standard object models, so the controller has no way to find
them by name. Instance symbols fill that gap:
Session::addInstanceSymbols registers (name, address) pairs for such
objects, and Session::lookupInstanceSymbols resolves a SymbolLookupSet
against them, with the same missing-symbol semantics as
SimpleSymbolTable::lookup.  Duplicate handling follows
SimpleSymbolTable::addUnique: a batch containing a conflicting
definition is rejected as a whole.

The new orc_rt_ci_sps_Session_lookupInstanceSymbols wrapper exposes the
lookup to the controller. It is registered by sps_ci::addSession, which
sps_ci::addAll now includes.
DeltaFile
+117-0orc-rt/test/unit/bedrock/sps/SessionSPSCITest.cpp
+70-0orc-rt/lib/bedrock/sps/SessionSPSCI.cpp
+45-0orc-rt/test/unit/bedrock/SessionTest.cpp
+32-0orc-rt/include/orc-rt/bedrock/Session.h
+28-0orc-rt/include/orc-rt/bedrock/sps/SessionSPSCI.h
+8-0orc-rt/test/unit/bedrock/BootstrapInfoTest.cpp
+300-04 files not shown
+310-010 files

LLVM/project af5dd51 — llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC]Move poor throughput insts logic into a helper function, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/231042
DeltaFile
+23-19llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+5-0llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+28-192 files

LLVM/project 86d9538 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

TableGen: Cache resolved class instantiations

The same class instantiation is often referenced many times in one
record, and each reference was resolved again from scratch along with
everything nested in its arguments. Cache the results in MapResolver and
RecordResolver. The cache is cleared when the mappings change, and is
bypassed while a mapped variable is being resolved.

Nested instantiations are resolved through a TrackUnresolvedResolver,
which does not change the result. These share the cache of the
underlying resolver, which also records whether any references were left
unresolved so the trackers can be updated on a hit.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   71.75   18.22  -74.6%
  X86.td       6.10    6.15   +0.8%
  AArch64.td   3.28    3.32   +1.3%

    [3 lines not shown]
DeltaFile
+142-3llvm/include/llvm/TableGen/Record.h
+14-4llvm/lib/TableGen/Record.cpp
+156-72 files

LLVM/project f52d162 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

TableGen: Skip resolving values that cannot change

Lists, dags, bits and arguments made only of leaf values always resolve
to themselves, but resolving them still walked every element. Record
this when they are created and return early.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   79.12   71.73   -9.3%
  X86.td       6.25    6.12   -2.1%
  AArch64.td   3.40    3.28   -3.7%
  RISCV.td     8.34    8.19   -1.8%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-2llvm/include/llvm/TableGen/Record.h
+19-0llvm/lib/TableGen/Record.cpp
+37-22 files

LLVM/project cc988af — llvm/lib/TableGen Record.cpp

TableGen: Use DenseMap for the IntInit pool

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   79.34   79.13   -0.3%
  X86.td       6.30    6.25   -0.7%
  AArch64.td   3.43    3.41   -0.6%
  RISCV.td     8.40    8.34   -0.7%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-2llvm/lib/TableGen/Record.cpp
+1-21 files

LLVM/project 6239a74 — llvm/lib/Transforms/Vectorize VPlan.h

[VPlan] Use getFastMathFlagsOrNone in VPIRFlags::applyFlags (NFC) (#231036)

applyFlags hand-rolled the same field-by-field FastMathFlagsTy to
FastMathFlags conversion as getFastMathFlagsOrNone. Use the latter
together with copyFastMathFlags.
DeltaFile
+2-10llvm/lib/Transforms/Vectorize/VPlan.h
+2-101 files

LLVM/project 5be1e6d — llvm/test/TableGen AMDGPUTargetDefSubArchSpelling.td AMDGPUTargetDefLDSAllocGranularity.td

AMDGPU: Use TargetSubtarget.td in TargetDef tablegen tests (#231018)

The -gen-amdgpu-target-def tests only need the subtarget and processor
classes. Include TargetSubtarget.td instead of Target.td, which also
checks that it works standalone, and drop the unneeded dummy Target.

The 14 llvm-tblgen RUN lines each parsed Target.td, which costs 1.29 G
instructions:u (Release+asserts); TargetSubtarget.td costs 0.005 G.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-20llvm/test/TableGen/AMDGPUTargetDefErrors.td
+1-2llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+1-2llvm/test/TableGen/AMDGPUTargetDefLDSAllocGranularity.td
+12-243 files

LLVM/project 6719b9e — llvm/utils/gn/secondary/llvm/include/llvm/Analysis BUILD.gn, llvm/utils/gn/secondary/llvm/include/llvm/CodeGen BUILD.gn

[gn] port c90b6414e607 (mlgo EmitC models) (#231035)

Ports ab547095ead5 since it's needed unconditionally after c90b6414e607.

Register only the checked-in, pre-lowered _test_inc test model.
Lowering .mlir models is still not implemented in the GN build.
DeltaFile
+55-0llvm/utils/gn/secondary/llvm/include/llvm/CodeGen/BUILD.gn
+55-0llvm/utils/gn/secondary/llvm/include/llvm/Analysis/BUILD.gn
+0-2llvm/utils/gn/secondary/llvm/test/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
+112-25 files

LLVM/project 8a0968e — llvm/utils/gn/build write_file.py, llvm/utils/gn/secondary/lldb/test BUILD.gn

[gn] make write_file.py replace literal \n with newlines (#231034)

Like write_cmake_config.py. This makes it possible to write multi-line
generated headers from an action(), which is needed for the next commit.

As demo, update the only current existing caller to write a
trailing newline. This matches the CMake build.
DeltaFile
+2-2llvm/utils/gn/build/write_file.py
+1-1llvm/utils/gn/secondary/lldb/test/BUILD.gn
+3-32 files

LLVM/project 48397d7 — llvm/test/Transforms/SLPVectorizer/AMDGPU ordered-reduction-coalesced-loads.ll fmul-extract-fadd-chain.ll

update tests
DeltaFile
+0-88llvm/test/Transforms/SLPVectorizer/AMDGPU/fmul-extract-fadd-chain.ll
+16-64llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+16-1522 files

LLVM/project ebfca51 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Transforms/SLPVectorizer/AMDGPU alt-fmul-fadd-cost.ll fma-operand-contract-selection.ll

[AMDGPU] Limit the fmul fusion discount to a matching context type

The fmul is free when its context instruction feeds a fusable fadd or
fsub. A vector fmul priced with a scalar lane as the context inherits
that fusion only when it is emitted lane by lane. On a packed type the
scalar user does not show that the vector fmul feeds a vector fadd, and
products extracted into a scalar fadd chain keep the packed fmul while
the fma is lost.
DeltaFile
+88-0llvm/test/Transforms/SLPVectorizer/AMDGPU/fmul-extract-fadd-chain.ll
+64-16llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-coalesced-loads.ll
+38-37llvm/test/Transforms/SLPVectorizer/AMDGPU/ordered-reduction-fma-fusion.ll
+36-6llvm/test/Transforms/SLPVectorizer/AMDGPU/fma-operand-contract-selection.ll
+7-11llvm/test/Transforms/SLPVectorizer/AMDGPU/alt-fmul-fadd-cost.ll
+5-2llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+238-721 files not shown
+239-737 files

LLVM/project 43e3e43 — llvm/test/tools/llubi intr_experimental_vector.ll, llvm/tools/llubi/lib Value.h Interpreter.cpp

[llubi] Use the correct poison representation for byte values (#231028)

We always use `ByteValue` to represent `bN poison`.

The test is generated by DeepSeek-V4.1-Flash. Looks like there is no
other bug like this.
DeltaFile
+3-0llvm/test/tools/llubi/intr_experimental_vector.ll
+1-1llvm/tools/llubi/lib/Interpreter.cpp
+1-0llvm/tools/llubi/lib/Value.h
+5-13 files

LLVM/project 007418c — llvm/lib/CodeGen RegAllocGreedy.cpp RegAllocGreedy.h

RegAllocGreedy: Avoid unused block frequency lookups in hint recoloring (#231027)

collectHintInfo looked up the block frequency of every copy, but the
frequencies are only used for the profitability check when the register
would be recolored. Most visited registers are already assigned the
target register, so record the block and look the frequency up only
when it is needed. Also use a SmallDenseSet for the visited set, which
otherwise falls back to a std::set on anything but tiny components.

On a stress test with 4000 critical edges into a block with 4 PHIs,
this roughly halves the time in Greedy.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-4llvm/lib/CodeGen/RegAllocGreedy.h
+3-4llvm/lib/CodeGen/RegAllocGreedy.cpp
+7-82 files

LLVM/project 36263cf — llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td

[RISCV][P-ext] Change RISCVISD::SATI to use [1,bitwidth] for the immediate. (#230377)

This matches the intrinsics and assembly syntax for the instruction.

Assisted-by: Claude
DeltaFile
+15-17llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+7-8llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+22-252 files

LLVM/project 42c2dfb — llvm/lib/CodeGen/SelectionDAG SDNodeInfo.cpp

[SelectionDAG] Verify SDTCisSameNumEltsAs in SDNodeInfo::verifyNode (#230616)

Assisted-by: Claude
DeltaFile
+16-1llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp
+16-11 files

LLVM/project c8f1c82 — llvm/test/TableGen AMDGPUTargetDefSubArchSpelling.td AMDGPUTargetDefLDSAllocGranularity.td

AMDGPU: Use TargetSubtarget.td in TargetDef tablegen tests

The -gen-amdgpu-target-def tests only need the subtarget and processor
classes. Include TargetSubtarget.td instead of Target.td, which also
checks that it works standalone, and drop the unneeded dummy Target.

The 14 llvm-tblgen RUN lines each parsed Target.td, which costs 1.29 G
instructions:u (Release+asserts); TargetSubtarget.td costs 0.005 G.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+10-20llvm/test/TableGen/AMDGPUTargetDefErrors.td
+1-2llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+1-2llvm/test/TableGen/AMDGPUTargetDefLDSAllocGranularity.td
+12-243 files