diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-03-06 10:03:56 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-03-06 10:03:56 +0000 |
| commit | 4783ae8ac1a7e2c004397d386cc214be91b73fbe (patch) | |
| tree | 2f57b86003721ca99c1c3f9741202bb5c1d0fc90 /llvm/lib/Target/ARM/ARMRegisterInfo.h | |
| parent | c1b21857a4a493c5099afc1b01556b5df5051490 (diff) | |
| download | bcm5719-llvm-4783ae8ac1a7e2c004397d386cc214be91b73fbe.tar.gz bcm5719-llvm-4783ae8ac1a7e2c004397d386cc214be91b73fbe.zip | |
Scavenge a register using the register scavenger when needed.
llvm-svn: 34966
Diffstat (limited to 'llvm/lib/Target/ARM/ARMRegisterInfo.h')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMRegisterInfo.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Target/ARM/ARMRegisterInfo.h b/llvm/lib/Target/ARM/ARMRegisterInfo.h index 0193093025f..3187db8c361 100644 --- a/llvm/lib/Target/ARM/ARMRegisterInfo.h +++ b/llvm/lib/Target/ARM/ARMRegisterInfo.h @@ -27,17 +27,12 @@ struct ARMRegisterInfo : public ARMGenRegisterInfo { const TargetInstrInfo &TII; const ARMSubtarget &STI; private: - /// RS - An instance of the register scavenger. - RegScavenger *RS; - /// FramePtr - ARM physical register used as frame ptr. unsigned FramePtr; public: ARMRegisterInfo(const TargetInstrInfo &tii, const ARMSubtarget &STI); - ~ARMRegisterInfo(); - /// getRegisterNumbering - Given the enum value for some register, e.g. /// ARM::LR, return the number that it corresponds to (e.g. 14). static unsigned getRegisterNumbering(unsigned RegEnum); @@ -74,6 +69,8 @@ public: BitVector getReservedRegs(const MachineFunction &MF) const; + bool isReservedReg(const MachineFunction &MF, unsigned Reg) const; + bool requiresRegisterScavenging(const MachineFunction &MF) const; bool hasFP(const MachineFunction &MF) const; @@ -85,7 +82,8 @@ public: void eliminateFrameIndex(MachineBasicBlock::iterator II, RegScavenger *RS = NULL) const; - void processFunctionBeforeCalleeSavedScan(MachineFunction &MF) const; + void processFunctionBeforeCalleeSavedScan(MachineFunction &MF, + RegScavenger *RS = NULL) const; void emitPrologue(MachineFunction &MF) const; void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const; |

