Remove unneeded iteration. Thanks to Dan for the feedback.
authorOwen Anderson <resistor@mac.com>
Tue, 5 Aug 2008 00:30:10 +0000 (00:30 +0000)
committerOwen Anderson <resistor@mac.com>
Tue, 5 Aug 2008 00:30:10 +0000 (00:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54337 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/UnreachableBlockElim.cpp

index 8286239096a072de4502752cb75451f5f125caf6..19341ee72159ae6b224b4209270d2cef2134c312 100644 (file)
@@ -85,7 +85,6 @@ namespace {
   class VISIBILITY_HIDDEN UnreachableMachineBlockElim : 
         public MachineFunctionPass {
     virtual bool runOnMachineFunction(MachineFunction &F);
-    bool iterateOnFunction(MachineFunction& F);
     
   public:
     static char ID; // Pass identification, replacement for typeid
@@ -101,21 +100,6 @@ Y("unreachable-mbb-elimination",
 const PassInfo *const llvm::UnreachableMachineBlockElimID = &Y;
 
 bool UnreachableMachineBlockElim::runOnMachineFunction(MachineFunction &F) {
-  bool changed = true;
-  bool result = false;
-  
-  while (changed) {
-    changed = iterateOnFunction(F);
-    result |= changed;
-  }
-  
-  if (result)
-    F.RenumberBlocks();
-  
-  return result;
-}
-
-bool UnreachableMachineBlockElim::iterateOnFunction(MachineFunction &F) {
   std::set<MachineBasicBlock*> Reachable;
 
   // Mark all reachable blocks.
@@ -160,6 +144,8 @@ bool UnreachableMachineBlockElim::iterateOnFunction(MachineFunction &F) {
   for (unsigned i = 0, e = DeadBlocks.size(); i != e; ++i)
     DeadBlocks[i]->eraseFromParent();
 
+  F.RenumberBlocks();
+
   return DeadBlocks.size();
 }