X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FPowerPC%2FPPCRegisterInfo.h;h=0caf1065d03c660f4d0be9cdea0d42439a62031d;hb=b5cdaa257e167a08a8a54ea9249d847ccc415ce0;hp=eedb62770e88e331959c2eadeac849d029974d25;hpb=62819f31440fe1b1415473a89b8683b5b690d5fa;p=oota-llvm.git diff --git a/lib/Target/PowerPC/PPCRegisterInfo.h b/lib/Target/PowerPC/PPCRegisterInfo.h index eedb62770e8..0caf1065d03 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.h +++ b/lib/Target/PowerPC/PPCRegisterInfo.h @@ -49,6 +49,9 @@ public: unsigned DestReg, unsigned SrcReg, const TargetRegisterClass *RC) const; + void reMaterialize(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, + unsigned DestReg, const MachineInstr *Orig) const; + /// foldMemoryOperand - PowerPC (like most RISC's) can only fold spills into /// copy instructions, turning them into load/store instructions. virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, unsigned OpNum, @@ -76,12 +79,15 @@ public: bool usesLR(MachineFunction &MF) const; void lowerDynamicAlloc(MachineBasicBlock::iterator II) const; - void eliminateFrameIndex(MachineBasicBlock::iterator II) const; + void eliminateFrameIndex(MachineBasicBlock::iterator II, + int SPAdj, RegScavenger *RS = NULL) const; /// determineFrameLayout - Determine the size of the frame and maximum call /// frame size. void determineFrameLayout(MachineFunction &MF) const; + void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, + RegScavenger *RS = NULL) const; void emitPrologue(MachineFunction &MF) const; void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;