summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMRegisterInfo.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-03-06 10:03:56 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-03-06 10:03:56 +0000
commit4783ae8ac1a7e2c004397d386cc214be91b73fbe (patch)
tree2f57b86003721ca99c1c3f9741202bb5c1d0fc90 /llvm/lib/Target/ARM/ARMRegisterInfo.h
parentc1b21857a4a493c5099afc1b01556b5df5051490 (diff)
downloadbcm5719-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.h10
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;
OpenPOWER on IntegriCloud