diff --git a/llvm/include/llvm/Analysis/RegionInfoImpl.h b/llvm/include/llvm/Analysis/RegionInfoImpl.h index ec79b35ae324..c5e8821858fd 100644 --- a/llvm/include/llvm/Analysis/RegionInfoImpl.h +++ b/llvm/include/llvm/Analysis/RegionInfoImpl.h @@ -163,9 +163,7 @@ typename RegionBase::BlockT *RegionBase::getEnteringBlock() const { assert(!AllowRepeats && "Unexpected parameter value."); return DT->getNode(Pred) && !contains(Pred) ? Pred : nullptr; }; - BlockT *entry = getEntry(); - return find_singleton(make_range(InvBlockTraits::child_begin(entry), - InvBlockTraits::child_end(entry)), + return find_singleton(llvm::inverse_children(getEntry()), isEnteringBlock); } @@ -177,10 +175,7 @@ bool RegionBase::getExitingBlocks( if (!exit) return CoverAll; - for (PredIterTy PI = InvBlockTraits::child_begin(exit), - PE = InvBlockTraits::child_end(exit); - PI != PE; ++PI) { - BlockT *Pred = *PI; + for (BlockT *Pred : llvm::inverse_children(exit)) { if (contains(Pred)) { Exitings.push_back(Pred); continue; @@ -202,8 +197,7 @@ typename RegionBase::BlockT *RegionBase::getExitingBlock() const { assert(!AllowRepeats && "Unexpected parameter value."); return contains(Pred) ? Pred : nullptr; }; - return find_singleton(make_range(InvBlockTraits::child_begin(exit), - InvBlockTraits::child_end(exit)), + return find_singleton(llvm::inverse_children(exit), isContained); } @@ -244,16 +238,14 @@ void RegionBase::verifyBBInRegion(BlockT *BB) const { BlockT *entry = getEntry(), *exit = getExit(); - for (BlockT *Succ : - make_range(BlockTraits::child_begin(BB), BlockTraits::child_end(BB))) { + for (BlockT *Succ : llvm::children(BB)) { if (!contains(Succ) && exit != Succ) report_fatal_error("Broken region found: edges leaving the region must go " "to the exit node!"); } if (entry != BB) { - for (BlockT *Pred : make_range(InvBlockTraits::child_begin(BB), - InvBlockTraits::child_end(BB))) { + for (BlockT *Pred : llvm::inverse_children(BB)) { // Allow predecessors that are unreachable, as these are ignored during // region analysis. if (!contains(Pred) && DT->isReachableFromEntry(Pred)) @@ -271,8 +263,7 @@ void RegionBase::verifyWalk(BlockT *BB, std::set *visited) const { verifyBBInRegion(BB); - for (BlockT *Succ : - make_range(BlockTraits::child_begin(BB), BlockTraits::child_end(BB))) { + for (BlockT *Succ : llvm::children(BB)) { if (Succ != exit && visited->find(Succ) == visited->end()) verifyWalk(Succ, visited); } @@ -453,8 +444,7 @@ typename Tr::RegionT *RegionBase::getExpandedRegion() const { RegionT *R = RI->getRegionFor(exit); if (R->getEntry() != exit) { - for (BlockT *Pred : make_range(InvBlockTraits::child_begin(getExit()), - InvBlockTraits::child_end(getExit()))) + for (BlockT *Pred : llvm::inverse_children(getExit())) if (!contains(Pred)) return nullptr; if (Tr::getNumSuccessors(exit) == 1) @@ -465,8 +455,7 @@ typename Tr::RegionT *RegionBase::getExpandedRegion() const { while (R->getParent() && R->getParent()->getEntry() == exit) R = R->getParent(); - for (BlockT *Pred : make_range(InvBlockTraits::child_begin(getExit()), - InvBlockTraits::child_end(getExit()))) { + for (BlockT *Pred : llvm::inverse_children(getExit())) { if (!(contains(Pred) || R->contains(Pred))) return nullptr; } @@ -553,8 +542,7 @@ void RegionInfoBase::verifyBBMap(const RegionT *R) const { template bool RegionInfoBase::isCommonDomFrontier(BlockT *BB, BlockT *entry, BlockT *exit) const { - for (BlockT *P : make_range(InvBlockTraits::child_begin(BB), - InvBlockTraits::child_end(BB))) { + for (BlockT *P : llvm::inverse_children(BB)) { if (DT->dominates(entry, P) && !DT->dominates(exit, P)) return false; } @@ -837,8 +825,7 @@ RegionInfoBase::getMaxRegionExit(BlockT *BB) const { ExitR->getParent()->getEntry() == Exit) ExitR = ExitR->getParent(); - for (BlockT *Pred : make_range(InvBlockTraits::child_begin(Exit), - InvBlockTraits::child_end(Exit))) { + for (BlockT *Pred : llvm::inverse_children(Exit)) { if (!R->contains(Pred) && !ExitR->contains(Pred)) break; }