llvm-6502/lib/Target/R600
Tom Stellard 860cabe1e6 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
2014-09-24 01:33:17 +00:00
..
InstPrinter Use llvm_unreachable instead of assert(!) 2014-09-21 17:27:31 +00:00
MCTargetDesc R600/SI: Clean up checks for legality of immediate operands 2014-09-23 21:26:25 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
AMDGPU.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPU.td R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUAsmPrinter.cpp R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
AMDGPUAsmPrinter.h R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUCallingConv.td Remove the target machine from CCState. Previously it was only used 2014-08-06 18:45:26 +00:00
AMDGPUFrameLowering.cpp Fix typo 2014-06-14 04:26:07 +00:00
AMDGPUFrameLowering.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUInstrInfo.cpp R600: Increase nearby load scheduling threshold. 2014-08-06 00:29:49 +00:00
AMDGPUInstrInfo.h R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUInstrInfo.td R600/SI: Use mad for fsub + fmul 2014-08-29 16:01:14 +00:00
AMDGPUInstructions.td Revert "R600/SI: Add support for global atomic add" 2014-09-22 16:44:04 +00:00
AMDGPUIntrinsicInfo.cpp Move R600 subtarget dependent variables onto the subtarget. 2014-07-25 22:22:39 +00:00
AMDGPUIntrinsicInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUIntrinsics.td R600: Remove intrinsics that appear to be unused 2014-07-15 20:10:27 +00:00
AMDGPUISelDAGToDAG.cpp Revert "R600/SI: Add support for global atomic add" 2014-09-22 16:44:04 +00:00
AMDGPUISelLowering.cpp R600: Don't set BypassSlowDiv for 64-bit division 2014-09-22 15:35:32 +00:00
AMDGPUISelLowering.h R600: Custom lower frem 2014-09-10 21:44:27 +00:00
AMDGPUMachineFunction.cpp R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUMachineFunction.h R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUMCInstLower.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
AMDGPUMCInstLower.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUPromoteAlloca.cpp R600/SI: Fix promote alloca pass breaking addrspacecast 2014-09-15 15:41:44 +00:00
AMDGPURegisterInfo.cpp R600: Move AMDGPUInstrInfo from AMDGPUTargetMachine into AMDGPUSubtarget 2014-06-13 01:32:00 +00:00
AMDGPURegisterInfo.h Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
AMDGPURegisterInfo.td
AMDGPUSubtarget.cpp R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUSubtarget.h R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
AMDGPUTargetMachine.cpp Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
AMDGPUTargetMachine.h Reverting NFC changes from r218050. Instead, the warning was disabled for GCC in r218059, so these changes are no longer required. 2014-09-18 17:34:23 +00:00
AMDGPUTargetTransformInfo.cpp Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
AMDILCFGStructurizer.cpp Fix typos: 2014-08-11 18:04:46 +00:00
CaymanInstructions.td R600: Match rcp node on pre-SI 2014-07-24 06:59:24 +00:00
CMakeLists.txt Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +00:00
EvergreenInstructions.td R600: Add cmpxchg instruction for evergreen 2014-09-11 15:02:54 +00:00
LLVMBuild.txt Prune Redundant libdeps in CMake's target_link_libraries and LLVMBuild.txt. 2014-07-15 11:37:03 +00:00
Makefile
Processors.td R600/SI: Add processor type for Mullins. 2014-05-02 15:41:49 +00:00
R600ClauseMergePass.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600ControlFlowFinalizer.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600Defines.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600EmitClauseMarkers.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600ExpandSpecialInstrs.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600InstrFormats.td
R600InstrInfo.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600InstrInfo.h Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
R600Instructions.td R600: Fix FROUND 2014-09-05 14:26:54 +00:00
R600Intrinsics.td
R600ISelLowering.cpp R600: Add cmpxchg instruction for evergreen 2014-09-11 15:02:54 +00:00
R600ISelLowering.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600MachineFunctionInfo.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
R600MachineFunctionInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600MachineScheduler.cpp Fix float division-by-zero in R600 scheduler. 2014-09-17 17:47:21 +00:00
R600MachineScheduler.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600OptimizeVectorRegisters.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600Packetizer.cpp Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs. 2014-08-20 20:57:26 +00:00
R600RegisterInfo.cpp R600: Remove AMDIL instruction and register definitions 2014-06-13 16:38:59 +00:00
R600RegisterInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600RegisterInfo.td R600: Use LDS and vectors for private memory 2014-06-17 16:53:14 +00:00
R600Schedule.td
R600TextureIntrinsicsReplacer.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. R600 edition 2014-04-29 07:57:24 +00:00
R700Instructions.td R600: Reorganize tablegen instruction definitions 2014-03-24 16:07:25 +00:00
SIAnnotateControlFlow.cpp R600/SI: SI Control Flow Annotation bug fixed 2014-06-20 17:06:02 +00:00
SIDefines.h R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
SIFixSGPRCopies.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SIFixSGPRLiveRanges.cpp Remove 'virtual' keyword from methods markedwith 'override' keyword. 2014-08-30 16:48:34 +00:00
SIInsertWaits.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SIInstrFormats.td R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
SIInstrInfo.cpp R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIInstrInfo.h R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIInstrInfo.td R600/SI: Clean up checks for legality of immediate operands 2014-09-23 21:26:25 +00:00
SIInstructions.td R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIIntrinsics.td R600/SI: Use i32 vectors for resources and samplers 2014-07-11 17:11:52 +00:00
SIISelLowering.cpp R600/SI: Clean up checks for legality of immediate operands 2014-09-23 21:26:25 +00:00
SIISelLowering.h R600/SI: Remove promotion of instructions to e64 forms. 2014-09-17 15:35:43 +00:00
SILowerControlFlow.cpp R600/SI: Add preliminary support for flat address space 2014-09-15 15:41:53 +00:00
SILowerI1Copies.cpp R600/SI: Remove modifier operands from V_CNDMASK_B32_e64 2014-09-22 15:35:34 +00:00
SIMachineFunctionInfo.cpp R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIMachineFunctionInfo.h R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIRegisterInfo.cpp R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIRegisterInfo.h R600/SI: Implement VGPR register spilling for compute at -O0 v3 2014-09-24 01:33:17 +00:00
SIRegisterInfo.td R600/SI: Clean up checks for legality of immediate operands 2014-09-23 21:26:25 +00:00
SISchedule.td
SIShrinkInstructions.cpp Fix typo 2014-09-21 17:27:32 +00:00
SITypeRewriter.cpp Use cast<> instead of dyn_cast + assert 2014-07-05 21:16:43 +00:00