mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-03 14:31:10 +00:00
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:
parent
69269ac203
commit
5a8a2912d5
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user