Fix bug: LICM/2003-02-27-PreheaderProblem.ll

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
This commit is contained in:
Chris Lattner 2003-02-27 21:51:38 +00:00
parent 69269ac203
commit 5a8a2912d5

View File

@ -200,6 +200,13 @@ BasicBlock *Loop::getLoopPreheader() const {
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.