[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges.

Summary: This patch introduces two new iterator ranges and updates existing code to use it.  No functional change intended.

Test Plan: All tests (make check-all) still pass.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D4481

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213474 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manuel Jacob
2014-07-20 09:10:11 +00:00
parent 83a385a57b
commit a4697dad19
41 changed files with 166 additions and 226 deletions

View File

@ -4512,13 +4512,12 @@ ScalarEvolution::ComputeExitLimit(const Loop *L, BasicBlock *ExitingBlock) {
// lead to the loop header.
bool MustExecuteLoopHeader = true;
BasicBlock *Exit = nullptr;
for (succ_iterator SI = succ_begin(ExitingBlock), SE = succ_end(ExitingBlock);
SI != SE; ++SI)
if (!L->contains(*SI)) {
for (BasicBlock *Succ : successors(ExitingBlock))
if (!L->contains(Succ)) {
if (Exit) // Multiple exit successors.
return getCouldNotCompute();
Exit = *SI;
} else if (*SI != L->getHeader()) {
Exit = Succ;
} else if (Succ != L->getHeader()) {
MustExecuteLoopHeader = false;
}