mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 07:53:33 +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;
|
||||
}
|
||||
|
||||
/// @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.
|
||||
///
|
||||
/// @see Region::clearNodeCache()
|
||||
|
@ -807,6 +807,19 @@ RegionInfo::getCommonRegion(SmallVectorImpl<BasicBlock*> &BBs) const {
|
||||
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;
|
||||
INITIALIZE_PASS_BEGIN(RegionInfo, "regions",
|
||||
"Detect single entry single exit regions", true, true)
|
||||
|
Loading…
Reference in New Issue
Block a user