1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/lib/Target/R600
Vincent Lejeune 0db35fba3a R600: initial scheduler code
This is a skeleton for a pre-RA MachineInstr scheduler strategy. Currently
it only tries to expose more parallelism for ALU instructions (this also
makes the distribution of GPR channels more uniform and increases the
chances of ALU instructions to be packed together in a single VLIW group).
Also it tries to reduce clause switching by grouping instruction of the
same kind (ALU/FETCH/CF) together.

Vincent Lejeune:
 - Support for VLIW4 Slot assignement
 - Recomputation of ScheduleDAG to get more parallelism opportunities

Tom Stellard:
 - Fix assertion failure when trying to determine an instruction's slot
   based on its destination register's class
 - Fix some compiler warnings

Vincent Lejeune: [v2]
 - Remove recomputation of ScheduleDAG (will be provided in a later patch)
 - Improve estimation of an ALU clause size so that heuristic does not emit cf
 instructions at the wrong position.
 - Make schedule heuristic smarter using SUnit Depth
 - Take constant read limitations into account

Vincent Lejeune: [v3]
 - Fix some uninitialized values in ConstPair
 - Add asserts to ensure an ALU slot is always populated

llvm-svn: 176498
2013-03-05 18:41:32 +00:00
..
InstPrinter R600/SI: add all the other missing asm operands v2 2013-02-21 15:17:22 +00:00
MCTargetDesc R600/SI: remove GPR*AlignEncode 2013-03-01 09:46:17 +00:00
TargetInfo
AMDGPU.h R600: Remove LowerConstCopyPass and lower CONST_COPY right after ISel. 2013-03-05 15:04:55 +00:00
AMDGPU.td
AMDGPUAsmPrinter.cpp R600/SI: cleanup literal handling v3 2013-02-16 11:28:22 +00:00
AMDGPUAsmPrinter.h
AMDGPUConvertToISA.cpp
AMDGPUFrameLowering.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUFrameLowering.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUIndirectAddressing.cpp R600: Fix tracking of implicit defs in the IndirectAddressing pass 2013-02-19 15:22:42 +00:00
AMDGPUInstrInfo.cpp R600/SI: add VOP mapping functions 2013-02-26 17:52:42 +00:00
AMDGPUInstrInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUInstrInfo.td R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUInstructions.td R600/SI: simplify VOPC_* pattern v2 2013-02-21 15:17:04 +00:00
AMDGPUIntrinsics.td
AMDGPUISelLowering.cpp R600/SI: Use MULADD_IEEE/V_MAD_F32 instruction for mad pattern 2013-02-18 14:11:28 +00:00
AMDGPUISelLowering.h R600/SI: add folding helper 2013-02-26 17:52:16 +00:00
AMDGPUMCInstLower.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
AMDGPUMCInstLower.h R600: BB operand support for SI 2012-12-17 15:14:54 +00:00
AMDGPURegisterInfo.cpp R600: Consolidate sub register indices. 2013-02-07 14:02:37 +00:00
AMDGPURegisterInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPURegisterInfo.td R600: Consolidate sub register indices. 2013-02-07 14:02:37 +00:00
AMDGPUStructurizeCFG.cpp R600/SI: fix warning about overloaded virtual 2013-03-01 09:46:11 +00:00
AMDGPUSubtarget.cpp
AMDGPUSubtarget.h Remove redundant 'llvm::' qualifications 2013-01-13 16:01:15 +00:00
AMDGPUTargetMachine.cpp R600: initial scheduler code 2013-03-05 18:41:32 +00:00
AMDGPUTargetMachine.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDIL7XXDevice.cpp
AMDIL7XXDevice.h
AMDIL.h R600: rework handling of the constants 2013-01-23 02:09:06 +00:00
AMDILBase.td
AMDILCFGStructurizer.cpp Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
AMDILDevice.cpp R600: Clean up datalayout strings so they better match hardware capabilities 2013-03-04 17:40:28 +00:00
AMDILDevice.h Remove redundant 'llvm::' qualifications 2013-01-13 16:01:15 +00:00
AMDILDeviceInfo.cpp
AMDILDeviceInfo.h
AMDILDevices.h
AMDILEvergreenDevice.cpp
AMDILEvergreenDevice.h Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
AMDILInstrInfo.td R600/SI: Use MULADD_IEEE/V_MAD_F32 instruction for mad pattern 2013-02-18 14:11:28 +00:00
AMDILIntrinsicInfo.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
AMDILIntrinsicInfo.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
AMDILIntrinsics.td R600/SI: Use MULADD_IEEE/V_MAD_F32 instruction for mad pattern 2013-02-18 14:11:28 +00:00
AMDILISelDAGToDAG.cpp R600: Turn BUILD_VECTOR into Reg_Sequence 2013-03-05 15:04:49 +00:00
AMDILISelLowering.cpp R600: Update for name changes from r175667. 2013-02-20 21:31:28 +00:00
AMDILNIDevice.cpp Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
AMDILNIDevice.h Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
AMDILPeepholeOptimizer.cpp R600/AMDILPeepholeOptimizer.cpp: Tweak std::make_pair to satisfy C++11. 2013-01-29 16:31:56 +00:00
AMDILRegisterInfo.td
AMDILSIDevice.cpp R600: Clean up datalayout strings so they better match hardware capabilities 2013-03-04 17:40:28 +00:00
AMDILSIDevice.h
CMakeLists.txt R600: Turn BUILD_VECTOR into Reg_Sequence 2013-03-05 15:04:49 +00:00
LLVMBuild.txt
Makefile
Processors.td R600: Add an explicit default processor 2013-02-07 19:39:34 +00:00
R600Defines.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600ExpandSpecialInstrs.cpp R600: improve inputs/interpolation handling 2013-02-05 17:09:14 +00:00
R600InstrInfo.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600InstrInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600Instructions.td R600: Remove LowerConstCopyPass and lower CONST_COPY right after ISel. 2013-03-05 15:04:55 +00:00
R600Intrinsics.td R600: Support for TBO 2013-02-18 14:11:19 +00:00
R600ISelLowering.cpp R600: Remove LowerConstCopyPass and lower CONST_COPY right after ISel. 2013-03-05 15:04:55 +00:00
R600ISelLowering.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600MachineFunctionInfo.cpp R600: improve inputs/interpolation handling 2013-02-05 17:09:14 +00:00
R600MachineFunctionInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600MachineScheduler.cpp R600: initial scheduler code 2013-03-05 18:41:32 +00:00
R600MachineScheduler.h R600: initial scheduler code 2013-03-05 18:41:32 +00:00
R600RegisterInfo.cpp R600: Mark all members of the TRegMem register class as reserved 2013-02-19 15:22:45 +00:00
R600RegisterInfo.h Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
R600RegisterInfo.td R600: Add AR_X to the R600_TReg_X register class. 2013-02-19 15:22:47 +00:00
R600Schedule.td
SIAnnotateControlFlow.cpp R600/SI: Check for empty stack in SIAnnotateControlFlow::isTopOfStack 2013-02-14 08:00:33 +00:00
SIAssignInterpRegs.cpp
SIInsertWaits.cpp R600/SI: fix inserting waits for unordered defines 2013-03-01 09:46:04 +00:00
SIInstrFormats.td R600/SI: remove GPR*AlignEncode 2013-03-01 09:46:17 +00:00
SIInstrInfo.cpp R600/SI: handle all registers in copyPhysReg v2 2013-03-01 09:46:27 +00:00
SIInstrInfo.h R600/SI: add VOP mapping functions 2013-02-26 17:52:42 +00:00
SIInstrInfo.td R600/SI: remove GPR*AlignEncode 2013-03-01 09:46:17 +00:00
SIInstructions.td R600/SI: remove S_MOV immediate patterns 2013-03-01 09:46:22 +00:00
SIIntrinsics.td R600/SI: Make sample intrinsic address parameter type overloaded. 2013-02-07 17:02:13 +00:00
SIISelLowering.cpp R600/SI: Add promotion of e32 to e64 in operand folding 2013-02-26 17:52:47 +00:00
SIISelLowering.h R600/SI: add post ISel folding for SI v2 2013-02-26 17:52:23 +00:00
SILowerControlFlow.cpp R600/SI: cleanup literal handling v3 2013-02-16 11:28:22 +00:00
SIMachineFunctionInfo.cpp
SIMachineFunctionInfo.h
SIRegisterInfo.cpp
SIRegisterInfo.h
SIRegisterInfo.td R600/SI: fix and cleanup SI register definition v2 2013-02-26 17:52:03 +00:00
SISchedule.td