Make dominates(A,B) work with post dominators. Patch contributed by
authorChris Lattner <sabre@nondot.org>
Mon, 25 Apr 2005 20:50:33 +0000 (20:50 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 25 Apr 2005 20:50:33 +0000 (20:50 +0000)
Naveen Neelakantam, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21543 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Dominators.cpp

index a59bd4eb065ac61ac2b7a8e49974f8a26cda4d43..04fef95552c634751be7a06d6277ed586620e5ee 100644 (file)
@@ -245,8 +245,13 @@ bool DominatorSetBase::dominates(Instruction *A, Instruction *B) const {
   BasicBlock::iterator I = BBA->begin();
   for (; &*I != A && &*I != B; ++I) /*empty*/;
 
-  // A dominates B if it is found first in the basic block...
-  return &*I == A;
+  if(!IsPostDominators) {
+    // A dominates B if it is found first in the basic block.
+    return &*I == A;
+  } else {
+    // A post-dominates B if B is found first in the basic block.
+    return &*I == B;
+  }
 }