Simplify r132022 based on Cameron's feedback.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 25 May 2011 18:17:13 +0000 (18:17 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 25 May 2011 18:17:13 +0000 (18:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132071 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopUnswitch.cpp

index a33e7956433c5c161336361b05cf32af80848d2e..01a99af1439c2e87996e648ffff38bbba54d98c2 100644 (file)
@@ -919,18 +919,11 @@ void LoopUnswitch::RewriteLoopBodyWithConditionConstant(Loop *L, Value *LIC,
     BasicBlock *Switch = SI->getParent();
     BasicBlock *SISucc = SI->getSuccessor(DeadCase);
     BasicBlock *Latch = L->getLoopLatch();
-    // If the DeadCase successor dominates all of the predecessors of the
-    // loop latch, then the transformation isn't safe since it will delete
-    // the predecessor edges to the latch.
-    if (Latch) {
-      bool DominateAll = true;
-      for (pred_iterator PI = pred_begin(Latch), PE = pred_end(Latch);
-           DominateAll && PI != PE; ++PI)
-        if (!DT->dominates(SISucc, *PI))
-          DominateAll = false;
-      if (DominateAll)
-        continue;
-    }
+    // If the DeadCase successor dominates the loop latch, then the
+    // transformation isn't safe since it will delete the sole predecessor edge
+    // to the latch.
+    if (Latch && DT->dominates(SISucc, Latch))
+      continue;
 
     // FIXME: This is a hack.  We need to keep the successor around
     // and hooked up so as to preserve the loop structure, because