diff options
author | Dan Gohman <gohman@apple.com> | 2010-09-27 16:33:31 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-09-27 16:33:31 +0000 |
commit | e6098b620531e77b732accbcc21007abd5df927e (patch) | |
tree | 3492afc519f577a72a7a3b9104d2c30c1ec842d4 | |
parent | 48fd5a79e023bf6a647dfabb2bbb4c2f98617b81 (diff) | |
download | external_llvm-e6098b620531e77b732accbcc21007abd5df927e.zip external_llvm-e6098b620531e77b732accbcc21007abd5df927e.tar.gz external_llvm-e6098b620531e77b732accbcc21007abd5df927e.tar.bz2 |
Constify properlyDominates in the same manner as dominates.
Add constified overloads for findNearestCommonDominator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114834 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/Dominators.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index 57a5b2a..1de8e15 100644 --- a/include/llvm/Analysis/Dominators.h +++ b/include/llvm/Analysis/Dominators.h @@ -361,8 +361,15 @@ public: return dominatedBySlowTreeWalk(A, B); } - inline bool properlyDominates(NodeT *A, NodeT *B) { - return properlyDominates(getNode(A), getNode(B)); + inline bool properlyDominates(const NodeT *A, const NodeT *B) { + if (A == B) + return false; + + // Cast away the const qualifiers here. This is ok since + // this function doesn't actually return the values returned + // from getNode. + return properlyDominates(getNode(const_cast<NodeT *>(A)), + getNode(const_cast<NodeT *>(B))); } bool dominatedBySlowTreeWalk(const DomTreeNodeBase<NodeT> *A, @@ -478,6 +485,13 @@ public: return NULL; } + const NodeT *findNearestCommonDominator(const NodeT *A, const NodeT *B) { + // Cast away the const qualifiers here. This is ok since + // const is re-introduced on the return type. + return findNearestCommonDominator(const_cast<NodeT *>(A), + const_cast<NodeT *>(B)); + } + //===--------------------------------------------------------------------===// // API to update (Post)DominatorTree information based on modifications to // the CFG... @@ -767,7 +781,7 @@ public: return DT->properlyDominates(A, B); } - bool properlyDominates(BasicBlock *A, BasicBlock *B) const { + bool properlyDominates(const BasicBlock *A, const BasicBlock *B) const { return DT->properlyDominates(A, B); } @@ -777,6 +791,11 @@ public: return DT->findNearestCommonDominator(A, B); } + inline const BasicBlock *findNearestCommonDominator(const BasicBlock *A, + const BasicBlock *B) { + return DT->findNearestCommonDominator(A, B); + } + inline DomTreeNode *operator[](BasicBlock *BB) const { return DT->getNode(BB); } |