llvm/lib/Target/SystemZ
Jim Grosbach b58f498f75 Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. When scavenging to allocate
for those registers, PEI then tracks the last-used register and value, and
if it is still available and matches the value for the next index, reuses
the existing value rather and removes the re-materialization instructions.
Fancier tracking and adjustment of scavenger allocations to keep more
values live for longer is possible, but not yet implemented and would likely
be better done via a different, less special-purpose, approach to the
problem.

eliminateFrameIndex() is modified so the target implementations can return
the registers they wish to be tracked for reuse.

ARM Thumb1 implements and utilizes the new mechanism. All other targets are
simply modified to adjust for the changed eliminateFrameIndex() prototype.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07 17:12:56 +00:00
..
AsmPrinter Instead of printing unnecessary basic block labels as labels in 2009-10-06 17:38:38 +00:00
TargetInfo Factor commonality in triple match routines into helper template for registering 2009-07-26 05:03:33 +00:00
CMakeLists.txt Normalize makefile comments and sort cmake file lists. 2009-08-31 13:05:24 +00:00
Makefile Unbreak 2009-07-16 14:36:52 +00:00
SystemZ.h Add new helpers for registering targets. 2009-07-25 06:49:55 +00:00
SystemZ.td Add bunch of FP instructions 2009-07-16 14:20:24 +00:00
SystemZCallingConv.td Handle vector returns 2009-07-18 12:51:06 +00:00
SystemZInstrBuilder.h Improve MachineMemOperand handling. 2009-09-25 20:36:54 +00:00
SystemZInstrFormats.td Some dummy cost model for s390x: 2009-08-22 11:46:16 +00:00
SystemZInstrFP.td Add fcopysign instructions 2009-08-21 20:02:37 +00:00
SystemZInstrInfo.cpp Turn few asserts into errors / unreachable's 2009-07-18 13:33:17 +00:00
SystemZInstrInfo.h Handle long-disp stuff more consistently 2009-07-16 14:33:52 +00:00
SystemZInstrInfo.td Some dummy cost model for s390x: 2009-08-22 11:46:16 +00:00
SystemZISelDAGToDAG.cpp Rename getTargetNode to getMachineNode, for consistency with the 2009-09-25 18:54:59 +00:00
SystemZISelLowering.cpp Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. 2009-09-19 09:51:03 +00:00
SystemZISelLowering.h Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. 2009-09-18 21:02:19 +00:00
SystemZMachineFunctionInfo.h Emit callee-saved regs spills / restores 2009-07-16 13:51:12 +00:00
SystemZMCAsmInfo.cpp Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
SystemZMCAsmInfo.h Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
SystemZOperands.td Split EVT into MVT and EVT, the former representing _just_ a primitive type, while 2009-08-11 20:47:22 +00:00
SystemZRegisterInfo.cpp Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
SystemZRegisterInfo.h Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
SystemZRegisterInfo.td Out GR128 regclass is not a 'real' i128 one. 2009-07-16 14:27:53 +00:00
SystemZSubtarget.cpp Normalize Subtarget constructors to take a target triple string instead of 2009-08-02 22:11:08 +00:00
SystemZSubtarget.h Normalize Subtarget constructors to take a target triple string instead of 2009-08-02 22:11:08 +00:00
SystemZTargetMachine.cpp Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
SystemZTargetMachine.h Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple 2009-08-12 07:22:17 +00:00