[llvm-commits] CVS: llvm/lib/CodeGen/RegisterScavenging.cpp

Dale Johannesen dalej at apple.com
Mon Mar 26 15:24:13 PDT 2007



Changes in directory llvm/lib/CodeGen:

RegisterScavenging.cpp updated: 1.13 -> 1.14
---
Log message:

Fix reversed logic in getRegsUsed.  Rename RegStates to RegsAvailable to
hopefully forestall similar errors.


---
Diffs of the changes:  (+15 -15)

 RegisterScavenging.cpp |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)


Index: llvm/lib/CodeGen/RegisterScavenging.cpp
diff -u llvm/lib/CodeGen/RegisterScavenging.cpp:1.13 llvm/lib/CodeGen/RegisterScavenging.cpp:1.14
--- llvm/lib/CodeGen/RegisterScavenging.cpp:1.13	Tue Mar 20 16:35:06 2007
+++ llvm/lib/CodeGen/RegisterScavenging.cpp	Mon Mar 26 17:23:54 2007
@@ -36,7 +36,7 @@
 
   if (!MBB) {
     NumPhysRegs = RegInfo->getNumRegs();
-    RegStates.resize(NumPhysRegs);
+    RegsAvailable.resize(NumPhysRegs);
 
     // Create reserved registers bitvector.
     ReservedRegs = RegInfo->getReservedRegs(MF);
@@ -54,10 +54,10 @@
   ScavengedRC = NULL;
 
   // All registers started out unused.
-  RegStates.set();
+  RegsAvailable.set();
 
   // Reserved registers are always used.
-  RegStates ^= ReservedRegs;
+  RegsAvailable ^= ReservedRegs;
 
   // Live-in registers are in use.
   if (!MBB->livein_empty())
@@ -182,9 +182,9 @@
 
 void RegScavenger::getRegsUsed(BitVector &used, bool includeReserved) {
   if (includeReserved)
-    used = RegStates;
+    used = ~RegsAvailable;
   else
-    used = RegStates & ~ReservedRegs;
+    used = ~RegsAvailable & ~ReservedRegs;
 }
 
 /// CreateRegClassMask - Set the bits that represent the registers in the
@@ -198,32 +198,32 @@
 unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RegClass,
                                      const BitVector &Candidates) const {
   // Mask off the registers which are not in the TargetRegisterClass.
-  BitVector RegStatesCopy(NumPhysRegs, false);
-  CreateRegClassMask(RegClass, RegStatesCopy);
-  RegStatesCopy &= RegStates;
+  BitVector RegsAvailableCopy(NumPhysRegs, false);
+  CreateRegClassMask(RegClass, RegsAvailableCopy);
+  RegsAvailableCopy &= RegsAvailable;
 
   // Restrict the search to candidates.
-  RegStatesCopy &= Candidates;
+  RegsAvailableCopy &= Candidates;
 
   // Returns the first unused (bit is set) register, or 0 is none is found.
-  int Reg = RegStatesCopy.find_first();
+  int Reg = RegsAvailableCopy.find_first();
   return (Reg == -1) ? 0 : Reg;
 }
 
 unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RegClass,
                                      bool ExCalleeSaved) const {
   // Mask off the registers which are not in the TargetRegisterClass.
-  BitVector RegStatesCopy(NumPhysRegs, false);
-  CreateRegClassMask(RegClass, RegStatesCopy);
-  RegStatesCopy &= RegStates;
+  BitVector RegsAvailableCopy(NumPhysRegs, false);
+  CreateRegClassMask(RegClass, RegsAvailableCopy);
+  RegsAvailableCopy &= RegsAvailable;
 
   // If looking for a non-callee-saved register, mask off all the callee-saved
   // registers.
   if (ExCalleeSaved)
-    RegStatesCopy &= ~CalleeSavedRegs;
+    RegsAvailableCopy &= ~CalleeSavedRegs;
 
   // Returns the first unused (bit is set) register, or 0 is none is found.
-  int Reg = RegStatesCopy.find_first();
+  int Reg = RegsAvailableCopy.find_first();
   return (Reg == -1) ? 0 : Reg;
 }
 






More information about the llvm-commits mailing list