LLVM/project 2fe6e15clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

Use a simple partition for distributing edges into contributors
DeltaFile
+50-16clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+50-161 files

LLVM/project 8b10c26clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow PointerFlowAnalysis.cpp, clang/test/Analysis/Scalable/PointerFlow/Inputs wpa-result.json

Merge branch 'main' into users/shiltian/reserve-as-16
DeltaFile
+93-95flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+140-0clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
+131-0clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
+128-0clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
+115-0clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+110-0llvm/test/Transforms/LoopVectorize/VPlan/AArch64/call-decisions.ll
+717-9579 files not shown
+2,278-30385 files

LLVM/project 2af88e8clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel EntityPointerLevelFormat.h, clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.h

[NFC][SSAF][EntityPointerLevel] Move EntityID-to-EPL map serialization to the EPL module (#193092)

Factor out the serialization of `std::map<EntityId,
EntityPointerLevelSet>` to `EntityPointerLevelFormat.h`.

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
Co-authored-by: Jan Korous <jkorous at apple.com>
DeltaFile
+50-0clang/lib/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.cpp
+6-40clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+14-0clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.h
+4-1clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.h
+2-3clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+1-1clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
+77-451 files not shown
+78-457 files

LLVM/project c00f40elld/test/MachO arm64-thunks-multi-text-stubs.s

remove extra test
DeltaFile
+0-50lld/test/MachO/arm64-thunks-multi-text-stubs.s
+0-501 files

LLVM/project 20d1074lld/docs ReleaseNotes.rst, lld/test/MachO arm64-thunks-multi-text-stubs.s

add release notes
DeltaFile
+50-0lld/test/MachO/arm64-thunks-multi-text-stubs.s
+2-0lld/docs/ReleaseNotes.rst
+52-02 files

LLVM/project bc2253aclang/include/clang/Driver ToolChain.h, clang/lib/Driver Driver.cpp ToolChain.cpp

clang: Add BoundArch argument to ComputeEffectiveClangTriple (#195955)

This will eventually be used to adjust the amdgpu triple
to use subarches.
DeltaFile
+5-4clang/include/clang/Driver/ToolChain.h
+4-4clang/lib/Driver/ToolChains/MSVC.cpp
+4-3clang/lib/Driver/Driver.cpp
+3-1clang/lib/Driver/ToolChain.cpp
+2-1clang/lib/Driver/ToolChains/Darwin.cpp
+2-1clang/lib/Driver/ToolChains/Linux.cpp
+20-145 files not shown
+26-1611 files

LLVM/project ca56fd6clang/lib/CIR/CodeGen CIRGenModule.cpp

[CIR] Use SymbolUserMap in applyReplacements to fix quadratic behavior (#195883)

applyReplacements() previously called replaceAllSymbolUses() for each
replacement, which walks the entire module every time — O(R × M) for R
replacements and M operations. For C++ programs with heavy template
instantiation (e.g., Eigen), this quadratic behavior dominated compile
time.

Replace the per-replacement module walk with a single SymbolUserMap
built once (O(M)), then use replaceAllUsesWith() which scopes each
replacement to only the actual user operations. The debug-only
verifyPointerTypeArgs helper is also updated to reuse the map.

Measured on Eigen's basicstuff.cpp (356 lines, heavy template
instantiation): compile time dropped from 20m29s to 1m2s (20x speedup).
CIR-to-classic ratio improved from 117x to 7.2x.

Made with [Cursor](https://cursor.com)

Co-authored-by: Cursor <cursoragent at cursor.com>
DeltaFile
+21-18clang/lib/CIR/CodeGen/CIRGenModule.cpp
+21-181 files

LLVM/project 0fd6e65clang/lib/CIR/CodeGen CIRGenCall.cpp CIRGenBuiltin.cpp, clang/test/CIR/CodeGen pass-object-size.c

[CIR] Add pass_object_size hidden parameter support (#191482)

Emit the hidden `i64` parameter that
`__attribute__((pass_object_size(N)))` requires. At call sites the size
is constant-folded when possible (e.g. `&a` → 4) and falls back to
`cir.objsize` / `@llvm.objectsize` otherwise (e.g. VLAs).

On the callee side, `buildFunctionArgList` now creates an
`ImplicitParamDecl` for each annotated parameter so that
`emitBuiltinObjectSize` can load the passed size instead of re-computing
it.

This also fixes the `llvm_unreachable("NYI")` in
`RequiredArgs::getFromProtoWithExtraSlots` and the `errorNYI` in
`appendParameterTypes` / `arrangeFreeFunctionLikeCall` that fired
whenever `hasExtParameterInfos()` was true.

New test: `clang/test/CIR/CodeGen/pass-object-size.c` (CIR / LLVM /
OGCG).

    [5 lines not shown]
DeltaFile
+65-0clang/test/CIR/CodeGen/pass-object-size.c
+29-9clang/lib/CIR/CodeGen/CIRGenCall.cpp
+36-1clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+13-2clang/lib/CIR/CodeGen/CIRGenFunctionInfo.h
+8-2clang/lib/CIR/CodeGen/CIRGenFunction.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+156-141 files not shown
+156-157 files

LLVM/project aa29973llvm/test/CodeGen/X86 vector-reduce-smin.ll vector-reduce-smax.ll, llvm/test/tools/llvm-mca/AArch64/Cortex C1Premium-sve-instructions.s C1Premium-writeback.s

Merge branch 'users/ziqingluo/PR-174874942-2' into users/ziqingluo/PR-174874942-3
DeltaFile
+6,873-0llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve-instructions.s
+2,940-1,458llvm/test/CodeGen/X86/vector-reduce-smin.ll
+2,936-1,457llvm/test/CodeGen/X86/vector-reduce-smax.ll
+2,695-1,364llvm/test/CodeGen/X86/vector-reduce-umax.ll
+2,646-1,359llvm/test/CodeGen/X86/vector-reduce-umin.ll
+3,979-0llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-writeback.s
+22,069-5,6382,911 files not shown
+123,664-44,1432,917 files

LLVM/project ffe836bmlir/lib/Dialect/XeGPU/Transforms XeGPUArrayLengthOptimization.cpp, mlir/test/Dialect/XeGPU array-len-op-unit.mlir

[MLIR][XeGPU] Support pointer/dynamic-memref sources in array-length optimization (#195872)

Extend `OptimizeCreateNdDescOp` to handle the two remaining
`create_nd_tdesc` source forms — `i64` pointer and dynamic-shape memref
— by forwarding the existing shape/strides operands through the general
builder. The memory region is unchanged by the rewrite; only the
`tensor_desc` view is narrowed along the FCD and tagged with
`array_length`.

Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
DeltaFile
+50-0mlir/test/Dialect/XeGPU/array-len-op-unit.mlir
+14-11mlir/lib/Dialect/XeGPU/Transforms/XeGPUArrayLengthOptimization.cpp
+64-112 files

LLVM/project f54bfecllvm/test/CodeGen/X86 vector-reduce-smin.ll vector-reduce-smax.ll, llvm/test/tools/llvm-mca/AArch64/Cortex C1Premium-sve-instructions.s C1Premium-writeback.s

Merge remote-tracking branch 'origin' into users/ziqingluo/PR-174874942-2

 Conflicts:
        clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.h
        clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.h
        clang/lib/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.cpp
        clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
        clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
        clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowFormat.cpp
        clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
        clang/test/Analysis/Scalable/PointerFlow/tu-summary-serialization.test
DeltaFile
+6,873-0llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve-instructions.s
+2,940-1,458llvm/test/CodeGen/X86/vector-reduce-smin.ll
+2,936-1,457llvm/test/CodeGen/X86/vector-reduce-smax.ll
+2,695-1,364llvm/test/CodeGen/X86/vector-reduce-umax.ll
+2,646-1,359llvm/test/CodeGen/X86/vector-reduce-umin.ll
+3,979-0llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-writeback.s
+22,069-5,6382,911 files not shown
+123,664-44,1432,917 files

LLVM/project 8d9ee49clang/include/clang/Basic OffloadArch.h, clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp

clang: Avoid dummy LAST entry in OffloadArch (#195952)

Use this as an alias of the final entry, rather than its
own enum value. This will allow writing covered switches
that don't need to handle this case. This matches how
other places with an end enum entry handle this.
DeltaFile
+2-2clang/include/clang/Basic/OffloadArch.h
+0-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+2-42 files

LLVM/project 72fc0c3flang/test/Transforms/OpenACC acc-implicit-data.fir, mlir/include/mlir/Dialect/OpenACC OpenACCUtils.h

[mlir][acc] Improve implicit deviceptr detection for alias (#195934)

The ACCImplicitData automatically is able to use deviceptr clause when
variable is detected as being device data. However, it was missing check
for own `acc declare deviceptr` attribute.
DeltaFile
+47-0mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
+24-14mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
+31-0flang/test/Transforms/OpenACC/acc-implicit-data.fir
+28-0mlir/test/Dialect/OpenACC/acc-implicit-data.mlir
+15-8mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
+3-1mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
+148-236 files

LLVM/project 85cd500clang/include/clang/Driver ToolChain.h, clang/lib/Driver Driver.cpp ToolChain.cpp

clang: Add BoundArch argument to ComputeEffectiveClangTriple

This will eventually be used to adjust the amdgpu triple
to use subarches.
DeltaFile
+5-4clang/include/clang/Driver/ToolChain.h
+4-4clang/lib/Driver/ToolChains/MSVC.cpp
+4-3clang/lib/Driver/Driver.cpp
+3-1clang/lib/Driver/ToolChain.cpp
+2-1clang/lib/Driver/ToolChains/Darwin.cpp
+2-1clang/lib/Driver/ToolChains/Fuchsia.cpp
+20-145 files not shown
+26-1611 files

LLVM/project 8a86aablldb/include/lldb lldb-enumerations.h

[LLDB] Fix UBSan issue with ValueType enums. (#195540)

ValueTypeSyntheticMask, when bitwise OR'd with ValueType enums, produces
a value that is outside the official enum range for ValueTypes. This
causes UBSan errors, when UBSan is set to check enum values. E.g. If you
build LLDB with the Cmake flags

-DCMAKE_CXX_FLAGS="-fsanitize=enum -fsanitize-trap=enum"
-DCMAKE_C_FLAGS="-fsanitize=enum -fsanitize-trap=enum"

Then try to run the LLDB test TestScripedFrameProvider, it crashes with
a SIGILL from UBSan.

This change fixes that by pulling ValueTypeSyntheticMask into the
ValueType enums, expanding the valid enum range and making the bitwise
OR'd values valid.
DeltaFile
+1-1lldb/include/lldb/lldb-enumerations.h
+1-11 files

LLVM/project 843f8e2llvm/include/llvm/FileCheck FileCheck.h, llvm/unittests/FileCheck FileCheckTest.cpp

Drop FCDK_
DeltaFile
+25-23llvm/include/llvm/FileCheck/FileCheck.h
+4-4llvm/utils/FileCheck/FileCheck.cpp
+1-1llvm/unittests/FileCheck/FileCheckTest.cpp
+30-283 files

LLVM/project d4f4913mlir/lib/Dialect/SPIRV/IR SPIRVTypes.cpp

[mlir][spirv][nfc] Use function argument type in TypeCapabilityVisitor switch (#195918)

Addresses post commit review from #195796.
DeltaFile
+3-3mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
+3-31 files

LLVM/project eeaa29cllvm/lib/CodeGen MachineFunction.cpp, llvm/lib/MC MCDwarf.cpp

[AMDGPU][MC] Replace shifted registers in CFI instructions

Change-Id: I0d99e9fe43ec3b6fecac20531119956dca2e4e5c
DeltaFile
+67-67llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
+30-0llvm/lib/MC/MCDwarf.cpp
+15-15llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
+14-0llvm/lib/CodeGen/MachineFunction.cpp
+4-4llvm/test/CodeGen/AMDGPU/debug-frame.ll
+2-2llvm/test/CodeGen/AMDGPU/pei-vgpr-block-spill-csr.mir
+132-885 files not shown
+145-9011 files

LLVM/project cd98648llvm/utils/gn/build sync_source_dir.py, llvm/utils/gn/secondary/libcxx/include BUILD.gn

[gn] use action() instead of copy() for libcxx headers (#195948)

copy() doesn't handle file deletions. Use an action() that syncs the
output directory with the input list via a response file, removing files
that are no longer in the list.

This works because if files are added or removed, ninja's command line
tracking re-runs the script, and if contents of existing files change,
ninja's input mtime checking reruns it.

This also makes the remove_float_h workaround unnecessary.

Motivated by all the recent header removals in libc++.
DeltaFile
+59-0llvm/utils/gn/build/sync_source_dir.py
+20-16llvm/utils/gn/secondary/libcxx/include/BUILD.gn
+79-162 files

LLVM/project 006bb5bclang/include/clang/Basic OffloadArch.h, clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp

clang: Avoid dummy LAST entry in OffloadArch

Use this as an alias of the final entry, rather than its
own enum value. This will allow writing covered switches
that don't need to handle this case. This matches how
other places with an end enum entry handle this.
DeltaFile
+2-2clang/include/clang/Basic/OffloadArch.h
+0-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+2-42 files

LLVM/project bc5f2c9llvm/docs AMDGPUUsage.rst, llvm/include/llvm/Support AMDGPUAddrSpace.h

[NFC][AMDGPU] Reserve address space 16

This is used in downstream.
DeltaFile
+2-0llvm/include/llvm/Support/AMDGPUAddrSpace.h
+1-0llvm/docs/AMDGPUUsage.rst
+3-02 files

LLVM/project c979debllvm/docs AMDGPUUsage.rst, llvm/include/llvm/Support AMDGPUAddrSpace.h

[NFC][AMDGPU] Reserve address space 16

This is used in downstream.
DeltaFile
+2-16llvm/include/llvm/Support/AMDGPUAddrSpace.h
+2-0llvm/docs/AMDGPUUsage.rst
+4-162 files

LLVM/project 8578a0aclang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow PointerFlowAnalysis.cpp PointerFlowFormat.cpp, clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp

[SSAF][WPA] Add "no-op" PointerFlow and UnsafeBufferUsage analysis (#193089)

Added 'no-op' PointerFlow and UnsafeBufferUsage analyses to convert
summary data into AnalysisResult, which DerivedAnalysis can then consume.

Also, refactored the PointerFlow and UnsafeBufferUsage serialization
for code sharing.

rdar://174874942

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
Co-authored-by: Jan Korous <jkorous at apple.com>
DeltaFile
+140-0clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
+131-0clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
+128-0clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
+122-0clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+116-0clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowAnalysis.cpp
+58-38clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowFormat.cpp
+695-3827 files not shown
+1,229-6233 files

LLVM/project 1a8d5d4clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety Origins.cpp FactsGenerator.cpp

[LifetimeSafety] Track per-field origins for record types
DeltaFile
+237-4clang/test/Sema/warn-lifetime-safety.cpp
+82-8clang/lib/Analysis/LifetimeSafety/Origins.cpp
+59-24clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+39-10clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+21-12clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+4-6clang/test/Sema/warn-lifetime-safety-dangling-field.cpp
+442-642 files not shown
+447-648 files

LLVM/project 3cbd5fdclang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h Facts.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp Origins.cpp

[LifetimeSafety][NFC] Refactor OriginList to OriginNode tree
DeltaFile
+129-131clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+42-30clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+38-30clang/lib/Analysis/LifetimeSafety/Origins.cpp
+5-6clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
+5-5clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+3-3clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+222-2053 files not shown
+231-2149 files

LLVM/project b9fc55eclang-tools-extra/clang-tidy/readability ImplicitBoolConversionCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix `implicit-bool-conversion` C ternary condition false positive (#195913)

Fixes #195604
DeltaFile
+16-0clang-tools-extra/test/clang-tidy/checkers/readability/implicit-bool-conversion.c
+8-2clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
+3-0clang-tools-extra/docs/ReleaseNotes.rst
+3-0clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.rst
+30-24 files

LLVM/project 397d99dflang/lib/Optimizer/Transforms/CUDA CUFAddConstructor.cpp, flang/test/Fir/CUDA cuda-constructor-2.f90

[flang][cuda] Fix unregistered allocator (#195924)

#194290 changed how we register the constructor and made an early return
which then miss to add the constructor to `llvm.mlir.global_ctors` which
leads to runtime failure because the allocators for CUDA Fortran are not
registered.
DeltaFile
+93-95flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+3-1flang/test/Fir/CUDA/cuda-constructor-2.f90
+96-962 files

LLVM/project c96aedellvm/lib/Target/AMDGPU SIFrameLowering.cpp SIMachineFunctionInfo.h, llvm/test/CodeGen/AMDGPU amdgpu-spill-cfi-saved-regs.ll

[AMDGPU] Implement -amdgpu-spill-cfi-saved-regs

These spills need special CFI anyway, so implementing them directly
where CFI is emitted avoids the need to invent a mechanism to track them
from ISel.

Change-Id: If4f34abb3a8e0e46b859a7c74ade21eff58c4047
Co-authored-by: Scott Linder scott.linder at amd.com
Co-authored-by: Venkata Ramanaiah Nalamothu VenkataRamanaiah.Nalamothu at amd.com
DeltaFile
+2,998-0llvm/test/CodeGen/AMDGPU/amdgpu-spill-cfi-saved-regs.ll
+17-0llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+10-0llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
+9-0llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+2-0llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+3,036-05 files

LLVM/project 6393333llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.960bit.ll

[AMDGPU] Use register pair for PC spill

Change-Id: Ibedeef926f7ff235a06de65a83087c151f66a416
DeltaFile
+4,331-4,331llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,742-1,740llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+1,562-1,560llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+1,462-1,460llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+1,238-1,236llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+1,030-1,028llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+11,365-11,35589 files not shown
+18,153-18,04495 files

LLVM/project 928abbellvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll gfx-callable-argument-types.ll

[AMDGPU] Implement CFI for CSR spills

Introduce new SPILL pseudos to allow CFI to be generated for only CSR
spills, and to make ISA-instruction-level accurate information.

Other targets either generate slightly incorrect information or rely on
conventions for how spills are placed within the entry block. The
approach in this change produces larger unwind tables, with the
increased size being spent on additional DW_CFA_advance_location
instructions needed to describe the unwinding accurately.

Change-Id: I9b09646abd2ac4e56eddf5e9aeca1a5bebbd43dd
Co-authored-by: Scott Linder <scott.linder at amd.com>
Co-authored-by: Venkata Ramanaiah Nalamothu <VenkataRamanaiah.Nalamothu at amd.com>
DeltaFile
+3,568-2,598llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,912-1,913llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
+2,700-12llvm/test/CodeGen/AMDGPU/accvgpr-spill-scc-clobber.mir
+631-631llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+505-510llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+394-399llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+9,710-6,063108 files not shown
+14,825-9,527114 files