mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-16 23:19:37 +00:00
RegionInfo: Update RegionInfo after a BB was split.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116398 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c69bd733c0
commit
592316c419
@ -638,6 +638,12 @@ public:
|
|||||||
return TopLevelRegion;
|
return TopLevelRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @brief Update RegionInfo after a basic block was split.
|
||||||
|
///
|
||||||
|
/// @param NewBB The basic block that was created before OldBB.
|
||||||
|
/// @param OldBB The old basic block.
|
||||||
|
void splitBlock(BasicBlock* NewBB, BasicBlock *OldBB);
|
||||||
|
|
||||||
/// @brief Clear the Node Cache for all Regions.
|
/// @brief Clear the Node Cache for all Regions.
|
||||||
///
|
///
|
||||||
/// @see Region::clearNodeCache()
|
/// @see Region::clearNodeCache()
|
||||||
|
@ -807,6 +807,19 @@ RegionInfo::getCommonRegion(SmallVectorImpl<BasicBlock*> &BBs) const {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RegionInfo::splitBlock(BasicBlock* NewBB, BasicBlock *OldBB)
|
||||||
|
{
|
||||||
|
Region *R = getRegionFor(OldBB);
|
||||||
|
setRegionFor(NewBB, R);
|
||||||
|
|
||||||
|
while (R->getEntry() == OldBB && R->getParent()) {
|
||||||
|
R->replaceEntry(NewBB);
|
||||||
|
R = R->getParent();
|
||||||
|
}
|
||||||
|
|
||||||
|
setRegionFor(OldBB, R);
|
||||||
|
}
|
||||||
|
|
||||||
char RegionInfo::ID = 0;
|
char RegionInfo::ID = 0;
|
||||||
INITIALIZE_PASS_BEGIN(RegionInfo, "regions",
|
INITIALIZE_PASS_BEGIN(RegionInfo, "regions",
|
||||||
"Detect single entry single exit regions", true, true)
|
"Detect single entry single exit regions", true, true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user