Interface clean up.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 1 Mar 2007 02:19:39 +0000 (02:19 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 1 Mar 2007 02:19:39 +0000 (02:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34770 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterScavenging.cpp

index c921e201b90f947d8e1b3d0ac8599f20428a965b..8f5f4408ac702d45060bf519546883687a1336ac 100644 (file)
@@ -25,7 +25,7 @@
 #include "llvm/ADT/STLExtras.h"
 using namespace llvm;
 
-void RegScavenger::init(MachineBasicBlock *mbb) {
+void RegScavenger::enterBasicBlock(MachineBasicBlock *mbb) {
   const MachineFunction &MF = *mbb->getParent();
   const TargetMachine &TM = MF.getTarget();
   const MRegisterInfo *RegInfo = TM.getRegisterInfo();
@@ -35,9 +35,11 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
 
   if (!MBB) {
     NumPhysRegs = RegInfo->getNumRegs();
-    ReservedRegs = RegInfo->getReservedRegs(MF);
     RegStates.resize(NumPhysRegs);
 
+    // Create reserved registers bitvector.
+    ReservedRegs = RegInfo->getReservedRegs(MF);
+
     // Create callee-saved registers bitvector.
     CalleeSavedRegs.resize(NumPhysRegs);
     const unsigned *CSRegs = RegInfo->getCalleeSavedRegs();
@@ -51,7 +53,7 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
   // All registers started out unused.
   RegStates.set();
 
-  // Create reserved registers bitvector.
+  // Reserved registers are always used.
   RegStates ^= ReservedRegs;
 
   // Live-in registers are in use.
@@ -59,6 +61,8 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
     for (MachineBasicBlock::const_livein_iterator I = MBB->livein_begin(),
            E = MBB->livein_end(); I != E; ++I)
       setUsed(*I);
+
+  Tracking = false;
 }
 
 void RegScavenger::forward() {
@@ -168,13 +172,3 @@ unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RegClass,
   int Reg = RegStatesCopy.find_first();
   return (Reg == -1) ? 0 : Reg;
 }
-
-void RegScavenger::clear() {
-  if (MBB) {
-    MBBI = MBB->end();
-    MBB = NULL;
-  }
-
-  Tracking = false;
-  RegStates.clear();
-}