LLVM/project 09eea22llvm/lib/Transforms/IPO Attributor.cpp, llvm/test/Transforms/Attributor range-and-constant-fold.ll

[Attributor] Check range size before constant fold load (#151359)

If the range size doesn't match the type size, it might read wrong data.
DeltaFile
+38-0llvm/test/Transforms/Attributor/range-and-constant-fold.ll
+3-0llvm/lib/Transforms/IPO/Attributor.cpp
+41-02 files

LLVM/project 8485777llvm/lib/Target/AMDGPU AMDGPUMIRFormatter.h AMDGPUHSAMetadataStreamer.h, llvm/lib/Target/AMDGPU/MCA AMDGPUCustomBehaviour.h

[Target] Add "override" where appropriate (NFC) (#165083)

Note that "override" makes "virtual" redundant.

Identified with modernize-use-override.
DeltaFile
+6-7llvm/lib/Target/AMDGPU/AMDGPUMIRFormatter.h
+3-3llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
+2-2llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.h
+2-2llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
+2-2llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h
+1-1llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+16-1726 files not shown
+42-4332 files

LLVM/project 7379100llvm/include/llvm/Support Recycler.h

[Support] Consolidate the two implementations of Recycler::clear (NFC) (#165081)

This patch consolidates the two implementations of Recycler::clear
with "if constexpr" for simplicity.
DeltaFile
+11-10llvm/include/llvm/Support/Recycler.h
+11-101 files

LLVM/project d461244llvm/include/llvm/ADT DenseMap.h, llvm/unittests/ADT DenseMapTest.cpp

[ADT] Skip DenseMapBase::destroyAll on trivially destructible types (#165080)

DenseMap::destroyAll currently iterates through the entire bucket
array to call destructors keys and values.  We don't need to do that
if we know that both key and value types are trivially destructible,
meaning that the destructors are no-ops.

This patch introduces "constexpr if" at the beginning of destroyAll to
skip the rest of the function if both key and value types are
trivially destructible.
DeltaFile
+70-0llvm/unittests/ADT/DenseMapTest.cpp
+6-0llvm/include/llvm/ADT/DenseMap.h
+76-02 files

LLVM/project 881b001llvm/include/llvm/ADT DenseMap.h, llvm/lib/CodeGen RegisterUsageInfo.cpp

[ADT] Make internal methods of DenseMap/SmallDenseMap private (NFC) (#165079)

This patch moves the init, copyFrom, and grow methods in DenseMap and
SmallDenseMap from public to private to hide implementation details.

The only problem is that PhysicalRegisterUsageInfo calls
DenseMap::grow instead of DenseMap::reserve, which I don't think is
intended.  This patch updates the call to reserve.
DeltaFile
+90-90llvm/include/llvm/ADT/DenseMap.h
+1-1llvm/lib/CodeGen/RegisterUsageInfo.cpp
+91-912 files

LLVM/project b97835dllvm/utils profcheck-xfail.txt

Add new MemorySanitizer test cases for AArch64 (#165094)

DeltaFile
+4-0llvm/utils/profcheck-xfail.txt
+4-01 files

LLVM/project 1d661a9llvm/utils profcheck-xfail.txt

Add Codegen/Hexagon/masked_gather.ll to profcheck-xfail (#165093)

DeltaFile
+1-0llvm/utils/profcheck-xfail.txt
+1-01 files

LLVM/project 9a0a1fallvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp

[ISel] Use CallBase instead of CallInst (#164769)

This is to follow the discussion in
https://github.com/llvm/llvm-project/pull/164565
CallBase can cover more call-like instructions which carry caling
convention flag.

Co-authored-by: Yuanke Luo <ykluo at birentech.com>
DeltaFile
+3-3llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+3-31 files

LLVM/project bbe9209mlir/include/mlir/Dialect/AMDGPU/IR AMDGPU.td, mlir/test/Conversion/AMDGPUToROCDL mfma-gfx950.mlir

[mlir][amdgpu] Update scaled_mfma assembly format with intrinsic shape (#165044)

Use the same format as introduced for wmma by
https://github.com/llvm/llvm-project/pull/164920 and for mfma by
https://github.com/llvm/llvm-project/pull/165037.
DeltaFile
+15-15mlir/test/Dialect/AMDGPU/canonicalize.mlir
+19-11mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
+14-14mlir/test/Conversion/AMDGPUToROCDL/mfma-gfx950.mlir
+24-0mlir/test/Dialect/AMDGPU/invalid.mlir
+2-2mlir/test/Dialect/AMDGPU/ops.mlir
+74-425 files

LLVM/project f58aa0ellvm/include/llvm/ExecutionEngine/Orc Core.h, llvm/lib/ExecutionEngine/Orc Core.cpp

[ORC] Fix race when checking isComplete (#165063)

After #164340 there is a tsan race on `OutstandingSymbolsCount` when
decrementing it in `notifySymbolMetRequiredState` vs reading it in
`isComplete()`. Fix this by having `IL_emit` filter out non-completed
queries when it has the lock to do so, and that way we avoid needing to
call `isComplete()` later.
DeltaFile
+13-4llvm/lib/ExecutionEngine/Orc/Core.cpp
+1-1llvm/include/llvm/ExecutionEngine/Orc/Core.h
+14-52 files

LLVM/project b0658b1clang/lib/CIR/CodeGen CIRGenException.cpp CIRGenCleanup.h

[CIR][NFC] Upstream EHPersonality for function (#164883)

Upstream the EHPersonality class for a function as a prerequisite for
working with the handlers

Issue #154992
DeltaFile
+165-0clang/lib/CIR/CodeGen/CIRGenException.cpp
+49-0clang/lib/CIR/CodeGen/CIRGenCleanup.h
+2-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+216-03 files

LLVM/project 51fcb9dclang/lib/CIR/CodeGen CIRGenCall.cpp, clang/test/CIR/CodeGen complex.cpp

[CIR] Upstream CallOp with ComplexType as return type (#164980)

Upstream support calling function that returns ComplexType

Issue https://github.com/llvm/llvm-project/issues/141365
DeltaFile
+27-0clang/test/CIR/CodeGen/complex.cpp
+6-3clang/lib/CIR/CodeGen/CIRGenCall.cpp
+33-32 files

LLVM/project f248010mlir/include/mlir/Dialect/AMDGPU/IR AMDGPU.td, mlir/lib/Dialect/AMDGPU/IR AMDGPUDialect.cpp

[mlir][amdgpu] Update mfma assembly format with intrinsic shape (#165037)

Use the same format as introduced for wmma by
https://github.com/llvm/llvm-project/pull/164920.

Also make `blocks` default to 1.
DeltaFile
+39-39mlir/test/Conversion/AMDGPUToROCDL/mfma.mlir
+42-30mlir/test/Dialect/AMDGPU/invalid.mlir
+27-27mlir/test/Conversion/AMDGPUToROCDL/mfma-gfx950.mlir
+10-8mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
+10-3mlir/test/Dialect/AMDGPU/ops.mlir
+3-3mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
+131-1106 files

LLVM/project 59e601allvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/X86 sink-addrmode-base.ll

[CodeGenPrepare] Don't simplify incomplete expression tree in AddrModeCombine (#164628)

Since new select/phi instructions may construct loops, the expression
tree to be simplified may still be incomplete (i.e., it may contain
select with dummy values or phi without incoming values). This patch
removes the call to simplifyInstruction for now, as it doesn't break
existing tests.

Original PR: https://reviews.llvm.org/D36073
Fix the crash reported in
https://github.com/llvm/llvm-project/pull/163453#issuecomment-3429922732.
DeltaFile
+6-36llvm/lib/CodeGen/CodeGenPrepare.cpp
+38-0llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode-base.ll
+44-362 files

LLVM/project 2774418llvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

rebase

Created using spr 1.3.7
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/A/A_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-5,21975 files not shown
+150-9,92481 files

LLVM/project f060b23llvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/A/A_macho.yaml
+0-5,21975 files not shown
+148-9,92281 files

LLVM/project a7128b2llvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

rebase

Created using spr 1.3.7
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/A/A_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-5,21975 files not shown
+148-9,92281 files

LLVM/project ef2171cllvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/B/B_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-5,21975 files not shown
+143-9,92281 files

LLVM/project e81a627llvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

rebase

Created using spr 1.3.7
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/B/B_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-5,21975 files not shown
+143-9,92281 files

LLVM/project f0a643aclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

rebase

Created using spr 1.3.7
DeltaFile
+21-3llvm/lib/Support/SpecialCaseList.cpp
+11-8llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing-gpr.ll
+9-1llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+3-7clang/lib/Format/TokenAnnotator.cpp
+7-0llvm/include/llvm/Support/SpecialCaseList.h
+5-0clang/unittests/Format/TokenAnnotatorTest.cpp
+56-191 files not shown
+57-207 files

LLVM/project 617971bclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+21-3llvm/lib/Support/SpecialCaseList.cpp
+11-8llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing-gpr.ll
+3-7clang/lib/Format/TokenAnnotator.cpp
+9-1llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+7-0llvm/include/llvm/Support/SpecialCaseList.h
+5-0clang/unittests/Format/TokenAnnotatorTest.cpp
+56-191 files not shown
+57-207 files

LLVM/project 7be3cacllvm/include/llvm/CodeGen Passes.h, llvm/lib/Target/X86 X86.h

[X86] Move x86 specific create*Pass Functions to X86.h

There are no other target specific passes in Passes.h and these really
belong inside x86.h to be consistent with other targets.

Reviewers: arsenm, phoebewang, RKSimon, topperc

Reviewed By: arsenm

Pull Request: https://github.com/llvm/llvm-project/pull/165075
DeltaFile
+0-8llvm/include/llvm/CodeGen/Passes.h
+8-0llvm/lib/Target/X86/X86.h
+8-82 files

LLVM/project 195bedallvm/include/llvm/CodeGen Passes.h, llvm/lib/Target/X86 X86LowerAMXType.cpp X86.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+57-39llvm/lib/Target/X86/X86LowerAMXType.cpp
+20-0llvm/lib/Target/X86/X86.h
+0-8llvm/include/llvm/CodeGen/Passes.h
+6-1llvm/lib/Target/X86/X86PassRegistry.def
+3-1llvm/test/CodeGen/X86/amx_tile_pair_lower_type_O0.ll
+2-1llvm/test/CodeGen/X86/AMX/amx-configO2toO0-lower.ll
+88-508 files not shown
+102-5714 files

LLVM/project 4511e30llvm/include/llvm/CodeGen Passes.h, llvm/lib/Target/X86 X86.h

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+8-0llvm/lib/Target/X86/X86.h
+0-8llvm/include/llvm/CodeGen/Passes.h
+8-82 files

LLVM/project f7585adllvm/lib/Target/AArch64 AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 arm64-zero-cycle-zeroing-gpr.ll arm64-copy-phys-zero-reg.mir

[AArch64] Widen GPR32 zero cycle zeroing (#164244)

Given a GPR32 zeroing instruction, if the target supports zero cycle
zeroing for GPR64 but not for GPR32, widen the instruction to 64 bit
`$xn = MOVZXi 0, 0` instead of writing to `$wn` to exploit zero cycle
zeroing.

It also aligns naming in the generic zeroing test.
DeltaFile
+11-8llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing-gpr.ll
+9-1llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+1-1llvm/test/CodeGen/AArch64/arm64-copy-phys-zero-reg.mir
+21-103 files

LLVM/project 44601d1clang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

Reapply "Reapply "[clang-format] Annotate ::operator and Foo::operator… (#165038)

This reverts commit bd27abcceedfc60f4598124aa022cd0b766da3d8.

See https://github.com/llvm/llvm-project/pull/164670#issuecomment-3445926724
DeltaFile
+3-7clang/lib/Format/TokenAnnotator.cpp
+5-0clang/unittests/Format/TokenAnnotatorTest.cpp
+8-72 files

LLVM/project 168db5ellvm/include/llvm/Support SpecialCaseList.h, llvm/lib/Support SpecialCaseList.cpp

[SpecialCaseList] Filtering Globs with matching prefix (#164531)

This commit optimizes `SpecialCaseList` by using a `RadixTree` to filter
glob patterns based on their prefixes. When matching a query, the
`RadixTree` quickly identifies all glob patterns whose prefixes match
the query's prefix. This significantly reduces the number of glob
patterns that need to be fully evaluated, leading to performance
improvements, especially when dealing with a large number of patterns.

According to SpecialCaseListBM:

Lookup benchmarks (significant improvements):
```
OVERALL_GEOMEAN                       -0.8177
```

Lookup like `prefix*` benchmarks (huge improvements):
```
OVERALL_GEOMEAN                       -0.9819

    [6 lines not shown]
DeltaFile
+21-3llvm/lib/Support/SpecialCaseList.cpp
+7-0llvm/include/llvm/Support/SpecialCaseList.h
+28-32 files

LLVM/project b337d45llvm/include/llvm/CodeGen Passes.h, llvm/lib/Target/X86 X86.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+0-8llvm/include/llvm/CodeGen/Passes.h
+8-0llvm/lib/Target/X86/X86.h
+8-82 files

LLVM/project ab9f6ballvm/lib/ExecutionEngine/Orc/TargetProcess LibraryScanner.cpp, llvm/unittests/ExecutionEngine/Orc LibraryResolverTest.cpp

comment

Created using spr 1.3.7
DeltaFile
+0-1,161llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+0-915llvm/unittests/ExecutionEngine/Orc/Inputs/C/C_macho.yaml
+0-896llvm/unittests/ExecutionEngine/Orc/LibraryResolverTest.cpp
+0-801llvm/unittests/ExecutionEngine/Orc/Inputs/D/D_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/A/A_macho.yaml
+0-723llvm/unittests/ExecutionEngine/Orc/Inputs/Z/Z_macho.yaml
+0-5,21968 files not shown
+105-9,89674 files

LLVM/project f1d60a0llvm/include/llvm/ADT RadixTree.h, llvm/include/llvm/Support SpecialCaseList.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+56-4llvm/lib/Support/SpecialCaseList.cpp
+12-0llvm/include/llvm/Support/SpecialCaseList.h
+1-0llvm/include/llvm/ADT/RadixTree.h
+69-43 files