diff options
Diffstat (limited to 'lib/Analysis/RegionInfo.cpp')
-rw-r--r-- | lib/Analysis/RegionInfo.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Analysis/RegionInfo.cpp b/lib/Analysis/RegionInfo.cpp index 9d84f55eeb..d26135c609 100644 --- a/lib/Analysis/RegionInfo.cpp +++ b/lib/Analysis/RegionInfo.cpp @@ -140,8 +140,7 @@ bool Region::isSimple() const { BasicBlock *entry = getEntry(), *exit = getExit(); - // TopLevelRegion - if (!exit) + if (isTopLevelRegion()) return false; for (pred_iterator PI = pred_begin(entry), PE = pred_end(entry); PI != PE; @@ -810,9 +809,10 @@ RegionInfo::getCommonRegion(SmallVectorImpl<BasicBlock*> &BBs) const { void RegionInfo::splitBlock(BasicBlock* NewBB, BasicBlock *OldBB) { Region *R = getRegionFor(OldBB); + setRegionFor(NewBB, R); - while (R->getEntry() == OldBB && R->getParent()) { + while (R->getEntry() == OldBB && !R->isTopLevelRegion()) { R->replaceEntry(NewBB); R = R->getParent(); } |