diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopDeletion.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopDeletion.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopDeletion.cpp b/llvm/lib/Transforms/Scalar/LoopDeletion.cpp index f888ad9e4f9..2e07f343681 100644 --- a/llvm/lib/Transforms/Scalar/LoopDeletion.cpp +++ b/llvm/lib/Transforms/Scalar/LoopDeletion.cpp @@ -86,12 +86,10 @@ bool LoopDeletion::isLoopDead(Loop *L, ScalarEvolution &SE, // block. If there are different incoming values for different exiting // blocks, then it is impossible to statically determine which value should // be used. - for (unsigned i = 1, e = exitingBlocks.size(); i < e; ++i) { - if (incoming != P->getIncomingValueForBlock(exitingBlocks[i])) { - AllOutgoingValuesSame = false; - break; - } - } + AllOutgoingValuesSame = + all_of(makeArrayRef(exitingBlocks).slice(1), [&](BasicBlock *BB) { + return incoming == P->getIncomingValueForBlock(BB); + }); if (!AllOutgoingValuesSame) break; |

