llvm/lib/Target/PIC16
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 revert r79562 + r79563 2009-08-21 23:12:15 +00:00
MCSectionPIC16.h Further refactoring of PIC16 Obj file code. 2009-09-01 10:47:31 +00:00
PIC16.h eliminate a #include. 2009-08-24 04:07:51 +00:00
PIC16.td
PIC16DebugInfo.cpp Remove std::string uses from DebugInfo interface. 2009-09-29 18:40:58 +00:00
PIC16DebugInfo.h Reapply 79977. 2009-08-28 23:24:31 +00:00
PIC16InstrFormats.td
PIC16InstrInfo.cpp llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. 2009-07-14 16:55:14 +00:00
PIC16InstrInfo.h FrameIndex could be used as a value (addressof (arg)) or as an address. 2009-06-03 15:31:12 +00:00
PIC16InstrInfo.td revert r79562 + r79563 2009-08-21 23:12:15 +00:00
PIC16ISelDAGToDAG.cpp Implement changes from Chris's feedback. 2009-07-08 20:53:28 +00:00
PIC16ISelDAGToDAG.h don't copy TargetLowering. 2009-07-28 03:05:40 +00:00
PIC16ISelLowering.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
PIC16ISelLowering.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
PIC16MCAsmInfo.cpp Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
PIC16MCAsmInfo.h Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
PIC16MemSelOpt.cpp Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
PIC16RegisterInfo.cpp Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
PIC16RegisterInfo.h Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
PIC16RegisterInfo.td
PIC16Subtarget.cpp Normalize Subtarget constructors to take a target triple string instead of 2009-08-02 22:11:08 +00:00
PIC16Subtarget.h Normalize Subtarget constructors to take a target triple string instead of 2009-08-02 22:11:08 +00:00
PIC16TargetMachine.cpp Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
PIC16TargetMachine.h Reapply pieces of 78914 reverted in 78916, this has been fixed. 2009-08-13 17:08:54 +00:00
PIC16TargetObjectFile.cpp Further refactoring of PIC16 Obj file code. 2009-09-01 10:47:31 +00:00
PIC16TargetObjectFile.h Further refactoring of PIC16 Obj file code. 2009-09-01 10:47:31 +00:00