aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-06-08 00:21:17 +0000
committerDevang Patel <dpatel@apple.com>2007-06-08 00:21:17 +0000
commit0ab301c5fa5656b812db8cc944ab41259c8990dc (patch)
treea007e38e14b24c35f3079d2e81c2357cd73a82b7
parent53c279b1949f7fa626ccbc399ebbe2d7dc9599a4 (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.h11
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!
///