There may be a single outside predecessor and
still need a new loop-preheader if the predecessor has multiple
successors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5656
91177308-0d34-0410-b5e6-
96231b3b80d8
return 0; // Multiple predecessors outside the loop
Out = *PI;
}
+
+ // Make sure there is only one exit out of the preheader...
+ succ_iterator SI = succ_begin(Out);
+ ++SI;
+ if (SI != succ_end(Out))
+ return 0; // Multiple exits from the block, must not be a preheader.
+
// If there is exactly one preheader, return it. If there was zero, then Out
// is still null.