mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Avoid creating BitVector temporaries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149188 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
19de016955
commit
685c23e758
@ -234,10 +234,10 @@ void RegScavenger::forward() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) {
|
void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) {
|
||||||
if (includeReserved)
|
used = RegsAvailable;
|
||||||
used = ~RegsAvailable;
|
if (!includeReserved)
|
||||||
else
|
used |= ReservedRegs;
|
||||||
used = ~RegsAvailable & ~ReservedRegs;
|
used.flip();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RC) const {
|
unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RC) const {
|
||||||
@ -352,9 +352,9 @@ unsigned RegScavenger::scavengeRegister(const TargetRegisterClass *RC,
|
|||||||
// RegsAvailable, as RegsAvailable does not take aliases into account.
|
// RegsAvailable, as RegsAvailable does not take aliases into account.
|
||||||
// That's what getRegsAvailable() is for.
|
// That's what getRegsAvailable() is for.
|
||||||
BitVector Available = getRegsAvailable(RC);
|
BitVector Available = getRegsAvailable(RC);
|
||||||
|
Available &= Candidates;
|
||||||
if ((Candidates & Available).any())
|
if (Available.any())
|
||||||
Candidates &= Available;
|
Candidates = Available;
|
||||||
|
|
||||||
// Find the register whose use is furthest away.
|
// Find the register whose use is furthest away.
|
||||||
MachineBasicBlock::iterator UseMI;
|
MachineBasicBlock::iterator UseMI;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user