mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 21:00:29 +00:00
The scavenger should just use getAllocatableSet() rather than reinventing it
locally. llvm-svn: 112845
This commit is contained in:
parent
7abb8df743
commit
b35c81846b
@ -228,14 +228,6 @@ void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) {
|
||||
used = ~RegsAvailable & ~ReservedRegs;
|
||||
}
|
||||
|
||||
/// CreateRegClassMask - Set the bits that represent the registers in the
|
||||
/// TargetRegisterClass.
|
||||
static void CreateRegClassMask(const TargetRegisterClass *RC, BitVector &Mask) {
|
||||
for (TargetRegisterClass::iterator I = RC->begin(), E = RC->end(); I != E;
|
||||
++I)
|
||||
Mask.set(*I);
|
||||
}
|
||||
|
||||
unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RC) const {
|
||||
for (TargetRegisterClass::iterator I = RC->begin(), E = RC->end();
|
||||
I != E; ++I)
|
||||
@ -330,11 +322,9 @@ unsigned RegScavenger::findSurvivorReg(MachineBasicBlock::iterator StartMI,
|
||||
unsigned RegScavenger::scavengeRegister(const TargetRegisterClass *RC,
|
||||
MachineBasicBlock::iterator I,
|
||||
int SPAdj) {
|
||||
// Mask off the registers which are not in the TargetRegisterClass.
|
||||
BitVector Candidates(NumPhysRegs, false);
|
||||
CreateRegClassMask(RC, Candidates);
|
||||
// Do not include reserved registers.
|
||||
Candidates ^= ReservedRegs & Candidates;
|
||||
// Consider all allocatable registers in the register class initially
|
||||
BitVector Candidates =
|
||||
TRI->getAllocatableSet(*I->getParent()->getParent(), RC);
|
||||
|
||||
// Exclude all the registers being used by the instruction.
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
|
||||
|
Loading…
Reference in New Issue
Block a user