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;
}