llvm-project/llvm
Austin Kerbow 256ad954a9 AMDGPU: Reuse carry out register during FI elimination
Summary:
Pre gfx9 we need to scavenge a 64-bit SGPR to use as the carry out for an Add.
If only one SGPR was available this crashed when trying to scavenge another
32bit SGPR to materialize the offset.

Instead, reuse a 32-bit SGPR from the carry out as the offset register.

Also prefer to use vcc for the unused carry out when it is available.

Reviewers: arsenm, rampitec

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70614
2019-11-28 10:13:48 -08:00
..
benchmarks
bindings [Test] Fix freeze ocaml test failure 2019-11-22 22:34:37 +09:00
cmake build: avoid hardcoding the libxml2 library name 2019-11-27 12:36:25 -08:00
docs [llvm-objcopy][MachO] Implement --dump-section 2019-11-25 12:30:37 +09:00
examples [ORC] Add a utility to support dumping JIT'd objects to disk for debugging. 2019-11-14 21:27:19 -08:00
include [AIX] Emit TOC entries for ASM printing 2019-11-27 17:20:55 -05:00
lib AMDGPU: Reuse carry out register during FI elimination 2019-11-28 10:13:48 -08:00
projects
resources
runtimes
test AMDGPU: Reuse carry out register during FI elimination 2019-11-28 10:13:48 -08:00
tools [llvm-readelf] - Make GNU style dumping of invalid SHT_GNU_verdef be consistent with LLVM style. 2019-11-28 12:41:29 +03:00
unittests [ADT] Fixed -Wdeprecated-copy warning. NFCI 2019-11-28 00:49:42 +01:00
utils Revert "Revert "gn build: (manually) try to merge 1689ad27af"" 2019-11-27 21:12:46 -05:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [cmake] Emit an error for -DBUILD_SHARED_LIBS=ON on Windows 2019-11-14 10:19:02 -08:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.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.