OSDN Git Service

R600/SI: Use eliminateFrameIndex() to expand SGPR spill pseudos
authorTom Stellard <thomas.stellard@amd.com>
Thu, 21 Aug 2014 20:40:54 +0000 (20:40 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 21 Aug 2014 20:40:54 +0000 (20:40 +0000)
commit9b60cb102aae382a270690d64de72f3dfc41b5d6
treee2544c943aa1fae2cebbd866ae7c777876fdf9e8
parenta07c0778caff02a1048d9a8aeee685b6aa31f36f
R600/SI: Use eliminateFrameIndex() to expand SGPR spill pseudos

This will simplify the SGPR spilling and also allow us to use
MachineFrameInfo for calculating offsets, which should be more
reliable than our custom code.

This fixes a crash in some cases where a register would be spilled
in a branch such that the VGPR defined for spilling did not dominate
all the uses when restoring.

This fixes a crash in an ocl conformance test.  The test requries
register spilling and is too big to include.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216217 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/R600/SIInstrInfo.cpp
lib/Target/R600/SIInstructions.td
lib/Target/R600/SIMachineFunctionInfo.cpp
lib/Target/R600/SIMachineFunctionInfo.h
lib/Target/R600/SIRegisterInfo.cpp