Simplify the loop a bit
authorChris Lattner <sabre@nondot.org>
Sun, 5 Oct 2003 03:45:44 +0000 (03:45 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 5 Oct 2003 03:45:44 +0000 (03:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8862 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/PromoteMemoryToRegister.cpp

index 4bfc4e041a0651d1150028d996fdc2447f14dc10..abfa28b75287fbb144444282673e0fb6457b9b0a 100644 (file)
@@ -193,6 +193,7 @@ bool PromoteMem2Reg::QueuePhiNode(BasicBlock *BB, unsigned AllocaNo) {
 
 void PromoteMem2Reg::RenamePass(BasicBlock *BB, BasicBlock *Pred,
                                 std::vector<Value*> &IncomingVals) {
+
   // If this BB needs a PHI node, update the PHI node for each variable we need
   // PHI nodes for.
   std::map<BasicBlock*, std::vector<PHINode *> >::iterator
@@ -220,8 +221,7 @@ void PromoteMem2Reg::RenamePass(BasicBlock *BB, BasicBlock *Pred,
   // mark as visited
   Visited.insert(BB);
 
-  BasicBlock::iterator II = BB->begin();
-  while (1) {
+  for (BasicBlock::iterator II = BB->begin(); !isa<TerminatorInst>(II); ) {
     Instruction *I = II++; // get the instruction, increment iterator
 
     if (LoadInst *LI = dyn_cast<LoadInst>(I)) {
@@ -246,16 +246,15 @@ void PromoteMem2Reg::RenamePass(BasicBlock *BB, BasicBlock *Pred,
           BB->getInstList().erase(SI);
         }
       }
-      
-    } else if (TerminatorInst *TI = dyn_cast<TerminatorInst>(I)) {
-      // Recurse across our successors
-      for (unsigned i = 0; i != TI->getNumSuccessors(); i++) {
-        std::vector<Value*> OutgoingVals(IncomingVals);
-        RenamePass(TI->getSuccessor(i), BB, OutgoingVals);
-      }
-      break;
     }
   }
+
+  // Recurse to our successors
+  TerminatorInst *TI = BB->getTerminator();
+  for (unsigned i = 0; i != TI->getNumSuccessors(); i++) {
+    std::vector<Value*> OutgoingVals(IncomingVals);
+    RenamePass(TI->getSuccessor(i), BB, OutgoingVals);
+  }
 }
 
 /// PromoteMemToReg - Promote the specified list of alloca instructions into