[llvm-commits] [llvm] r149188 - /llvm/trunk/lib/CodeGen/RegisterScavenging.cpp
Jakob Stoklund Olesen
stoklund at 2pi.dk
Sat Jan 28 17:29:25 PST 2012
Author: stoklund
Date: Sat Jan 28 19:29:25 2012
New Revision: 149188
URL: http://llvm.org/viewvc/llvm-project?rev=149188&view=rev
Log:
Avoid creating BitVector temporaries.
Modified:
llvm/trunk/lib/CodeGen/RegisterScavenging.cpp
Modified: llvm/trunk/lib/CodeGen/RegisterScavenging.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterScavenging.cpp?rev=149188&r1=149187&r2=149188&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/RegisterScavenging.cpp (original)
+++ llvm/trunk/lib/CodeGen/RegisterScavenging.cpp Sat Jan 28 19:29:25 2012
@@ -234,10 +234,10 @@
}
void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) {
- if (includeReserved)
- used = ~RegsAvailable;
- else
- used = ~RegsAvailable & ~ReservedRegs;
+ used = RegsAvailable;
+ if (!includeReserved)
+ used |= ReservedRegs;
+ used.flip();
}
unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RC) const {
@@ -352,9 +352,9 @@
// RegsAvailable, as RegsAvailable does not take aliases into account.
// That's what getRegsAvailable() is for.
BitVector Available = getRegsAvailable(RC);
-
- if ((Candidates & Available).any())
- Candidates &= Available;
+ Available &= Candidates;
+ if (Available.any())
+ Candidates = Available;
// Find the register whose use is furthest away.
MachineBasicBlock::iterator UseMI;
More information about the llvm-commits
mailing list