Add basic block level interface to change immediate dominator

and create new node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37414 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2007-06-04 16:22:33 +00:00
parent 3983358555
commit 26a6908768
2 changed files with 14 additions and 5 deletions

View File

@@ -143,14 +143,14 @@ void CodeExtractor::severSplitPHINodes(BasicBlock *&Header) {
// blocks that dominate TIBB plus the new block itself.
if (EF) {
BasicBlock* idom = EF->getIDom(OldPred);
DT->createNewNode(NewBB, DT->getNode(idom));
DT->createNewNode(NewBB, idom);
EF->addNewBlock(NewBB, idom);
// Additionally, NewBB replaces OldPred as the immediate dominator of blocks
Function *F = Header->getParent();
for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I)
if (EF->getIDom(I) == OldPred) {
DT->changeImmediateDominator(DT->getNode(I), DT->getNode(NewBB));
DT->changeImmediateDominator(I, NewBB);
EF->setImmediateDominator(I, NewBB);
}
}