From: Devang Patel Date: Fri, 8 Jun 2007 00:21:17 +0000 (+0000) Subject: Add new method - nearestCommonDominator(). X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=0ab301c5fa5656b812db8cc944ab41259c8990dc;p=oota-llvm.git Add new method - nearestCommonDominator(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37508 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index d1fc5eb05a9..6f2b2c03cfb 100644 --- a/include/llvm/Analysis/Dominators.h +++ b/include/llvm/Analysis/Dominators.h @@ -185,6 +185,17 @@ protected: void updateDFSNumbers(); + /// Return the nearest common dominator of A and B. + BasicBlock *nearestCommonDominator(BasicBlock *A, BasicBlock *B) const { + ETNode *NodeA = getNode(A)->getETNode(); + ETNode *NodeB = getNode(B)->getETNode(); + + ETNode *Common = NodeA->NCA(NodeB); + if (!Common) + return NULL; + return Common->getData(); + } + /// dominates - Returns true iff this dominates N. Note that this is not a /// constant time operation! ///