llvm-project/llvm
Brendon Cahoon d45a247998 [AMDGPU] Don't remove VGPR to AGPR dead spills from frame info
Removing dead frame indices for VGPR to AGPR spills is incorrect
when the frame index is shared by multiple objects, which may
occur due to stack slot coloring. The problem is that subsequent
code that processes the other object will assert because the stack
frame index is marked dead.

Removing dead frame indices is needed prior to stack slot
coloring, which is what happens with SGPR to VGPR spills. These
spills are lowered prior to stack slot coloring, but the VGPR
to AGPR spills are processed afterwards during the Prolog/Epilog
Inserter pass. This patch marks the VGPR to AGPR spill slot as
dead if the slot is not used by another object.

Differential Revision: https://reviews.llvm.org/D115996
2021-12-23 11:09:19 -06:00
..
benchmarks
bindings
cmake [NFC][mlgo]Make the test model generator inlining-specific 2021-12-22 13:38:45 -08:00
docs [VE] Add manuals to CompilerWriterInfo 2021-12-23 14:14:37 +01:00
examples [examples][BuildingAJIT] Fix use-after-move bug in Chapter 4. 2021-12-17 20:00:17 +11:00
include [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
lib [AMDGPU] Don't remove VGPR to AGPR dead spills from frame info 2021-12-23 11:09:19 -06:00
projects
resources
runtimes [runtimes] Remove LLVM_ENABLE_LLD 2021-12-17 15:03:57 -08:00
test [AMDGPU] Don't remove VGPR to AGPR dead spills from frame info 2021-12-23 11:09:19 -06:00
tools Reland - [CodeView] Emit S_OBJNAME record 2021-12-21 19:02:14 -05:00
unittests [GlobalISel] Rework more/fewer elements for vectors 2021-12-23 14:30:02 +01:00
utils [VE] Add VE support to update_llc_test_checks 2021-12-23 14:12:44 +01:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Re-apply "Only define LLVM_EXTERNAL_VISIBILITY when building libLLVM dylib" 2021-12-16 09:25:41 -08:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.