R600/SI: Implement VGPR register spilling for compute at -O0 v3
authorTom Stellard <thomas.stellard@amd.com>
Wed, 24 Sep 2014 01:33:17 +0000 (01:33 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 24 Sep 2014 01:33:17 +0000 (01:33 +0000)
commit860cabe1e6e63920e827f4d4b9bdf3f051e7a99c
treed8628a3ec35112c62aabe627c9b098d2f75b76b4
parent6717f9d90741b7ab4c14c9f27e80b03121309ab1
R600/SI: Implement VGPR register spilling for compute at -O0 v3

VGPRs are spilled to LDS.  This still needs more testing, but
we need to at least enable it at -O0, because the fast register
allocator spills all registers that are live at the end of blocks
and without this some future commits will break the
flat-address-space.ll test.

v2: Only calculate thread id once

v3: Move insertion of spill instructions to
    SIRegisterInfo::eliminateFrameIndex()

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