forked from OSchip/llvm-project
Clean up the public interface of RegScavenger.
Remove unused methods and make others private. llvm-svn: 79194
This commit is contained in:
parent
7f91fee62b
commit
ac09a9a1f5
|
@ -95,31 +95,9 @@ public:
|
|||
///
|
||||
void skipTo(MachineBasicBlock::iterator I) { MBBI = I; }
|
||||
|
||||
/// isReserved - Returns true if a register is reserved. It is never "unused".
|
||||
bool isReserved(unsigned Reg) const { return ReservedRegs[Reg]; }
|
||||
|
||||
/// isUsed / isUsed - Test if a register is currently being used.
|
||||
///
|
||||
bool isUsed(unsigned Reg) const { return !RegsAvailable[Reg]; }
|
||||
bool isUnused(unsigned Reg) const { return RegsAvailable[Reg]; }
|
||||
|
||||
/// isAliasUsed - Is Reg or an alias currently in use?
|
||||
bool isAliasUsed(unsigned Reg) const;
|
||||
|
||||
/// getRegsUsed - return all registers currently in use in used.
|
||||
void getRegsUsed(BitVector &used, bool includeReserved);
|
||||
|
||||
/// setUsed / setUnused - Mark the state of one or a number of registers.
|
||||
///
|
||||
void setUsed(unsigned Reg);
|
||||
void setUsed(BitVector &Regs) {
|
||||
RegsAvailable &= ~Regs;
|
||||
}
|
||||
void setUnused(unsigned Reg, const MachineInstr *MI);
|
||||
void setUnused(BitVector &Regs) {
|
||||
RegsAvailable |= Regs;
|
||||
}
|
||||
|
||||
/// FindUnusedReg - Find a unused register of the specified register class
|
||||
/// from the specified set of registers. It return 0 is none is found.
|
||||
unsigned FindUnusedReg(const TargetRegisterClass *RegClass,
|
||||
|
@ -146,9 +124,26 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
/// restoreScavengedReg - Restore scavenged by loading it back from the
|
||||
/// emergency spill slot. Mark it used.
|
||||
void restoreScavengedReg();
|
||||
/// isReserved - Returns true if a register is reserved. It is never "unused".
|
||||
bool isReserved(unsigned Reg) const { return ReservedRegs.test(Reg); }
|
||||
|
||||
/// isUsed / isUsed - Test if a register is currently being used.
|
||||
///
|
||||
bool isUsed(unsigned Reg) const { return !RegsAvailable.test(Reg); }
|
||||
bool isUnused(unsigned Reg) const { return RegsAvailable.test(Reg); }
|
||||
|
||||
/// isAliasUsed - Is Reg or an alias currently in use?
|
||||
bool isAliasUsed(unsigned Reg) const;
|
||||
|
||||
/// setUsed / setUnused - Mark the state of one or a number of registers.
|
||||
///
|
||||
void setUsed(unsigned Reg);
|
||||
void setUsed(BitVector &Regs) {
|
||||
RegsAvailable &= ~Regs;
|
||||
}
|
||||
void setUnused(BitVector &Regs) {
|
||||
RegsAvailable |= Regs;
|
||||
}
|
||||
|
||||
/// Add Reg and all its sub-registers to BV.
|
||||
void addRegWithSubRegs(BitVector &BV, unsigned Reg);
|
||||
|
|
|
@ -40,15 +40,6 @@ void RegScavenger::setUsed(unsigned Reg) {
|
|||
RegsAvailable.reset(SubReg);
|
||||
}
|
||||
|
||||
/// setUnused - Set the register and its sub-registers as being unused.
|
||||
void RegScavenger::setUnused(unsigned Reg, const MachineInstr *MI) {
|
||||
RegsAvailable.set(Reg);
|
||||
|
||||
for (const unsigned *SubRegs = TRI->getSubRegisters(Reg);
|
||||
unsigned SubReg = *SubRegs; ++SubRegs)
|
||||
RegsAvailable.set(SubReg);
|
||||
}
|
||||
|
||||
bool RegScavenger::isAliasUsed(unsigned Reg) const {
|
||||
if (isUsed(Reg))
|
||||
return true;
|
||||
|
@ -118,16 +109,6 @@ void RegScavenger::enterBasicBlock(MachineBasicBlock *mbb) {
|
|||
Tracking = false;
|
||||
}
|
||||
|
||||
void RegScavenger::restoreScavengedReg() {
|
||||
TII->loadRegFromStackSlot(*MBB, MBBI, ScavengedReg,
|
||||
ScavengingFrameIndex, ScavengedRC);
|
||||
MachineBasicBlock::iterator II = prior(MBBI);
|
||||
TRI->eliminateFrameIndex(II, 0, this);
|
||||
setUsed(ScavengedReg);
|
||||
ScavengedReg = 0;
|
||||
ScavengedRC = NULL;
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
/// isLiveInButUnusedBefore - Return true if register is livein the MBB not
|
||||
/// not used before it reaches the MI that defines register.
|
||||
|
|
Loading…
Reference in New Issue