Changes in directory llvm/include/llvm/Analysis:
Dominators.h updated: 1.49 -> 1.50 --- Log message: Fix the dominates method to return true if the two nodes are the same. Add a new properlyDominates method to do what the old one did. --- Diffs of the changes: (+12 -4) Dominators.h | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) Index: llvm/include/llvm/Analysis/Dominators.h diff -u llvm/include/llvm/Analysis/Dominators.h:1.49 llvm/include/llvm/Analysis/Dominators.h:1.50 --- llvm/include/llvm/Analysis/Dominators.h:1.49 Thu Apr 21 15:16:31 2005 +++ llvm/include/llvm/Analysis/Dominators.h Fri Nov 18 01:27:33 2005 @@ -306,16 +306,24 @@ inline Node *getIDom() const { return IDom; } inline const std::vector<Node*> &getChildren() const { return Children; } - /// dominates - Returns true iff this dominates N. Note that this is not a - /// constant time operation! + /// properlyDominates - Returns true iff this dominates N and this != N. + /// Note that this is not a constant time operation! /// - inline bool dominates(const Node *N) const { + bool properlyDominates(const Node *N) const { const Node *IDom; while ((IDom = N->getIDom()) != 0 && IDom != this) - N = IDom; // Walk up the tree + N = IDom; // Walk up the tree return IDom != 0; } + /// dominates - Returns true iff this dominates N. Note that this is not a + /// constant time operation! + /// + inline bool dominates(const Node *N) const { + if (N == this) return true; // A node trivially dominates itself. + return properlyDominates(N); + } + private: inline Node(BasicBlock *BB, Node *iDom) : TheBB(BB), IDom(iDom) {} inline Node *addChild(Node *C) { Children.push_back(C); return C; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits