mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-19 19:31:50 +00:00
The scavenger should just use getAllocatableSet() rather than reinventing it
locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112845 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
86759acf01
commit
9204ddad5c
@ -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…
x
Reference in New Issue
Block a user