llvm/lib/Target/R600
Matt Arsenault 34ef4cd65b R600/SI: Fix offset folding in some cases with shifted pointers.
Ordinarily (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
is only done if the add has one use. If the resulting constant
add can be folded into an addressing mode, force this to happen
for the pointer operand.

This ends up happening a lot because of how LDS objects are allocated.
Since the globals are allocated next to each other, acessing the first
element of the second object is directly indexed by a shifted pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215739 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-15 17:49:05 +00:00
..
InstPrinter Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MCTargetDesc Remove HasLEB128. 2014-08-15 14:01:07 +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: Specify wavefront size for SI and CI 2014-07-21 15:44:58 +00:00
AMDGPUAsmPrinter.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
AMDGPUAsmPrinter.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUInstrInfo.td R600/SI: Add intrinsic for ldexp 2014-08-15 17:30:25 +00:00
AMDGPUInstructions.td R600/SI: Fix build warning 2014-08-01 02:05:57 +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 R600/SI: Add a ComplexPattern for selecting MUBUF _OFFSET variant 2014-08-11 22:18:17 +00:00
AMDGPUISelLowering.cpp R600/SI: Add intrinsic for ldexp 2014-08-15 17:30:25 +00:00
AMDGPUISelLowering.h R600/SI: Add intrinsic for ldexp 2014-08-15 17:30:25 +00:00
AMDGPUMachineFunction.cpp R600: Make ShaderType private 2014-07-13 03:06:39 +00:00
AMDGPUMachineFunction.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +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: Don't crash on unhandled instruction in promote alloca 2014-06-27 16:52:49 +00:00
AMDGPURegisterInfo.cpp R600: Move AMDGPUInstrInfo from AMDGPUTargetMachine into AMDGPUSubtarget 2014-06-13 01:32:00 +00:00
AMDGPURegisterInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPURegisterInfo.td Make SubRegIndex size mandatory, following r183020. 2013-05-31 23:45:26 +00:00
AMDGPUSubtarget.cpp Correct comment 2014-08-06 00:44:25 +00:00
AMDGPUSubtarget.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUTargetMachine.cpp Move the R600 intrinsic support back to the target machine - there's 2014-08-04 17:37:43 +00:00
AMDGPUTargetMachine.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AMDGPUTargetTransformInfo.cpp Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +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 Temporarily Revert "Nuke the old JIT." as it's not quite ready to 2014-08-07 22:02:54 +00:00
EvergreenInstructions.td R600: Add FMA instructions for Evergreen 2014-07-24 17:41:01 +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 R600: Use SchedModel enum for is{Trans,Vector}Only functions 2013-09-04 19:53:30 +00:00
R600InstrInfo.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
R600InstrInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
R600Instructions.td R600: Add FMA instructions for Evergreen 2014-07-24 17:41:01 +00:00
R600Intrinsics.td R600: Reenable llvm.R600.load.input/interp.input for compatibility 2013-11-12 16:26:47 +00:00
R600ISelLowering.cpp R600: Correctly set the src value offset for scalarized kernel args 2014-08-13 18:14:11 +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 R600: Remove unused include 2014-08-04 16:55:33 +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 Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +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 R600: Add local memory support via LDS 2013-06-28 15:47:08 +00:00
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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +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 Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +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: Do abs/neg folding with ComplexPatterns 2014-08-01 00:32:39 +00:00
SIInstrInfo.cpp R600/SI: Fix offset folding in some cases with shifted pointers. 2014-08-15 17:49:05 +00:00
SIInstrInfo.h R600/SI: Fix offset folding in some cases with shifted pointers. 2014-08-15 17:49:05 +00:00
SIInstrInfo.td R600/SI: Add a ComplexPattern for selecting MUBUF _OFFSET variant 2014-08-11 22:18:17 +00:00
SIInstructions.td R600/SI: Add intrinsic for ldexp 2014-08-15 17:30:25 +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: Fix offset folding in some cases with shifted pointers. 2014-08-15 17:49:05 +00:00
SIISelLowering.h R600/SI: Fix offset folding in some cases with shifted pointers. 2014-08-15 17:49:05 +00:00
SILowerControlFlow.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SILowerI1Copies.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SIMachineFunctionInfo.cpp R600/SI: Use scratch memory for large private arrays 2014-07-21 15:45:01 +00:00
SIMachineFunctionInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
SIRegisterInfo.cpp R600: silence GCC warning 2014-07-21 17:52:00 +00:00
SIRegisterInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
SIRegisterInfo.td R600/SI: Use register class instead of list of registers 2014-08-05 17:52:40 +00:00
SISchedule.td
SIShrinkInstructions.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
SITypeRewriter.cpp Use cast<> instead of dyn_cast + assert 2014-07-05 21:16:43 +00:00