[llvm-commits] [llvm] r80801 - /llvm/trunk/include/llvm/Analysis/Dominators.h

Dan Gohman gohman at apple.com
Wed Sep 2 10:05:06 PDT 2009


Author: djg
Date: Wed Sep  2 12:05:05 2009
New Revision: 80801

URL: http://llvm.org/viewvc/llvm-project?rev=80801&view=rev
Log:
Add const qualifiers to dominates' arguments.

Modified:
    llvm/trunk/include/llvm/Analysis/Dominators.h

Modified: llvm/trunk/include/llvm/Analysis/Dominators.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/Dominators.h?rev=80801&r1=80800&r2=80801&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Analysis/Dominators.h (original)
+++ llvm/trunk/include/llvm/Analysis/Dominators.h Wed Sep  2 12:05:05 2009
@@ -404,11 +404,15 @@
     return dominatedBySlowTreeWalk(A, B);
   }
 
-  inline bool dominates(NodeT *A, NodeT *B) {
+  inline bool dominates(const NodeT *A, const NodeT *B) {
     if (A == B) 
       return true;
 
-    return dominates(getNode(A), getNode(B));
+    // Cast away the const qualifiers here. This is ok since
+    // this function doesn't actually return the values returned
+    // from getNode.
+    return dominates(getNode(const_cast<NodeT *>(A)),
+                     getNode(const_cast<NodeT *>(B)));
   }
 
   NodeT *getRoot() const {
@@ -736,15 +740,15 @@
     return DT->dominates(A, B);
   }
 
-  inline bool dominates(BasicBlock* A, BasicBlock* B) const {
+  inline bool dominates(const BasicBlock* A, const BasicBlock* B) const {
     return DT->dominates(A, B);
   }
 
   // dominates - Return true if A dominates B. This performs the
   // special checks necessary if A and B are in the same basic block.
-  bool dominates(Instruction *A, Instruction *B) const {
-    BasicBlock *BBA = A->getParent(), *BBB = B->getParent();
-    if (BBA != BBB) return DT->dominates(BBA, BBB);
+  bool dominates(const Instruction *A, const Instruction *B) const {
+    const BasicBlock *BBA = A->getParent(), *BBB = B->getParent();
+    if (BBA != BBB) return dominates(BBA, BBB);
 
     // It is not possible to determine dominance between two PHI nodes 
     // based on their ordering.
@@ -752,7 +756,7 @@
       return false;
 
     // Loop through the basic block until we find A or B.
-    BasicBlock::iterator I = BBA->begin();
+    BasicBlock::const_iterator I = BBA->begin();
     for (; &*I != A && &*I != B; ++I) /*empty*/;
 
     //if(!DT.IsPostDominators) {





More information about the llvm-commits mailing list