mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-11 21:56:15 +00:00
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72965 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
578efa920a
commit
da634298fc
@ -2425,24 +2425,14 @@ void LoopStrengthReduce::OptimizeLoopCountIV(Loop *L) {
|
||||
|
||||
// Get the terminating condition for the loop if possible (this isn't
|
||||
// necessarily in the latch, or a block that's a predecessor of the header).
|
||||
SmallVector<BasicBlock*, 8> ExitBlocks;
|
||||
L->getExitBlocks(ExitBlocks);
|
||||
if (ExitBlocks.size() != 1) return;
|
||||
if (!L->getExitBlock())
|
||||
return; // More than one loop exit blocks.
|
||||
|
||||
// Okay, there is one exit block. Try to find the condition that causes the
|
||||
// loop to be exited.
|
||||
BasicBlock *ExitBlock = ExitBlocks[0];
|
||||
|
||||
BasicBlock *ExitingBlock = 0;
|
||||
for (pred_iterator PI = pred_begin(ExitBlock), E = pred_end(ExitBlock);
|
||||
PI != E; ++PI)
|
||||
if (L->contains(*PI)) {
|
||||
if (ExitingBlock == 0)
|
||||
ExitingBlock = *PI;
|
||||
else
|
||||
return; // More than one block exiting!
|
||||
}
|
||||
assert(ExitingBlock && "No exits from loop, something is broken!");
|
||||
BasicBlock *ExitingBlock = L->getExitingBlock();
|
||||
if (!ExitingBlock)
|
||||
return; // More than one block exiting!
|
||||
|
||||
// Okay, we've computed the exiting block. See what condition causes us to
|
||||
// exit.
|
||||
|
Loading…
Reference in New Issue
Block a user