// API to update (Post)DominatorTree information based on modifications to
// the CFG...
- /// createNewNode - Add a new node to the dominator tree information. This
- /// creates a new node as a child of IDomNode, linking it into the children
- /// list of the immediate dominator.
- ///
- DomTreeNode *createNewNode(BasicBlock *BB, DomTreeNode *IDomNode) {
+ /// addNewBlock - Add a new node to the dominator tree information. This
+ /// creates a new node as a child of DomBB dominator node,linking it into
+ /// the children list of the immediate dominator.
+ DomTreeNode *addNewBlock(BasicBlock *BB, DomTreeNode *IDomNode) {
assert(getNode(BB) == 0 && "Block already in dominator tree!");
assert(IDomNode && "Not immediate dominator specified for block!");
return DomTreeNodes[BB] = IDomNode->addChild(new DomTreeNode(BB, IDomNode));
}
- void createNewNode(BasicBlock *BB, BasicBlock *DomBB) {
- createNewNode(BB, getNode(DomBB));
+ DomTreeNode *addNewBlock(BasicBlock *BB, BasicBlock *DomBB) {
+ return addNewBlock(BB, getNode(DomBB));
}
/// changeImmediateDominator - This method is used to update the dominator
// TINode is the immediate dominator for the new node.
//
if (TINode) { // Don't break unreachable code!
- DomTreeNode *NewBBNode = DT->createNewNode(NewBB, TINode);
+ DomTreeNode *NewBBNode = DT->addNewBlock(NewBB, TIBB);
DomTreeNode *DestBBNode = 0;
// If NewBBDominatesDestBB hasn't been computed yet, do so with DT.
// blocks that dominate TIBB plus the new block itself.
if (EF) {
BasicBlock* idom = EF->getIDom(OldPred);
- DT->createNewNode(NewBB, idom);
+ DT->addNewBlock(NewBB, idom);
EF->addNewBlock(NewBB, idom);
// Additionally, NewBB replaces OldPred as the immediate dominator of blocks
}
assert(NewBBIDom && "No immediate dominator found??");
}
- DomTreeNode *NewBBIDomNode = DT->getNode(NewBBIDom);
// Create the new dominator tree node... and set the idom of NewBB.
- DomTreeNode *NewBBNode = DT->createNewNode(NewBB, NewBBIDomNode);
+ DomTreeNode *NewBBNode = DT->addNewBlock(NewBB, NewBBIDom);
// If NewBB strictly dominates other blocks, then it is now the immediate
// dominator of NewBBSucc. Update the dominator tree as appropriate.