use getFirstNonPHIOrDbg to simplify this code.
authorChris Lattner <sabre@nondot.org>
Mon, 13 Dec 2010 01:28:06 +0000 (01:28 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 13 Dec 2010 01:28:06 +0000 (01:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121664 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/SimplifyCFG.cpp

index 8e3ca419af8b3707d03a8c12d853fc8f9b948c54..0e6ab1354e3ca5051f0175462fc8ca7d2d679a6e 100644 (file)
@@ -1940,15 +1940,11 @@ bool SimplifyCFGOpt::run(BasicBlock *BB) {
     }
   } else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
     if (BI->isUnconditional()) {
-      BasicBlock::iterator BBI = BB->getFirstNonPHI();
-
-      // Ignore dbg intrinsics.
-      while (isa<DbgInfoIntrinsic>(BBI))
-        ++BBI;
-      if (BBI->isTerminator()) // Terminator is the only non-phi instruction!
-        if (BB != &Fn->getEntryBlock())
-          if (TryToSimplifyUncondBranchFromEmptyBlock(BB))
-            return true;
+      // If the Terminator is the only non-phi instruction, simplify the block.
+      Instruction *I = BB->getFirstNonPHIOrDbg();
+      if (I->isTerminator() && BB != &Fn->getEntryBlock() &&
+          TryToSimplifyUncondBranchFromEmptyBlock(BB))
+        return true;
       
     } else {  // Conditional branch
       if (isValueEqualityComparison(BI)) {