llvm-6502/lib/Target/R600
Tom Stellard 6b7d99d473 R600: New control flow for SI v2
This patch replaces the control flow handling with a new
pass which structurize the graph before transforming it to
machine instruction. This has a couple of different advantages
and currently fixes 20 piglit tests without a single regression.

It is now a general purpose transformation that could be not
only be used for SI/R6xx, but also for other hardware
implementations that use a form of structurized control flow.

v2: further cleanup, fixes and documentation

Patch by: Christian König

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Tested-by: Michel Dänzer <michel.daenzer@amd.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170591 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-19 22:10:31 +00:00
..
InstPrinter
MCTargetDesc R600: BB operand support for SI 2012-12-17 15:14:54 +00:00
TargetInfo
AMDGPU.h R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
AMDGPU.td
AMDGPUAsmPrinter.cpp
AMDGPUAsmPrinter.h
AMDGPUCodeEmitter.h
AMDGPUConvertToISA.cpp
AMDGPUInstrInfo.cpp
AMDGPUInstrInfo.h
AMDGPUInstrInfo.td
AMDGPUInstructions.td
AMDGPUIntrinsics.td
AMDGPUISelLowering.cpp
AMDGPUISelLowering.h
AMDGPUMCInstLower.cpp R600: BB operand support for SI 2012-12-17 15:14:54 +00:00
AMDGPUMCInstLower.h R600: BB operand support for SI 2012-12-17 15:14:54 +00:00
AMDGPURegisterInfo.cpp
AMDGPURegisterInfo.h
AMDGPURegisterInfo.td
AMDGPUStructurizeCFG.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
AMDGPUSubtarget.cpp
AMDGPUSubtarget.h
AMDGPUTargetMachine.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
AMDGPUTargetMachine.h
AMDIL7XXDevice.cpp
AMDIL7XXDevice.h
AMDIL.h
AMDILBase.td
AMDILCFGStructurizer.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
AMDILDevice.cpp
AMDILDevice.h
AMDILDeviceInfo.cpp
AMDILDeviceInfo.h
AMDILDevices.h
AMDILEvergreenDevice.cpp
AMDILEvergreenDevice.h
AMDILFrameLowering.cpp
AMDILFrameLowering.h
AMDILInstrInfo.td R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
AMDILIntrinsicInfo.cpp Fix warnings with -DNDEBUG 2012-12-13 19:38:52 +00:00
AMDILIntrinsicInfo.h
AMDILIntrinsics.td
AMDILISelDAGToDAG.cpp
AMDILISelLowering.cpp R600: remove nonsense setPrefLoopAlignment 2012-12-17 15:14:53 +00:00
AMDILNIDevice.cpp
AMDILNIDevice.h
AMDILPeepholeOptimizer.cpp
AMDILRegisterInfo.td
AMDILSIDevice.cpp
AMDILSIDevice.h
CMakeLists.txt R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
LLVMBuild.txt
Makefile
Processors.td
R600Defines.h
R600ExpandSpecialInstrs.cpp Avoid setIsInsideBundle in Target/R600. 2012-12-13 00:59:38 +00:00
R600InstrInfo.cpp Fix warnings with -DNDEBUG 2012-12-13 19:38:52 +00:00
R600InstrInfo.h
R600Instructions.td R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
R600Intrinsics.td
R600ISelLowering.cpp Fix warnings with -DNDEBUG 2012-12-13 19:38:52 +00:00
R600ISelLowering.h
R600MachineFunctionInfo.cpp
R600MachineFunctionInfo.h
R600RegisterInfo.cpp
R600RegisterInfo.h
R600RegisterInfo.td
R600Schedule.td
SIAnnotateControlFlow.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SIAssignInterpRegs.cpp
SIInstrFormats.td
SIInstrInfo.cpp
SIInstrInfo.h
SIInstrInfo.td
SIInstructions.td R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SIIntrinsics.td R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SIISelLowering.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SIISelLowering.h R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SILowerControlFlow.cpp R600: New control flow for SI v2 2012-12-19 22:10:31 +00:00
SILowerLiteralConstants.cpp Avoid setIsInsideBundle in Target/R600. 2012-12-13 00:59:38 +00:00
SIMachineFunctionInfo.cpp
SIMachineFunctionInfo.h
SIRegisterInfo.cpp
SIRegisterInfo.h
SIRegisterInfo.td
SISchedule.td