summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-08-01 22:24:47 +0000
committerChris Lattner <sabre@nondot.org>2006-08-01 22:24:47 +0000
commit38e1a09d4da4c14c103f63b55e33184dec1e53ca (patch)
treea41d2be8bdedc26f2f024b87ef4e08620fdbf4d0 /llvm/lib
parent17c67efe8a7ec0ef2019f06e2f8f9f7cf53d8b6e (diff)
downloadbcm5719-llvm-38e1a09d4da4c14c103f63b55e33184dec1e53ca.tar.gz
bcm5719-llvm-38e1a09d4da4c14c103f63b55e33184dec1e53ca.zip
Add dominates/properlyDominates queries to IDom.
llvm-svn: 29456
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/VMCore/Dominators.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/VMCore/Dominators.cpp b/llvm/lib/VMCore/Dominators.cpp
index 35c847f7d6d..f079acfdb44 100644
--- a/llvm/lib/VMCore/Dominators.cpp
+++ b/llvm/lib/VMCore/Dominators.cpp
@@ -211,6 +211,17 @@ bool ImmediateDominators::runOnFunction(Function &F) {
return false;
}
+/// dominates - Return true if A dominates B.
+///
+bool ImmediateDominatorsBase::dominates(BasicBlock *A, BasicBlock *B) const {
+ assert(A && B && "Null pointers?");
+
+ // Walk up the dominator tree from B to determine if A dom B.
+ while (A != B && B)
+ B = get(B);
+ return A == B;
+}
+
void ImmediateDominatorsBase::print(std::ostream &o, const Module* ) const {
Function *F = getRoots()[0]->getParent();
for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I) {
OpenPOWER on IntegriCloud