llvm-6502/lib/Target/R600
Tom Stellard c0b0c677a1 R600: Support for indirect addressing v4
Only implemented for R600 so far.  SI is missing implementations of a
few callbacks used by the Indirect Addressing pass and needs code to
handle frame indices.

At the moment R600 only supports array sizes of 16 dwords or less.
Register packing of vector types is currently disabled, which means that a
vec4 is stored in T0_X, T1_X, T2_X, T3_X, rather than T0_XYZW. In order
to correctly pack registers in all cases, we will need to implement an
analysis pass for R600 that determines the correct vector width for each
array.

v2:
  - Add support for i8 zext load from stack.
  - Coding style fixes

v3:
  - Don't reserve registers for indirect addressing when it isn't
    being used.
  - Fix bug caused by LLVM limiting the number of SubRegIndex
    declarations.

v4:
  - Fix 64-bit defines

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174525 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-06 17:32:29 +00:00
..
InstPrinter R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
MCTargetDesc R600: rework handling of the constants 2013-01-23 02:09:06 +00:00
TargetInfo
AMDGPU.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPU.td
AMDGPUAsmPrinter.cpp R600: Emit function name in the AsmPrinter 2013-02-05 17:09:11 +00:00
AMDGPUAsmPrinter.h
AMDGPUCodeEmitter.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: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUInstrInfo.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +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: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUIntrinsics.td
AMDGPUISelLowering.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUISelLowering.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +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: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPURegisterInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPURegisterInfo.td R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDGPUStructurizeCFG.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
AMDGPUSubtarget.cpp
AMDGPUSubtarget.h Remove redundant 'llvm::' qualifications 2013-01-13 16:01:15 +00:00
AMDGPUTargetMachine.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +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
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: New control flow for SI v2 2012-12-19 22:10:31 +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
AMDILISelDAGToDAG.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
AMDILISelLowering.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +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 Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
AMDILSIDevice.h
CMakeLists.txt R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
LLVMBuild.txt
Makefile
Processors.td
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: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600Intrinsics.td R600: improve inputs/interpolation handling 2013-02-05 17:09:14 +00:00
R600ISelLowering.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600ISelLowering.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600LowerConstCopy.cpp R600: Fold remaining CONST_COPY after expand pseudo inst 2013-02-05 17:09:16 +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
R600RegisterInfo.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +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: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
R600Schedule.td
SIAnnotateControlFlow.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SIAssignInterpRegs.cpp
SIInsertWaits.cpp R600: Proper insert S_WAITCNT instructions 2013-01-18 21:15:53 +00:00
SIInstrFormats.td
SIInstrInfo.cpp R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
SIInstrInfo.h R600: Support for indirect addressing v4 2013-02-06 17:32:29 +00:00
SIInstrInfo.td R600: Proper insert S_WAITCNT instructions 2013-01-18 21:15:53 +00:00
SIInstructions.td R600/SI: Add patterns for fcos and fsin. 2013-02-05 17:09:10 +00:00
SIIntrinsics.td R600/SI: Take target parameter for sample intrinsics. 2013-01-21 15:40:47 +00:00
SIISelLowering.cpp R600: Proper insert S_WAITCNT instructions 2013-01-18 21:15:53 +00:00
SIISelLowering.h R600: Proper insert S_WAITCNT instructions 2013-01-18 21:15:53 +00:00
SILowerControlFlow.cpp R600/SILowerControlFlow.cpp: Fix a warning. [-Wunused-variable] 2013-01-21 14:06:48 +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 R600: Remove unecessary VREG alignment. 2012-12-19 22:10:34 +00:00
SISchedule.td