diff options
author | Devang Patel <dpatel@apple.com> | 2007-06-08 00:21:17 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-06-08 00:21:17 +0000 |
commit | 0ab301c5fa5656b812db8cc944ab41259c8990dc (patch) | |
tree | a007e38e14b24c35f3079d2e81c2357cd73a82b7 | |
parent | 53c279b1949f7fa626ccbc399ebbe2d7dc9599a4 (diff) |
Add new method - nearestCommonDominator().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37508 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/Dominators.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index d1fc5eb05a..6f2b2c03cf 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<BasicBlock>(); + } + /// dominates - Returns true iff this dominates N. Note that this is not a /// constant time operation! /// |