LLVM/project cb98cebllvm/tools/llvm-profdata llvm-profdata.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+15-0llvm/tools/llvm-profdata/llvm-profdata.cpp
+15-01 files

LLVM/project 9e9c593clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp, clang/test/Analysis/Scalable/source-edit-generation end-to-end-cpp-bounded-buffers.cpp

[SSAF][clang-reforge] Add end-to-end clang-reforge tests

- Make CppBoundedBuffers adapt to flattened WPA results;
- Let CppBoundedBuffers use qualified EntityNames so that it can
  associate ASTNodes with WPA results;
- Add end-to-end tests

Final step of:
rdar://185840466
DeltaFile
+623-0clang/test/Analysis/Scalable/source-edit-generation/end-to-end-cpp-bounded-buffers.cpp
+23-9clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+22-4clang/unittests/ScalableStaticAnalysis/SourceTransformation/CppBoundedBuffersTest.cpp
+668-133 files

LLVM/project 5d88e02llvm/lib/Target/AMDGPU SIInsertHardClauses.cpp, llvm/test/CodeGen/AMDGPU spillv16.ll hard-clauses-gfx1250.mir

[AMDGPU] Do not clause mem ops in different scopes

That is for performance reasons as it it unlikely give any
performance benefit.
DeltaFile
+143-168llvm/test/CodeGen/AMDGPU/hard-clauses-gfx1250.mir
+2-10llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform-in-vgpr.ll
+2-5llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp
+1-2llvm/test/CodeGen/AMDGPU/spillv16.ll
+0-2llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-uniform-in-vgpr.ll
+148-1875 files

LLVM/project ad5c4a2clang/test/Analysis/Scalable/source-edit-generation write-failure.cpp coexistence.cpp, clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin TestTransformation.cpp

[SSAF] Fix stage-2 clang build error on TestTransformationPlugin

The plugin code defines the extern variable
SSAFTestTransformationAnchorSource, which is supposed to be used to
force static linking, so not needed here.

The variable definition should undoubtedly be removed, as doing so
solves the build issue locally. The explanation below regarding why
this variable causes the issue was provided by Claude. I repeatedly
asked Claude questions, and he revised his reasoning several times
until it became consistent. However, we should still take the
following explanation with a grain of salt:

ASan created a private alias symbol for the extern variable
SSAFTestTransformationAnchorSource. The linker, when in
'-flat_namespace' mode, treated the symbol as a name-based bind, which
later failed to be resolved through name searching by the loader.

rdar://185749574

    [2 lines not shown]
DeltaFile
+0-8clang/test/Analysis/Scalable/source-edit-generation/Plugins/TestTransformationPlugin/TestTransformation.cpp
+0-3clang/test/Analysis/Scalable/source-edit-generation/happy-path.cpp
+0-2clang/test/Analysis/Scalable/source-edit-generation/write-failure.cpp
+0-2clang/test/Analysis/Scalable/source-edit-generation/coexistence.cpp
+0-154 files

LLVM/project 979b722mlir/include/mlir/Dialect/OpenACC OpenACCOps.td, mlir/include/mlir/Dialect/WasmSSA/IR WasmSSAOps.td

[mlir][IR] Require inherent symbol attributes for Symbol operations (#218920)

Require SymbolTable operations to implement SymbolOpInterface and store
symbol names and visibility as inherent attributes.

Add missing symbol properties/interfaces to GPU, OpenACC, OpenMP, EmitC,
and Toy operations, and update affected tests and the GPU Python
builder.

Assisted-by: Codex
DeltaFile
+32-66mlir/lib/IR/SymbolTable.cpp
+71-15mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
+26-45mlir/include/mlir/IR/SymbolInterfaces.td
+54-13mlir/include/mlir/IR/SymbolTable.h
+40-15mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
+32-18mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+255-17295 files not shown
+719-481101 files

LLVM/project 4357422llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/RISCV partial-reduce-dot-product.ll partial-reduce.ll

[LV] Support EVL for partial reduction and VPExpressionRecipe. (#205741)

This patch adds the support for partial reduction with EVL tail-folding
by not creating a new VPExpressionEVLRecipes but just changing the last
expressionRecipes from VPReductionRecipe to VPReductionEVLRecipe.

Currently, all partial reductions will be converted to
VPExpressionRecipe
when construction. So this patch also supports the VPExpressionRecipe
for EVL.
DeltaFile
+950-0llvm/test/Transforms/LoopVectorize/VPlan/RISCV/reductions-evl.ll
+858-0llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-with-predicate.ll
+197-0llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce.ll
+52-19llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+68-0llvm/test/Transforms/LoopVectorize/VPlan/RISCV/partial-reduce-dot-product.ll
+20-20llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll
+2,145-393 files not shown
+2,197-539 files

LLVM/project 499e1fbbolt/lib/Core BinaryFunction.cpp, bolt/test/RISCV weak-undefined-tail-call.s

[BOLT][RISCV] Avoid evaluating indirect branches as direct branches (#218088)

The RISC-V branch evaluator can resolve JALR when the base register
state is known. In particular, jalr zero, zero, 0 evaluates to address
zero even though it remains an indirect branch.

Do not send indirect branches through the direct branch symbolization
path. Leave them to the existing indirect branch handling instead.

Add a regression test modeling a tail call to an undefined weak symbol
relaxed by GNU ld.
DeltaFile
+30-0bolt/test/RISCV/weak-undefined-tail-call.s
+2-1bolt/lib/Core/BinaryFunction.cpp
+32-12 files

LLVM/project 5fcbb2allvm/lib/Target/AMDGPU SILoadStoreOptimizer.cpp AMDGPU.td, llvm/test/CodeGen/AMDGPU ds_write2.ll ds_read2-gfx1250.ll

[AMDGPU] Disable unaligned 2addr LDS operations in strict mode (#219004)
DeltaFile
+326-161llvm/test/CodeGen/AMDGPU/ds_read2-gfx1250.ll
+149-75llvm/test/CodeGen/AMDGPU/ds_write2.ll
+12-2llvm/lib/Target/AMDGPU/DSInstructions.td
+8-0llvm/lib/Target/AMDGPU/AMDGPU.td
+6-1llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
+501-2395 files

LLVM/project 4832c44llvm/test/tools/UpdateTestChecks/update_test_checks dot_value_in_metadata_string.test

Drop extra blank line
DeltaFile
+0-1llvm/test/tools/UpdateTestChecks/update_test_checks/dot_value_in_metadata_string.test
+0-11 files

LLVM/project 7f707b7llvm/test/tools/UpdateTestChecks/update_test_checks dot_value_in_metadata_string.test

Update test checks to save on a copy
DeltaFile
+3-2llvm/test/tools/UpdateTestChecks/update_test_checks/dot_value_in_metadata_string.test
+3-21 files

LLVM/project a10e7d3clang/test/CodeGen/AArch64/neon intrinsics.c

[CIR][AARCH64] Fix neon conversion test (#219069)

This fixes the neon intrinsics test, which has been failing since a
recent change to introduce more conversion handling. The test had an
inadvertantly repeated CIR check.
DeltaFile
+1-1clang/test/CodeGen/AArch64/neon/intrinsics.c
+1-11 files

LLVM/project 97c6103llvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.cluster.load.async.to.lds.ll llvm.amdgcn.cluster.load.ll

[AMDGPU] Downgrade cluster loads in strict mode (#218999)
DeltaFile
+703-168llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.ll
+527-71llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.async.to.lds.ll
+27-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1,257-2393 files

LLVM/project 3d771f4.github/workflows release-binaries.yml, clang/cmake/caches Release.cmake

Revert "Revert "workflows/release-binaries: Disable flang on Darwin (#164667)"" (#218978)

Reverts llvm/llvm-project#216667

This change was ported to the `release/23.x` branch in #217059, and when
we created the first release that included this change (3.1.0), the job
for the MacOS ARM binaries was killed when the job hit the 6 hour mark.
Previous 3.1.0-rc release did not include this change and all completed
well within the 6 hour time out.

To enable the job that builds the release binaries to complete within
the allotted time, I am reverting this change which will essentially
disable flang from building on Darwin.

In the future if we get faster builders, we can explore re-enabling
building flang.
DeltaFile
+8-2clang/cmake/caches/Release.cmake
+0-7.github/workflows/release-binaries.yml
+8-92 files

LLVM/project f44ab0alld/ELF SyntheticSections.cpp

[ELF] Avoid repeated scans when merging strings

Build per-worker shard lists before inserting merge pieces. This keeps
each shard's input order deterministic while avoiding a full scan of every
piece by every worker. Reuse SectionPiece::outputOff for packed temporary
(section, piece) links.

Both the worker and shard counts are capped at 32,
as a result the auxiliary list storage is bounded at 16 KiB
regardless of the number of input sections.

Focused benchmark on Linux 6.16, Btrfs, 16 pinned CPUs, --threads=16. The
input is 16 copies of an object containing 2,000,000 identical mergeable
strings (32,000,000 pieces total) averaged across 20 runs and 3 warmups.
(RSS is the median)

              wall       CPU       RSS
  before      0.353 s    1.523 s    682.5 MiB
  after       0.343 s    1.167 s    682.7 MiB

    [7 lines not shown]
DeltaFile
+64-10lld/ELF/SyntheticSections.cpp
+64-101 files

LLVM/project 9e4cffaclang-tools-extra/clang-tidy/misc RedundantExpressionCheck.cpp, clang/lib/Analysis/LifetimeSafety LifetimeSafety.cpp

[llvm, clang] Remove unused includes of FoldingSet.h (NFC) (#219027)

None of these files use FoldingSet.
DeltaFile
+0-1llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
+0-1clang/lib/StaticAnalyzer/Checkers/TaggedUnionModeling.h
+0-1clang/lib/StaticAnalyzer/Checkers/StdVariantChecker.cpp
+0-1clang/lib/Sema/SemaInit.cpp
+0-1clang/lib/Analysis/LifetimeSafety/LifetimeSafety.cpp
+0-1clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
+0-66 files

LLVM/project 8fe5093mlir/lib/Dialect/Bufferization/Transforms OneShotAnalysis.cpp, mlir/lib/Dialect/Linalg/IR LinalgOps.cpp

[mlir][Linalg] Split explicit inherent/discardable attribute APIs access (#218916)

Migrate Linalg, Bufferization, and MemRef users to explicit discardable
or operation-specific attribute access, including the Linalg generator
and C API.

Assisted-by: Codex
DeltaFile
+43-29mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+15-11mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
+19-5mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
+15-8mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
+9-12mlir/lib/Dialect/MemRef/Transforms/NormalizeMemRefs.cpp
+11-8mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
+112-7326 files not shown
+240-13432 files

LLVM/project 3428605llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/TargetParser AMDGPUTargetParser.cpp

[AMDGPU] Add MaxHWAddressableLocalMemorySize to TargetParser (#219020)

This is to aid in resolving
https://github.com/ROCm/llvm-project/issues/3298 : "Comgr should use
target information from upstream TargetParser rather than maintaining
its own"
DeltaFile
+32-0llvm/unittests/TargetParser/TargetParserTest.cpp
+11-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+7-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+2-1llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+1-1llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+53-25 files

LLVM/project 228edaallvm/lib/Target/AArch64 AArch64ExpandPseudoInsts.cpp

format fixes
DeltaFile
+5-4llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+5-41 files

LLVM/project 7e8d98cllvm/include/llvm/Analysis TargetTransformInfo.h TargetTransformInfoImpl.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[NFC][TTI] Remove default CostKind from TTI::getGEPCost() (#218764)

Addresses #135598.

AI Usage: Assisted by Codex
DeltaFile
+7-6llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+4-4llvm/include/llvm/Analysis/TargetTransformInfo.h
+4-3llvm/include/llvm/CodeGen/BasicTTIImpl.h
+4-2llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
+4-2llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+2-2llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
+25-194 files not shown
+31-2510 files

LLVM/project 34ea8bclldb/include/lldb/Symbol Symbol.h

fixup! [LLDB] Support Auxiliary library in ELF format
DeltaFile
+3-0lldb/include/lldb/Symbol/Symbol.h
+3-01 files

LLVM/project 81750e6llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/TargetParser AMDGPUTargetParser.cpp

[AMDGPU] Move the LDS bank count query into TargetParser

Emit LDSBankCount as a column of the generated AMDGPU GPU table and
expose getLDSBankCount() from TargetParser, so consumers that only have
a GPUKind or subarch can read it without an MCSubtargetInfo.

Change-Id: Id792a6886a53de80326bac14bc9b7d973a38d6cc
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+14-0llvm/unittests/TargetParser/TargetParserTest.cpp
+10-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+4-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+2-1llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+1-1llvm/test/TableGen/AMDGPUTargetDefSubArchSpelling.td
+31-25 files

LLVM/project 77d814cllvm/lib/Target/AMDGPU AMDGPU.td

[AMDGPU] Add FeatureLDSBankCount64 for gfx12.5

gfx1250, gfx1251 and gfx1250-strict have 64 LDS banks rather than 32.
Set the count on FeatureISAVersion12_50_Common so all three, and the
gfx12-5-generic target covering them, inherit it.

Change-Id: Idf9a69ae6e3218dd1685d1c8102bb0477ecbccba
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+2-1llvm/lib/Target/AMDGPU/AMDGPU.td
+2-11 files

LLVM/project 361448cllvm/lib/Target/AArch64 AArch64FrameLowering.cpp AArch64FrameLowering.h, llvm/test/CodeGen/AArch64 sve-multivec-spill-fill.ll sme2-intrinsics-ldnt1.ll

Address review comments on multi-vector spill/fill
DeltaFile
+67-99llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll
+67-99llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll
+49-43llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+8-0llvm/lib/Target/AArch64/AArch64FrameLowering.h
+2-2llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+1-1llvm/test/CodeGen/AArch64/sve-multivec-spill-fill.ll
+194-2441 files not shown
+195-2457 files

LLVM/project d0fc4bfclang/test/CIR/CodeGenOpenACC declare-deviceresident.cpp declare-create.cpp

[CIR] Drop call-conv-lowering opt-out from OpenACC declare tests

The six OpenACC declare tests opted out of CallConvLowering because the pass
did not handle parameters of an empty or tag class.  CallConvLowering handles
them now, so they can run the pass and pin what it produces.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+10-18clang/test/CIR/CodeGenOpenACC/declare-copyout.cpp
+10-18clang/test/CIR/CodeGenOpenACC/declare-copy.cpp
+8-16clang/test/CIR/CodeGenOpenACC/declare-present.cpp
+7-15clang/test/CIR/CodeGenOpenACC/declare-deviceresident.cpp
+7-15clang/test/CIR/CodeGenOpenACC/declare-create.cpp
+7-15clang/test/CIR/CodeGenOpenACC/declare-copyin.cpp
+49-976 files

LLVM/project a69a951llvm/lib/Target/Hexagon HexagonVExtract.cpp HexagonISelDAGToDAG.cpp, llvm/test/CodeGen/Hexagon spill-vector-alignment.mir aligna-save-base-reg.ll

[Hexagon] Emit PS_aligna in the prologue with the final stack alignment (#204660)

Hexagon uses PS_aligna to set up the aligned stack base register when a
function has variable-sized stack objects. That pseudo is created during
instruction selection using the maximum stack alignment known at that
point.

Register allocation can later introduce HVX spill slots with stricter
alignment, for example 128-byte alignment in HVX 128-byte mode. If
PS_aligna keeps the older immediate, the aligned base register can be
under-aligned, and aligned HVX spill stores may address stack slots with
insufficient alignment.

In order to address this bug, insert PS_aligna during prologue emission
once its final value is known instead of manually updating it throughout
the backend multiple times.
DeltaFile
+96-104llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
+35-7llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
+2-26llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
+26-0llvm/test/CodeGen/Hexagon/aligna-save-base-reg.ll
+13-1llvm/test/CodeGen/Hexagon/spill-vector-alignment.mir
+0-11llvm/lib/Target/Hexagon/HexagonVExtract.cpp
+172-1494 files not shown
+189-15910 files

LLVM/project 47ec119llvm/lib/Target/AMDGPU SIInsertHardClauses.cpp, llvm/test/CodeGen/AMDGPU hard-clauses-gfx1250.mir

[AMDGPU] Prevent clauses with incompatible scopes on gfx1250-strict (#218788)
DeltaFile
+168-8llvm/test/CodeGen/AMDGPU/hard-clauses-gfx1250.mir
+20-1llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp
+188-92 files

LLVM/project 5103ef7flang/test/Lower/OpenMP metadirective-loop.f90

Improve metadirective loop tests
DeltaFile
+114-7flang/test/Lower/OpenMP/metadirective-loop.f90
+114-71 files

LLVM/project c07395emlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp, mlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

[mlir][LLVM] Use a disjoint scope domain when inlining noalias

This matches recent changes to the LLVM inliner.

AI disclosure: Claude wrote the code, I wrote the commit message and
have done initial review.
DeltaFile
+28-25mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+10-18mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+38-432 files

LLVM/project c204821mlir/lib/Dialect/LLVMIR/Transforms InlinerInterfaceImpl.cpp

Update comment
DeltaFile
+2-2mlir/lib/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.cpp
+2-21 files

LLVM/project 289a34cmlir/test/Dialect/LLVMIR inlining-alias-scopes.mlir

Test that the inliner keeps the flag when it clones a domain

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+35-0mlir/test/Dialect/LLVMIR/inlining-alias-scopes.mlir
+35-01 files