Added partial specialization of GraphTraits for the DominatorTree class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4205 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Joel Stanley 2002-10-16 23:26:00 +00:00
parent bda5fe124c
commit 61315bc367

View File

@ -19,6 +19,7 @@
#define LLVM_ANALYSIS_DOMINATORS_H
#include "llvm/Pass.h"
#include "Support/GraphTraits.h"
#include <set>
class Instruction;
@ -341,6 +342,24 @@ private:
void calculate(const DominatorSet &DS);
};
//===-------------------------------------
// DominatorTree GraphTraits specialization so the DominatorTree can be
// iterable by generic graph iterators.
template <> struct GraphTraits<DominatorTree*> {
typedef DominatorTree::Node NodeType;
typedef NodeType::iterator ChildIteratorType;
static NodeType *getEntryNode(DominatorTree *DT) {
return DT->getNode(DT->getRoot());
}
static inline ChildIteratorType child_begin(NodeType* N) {
return N->begin();
}
static inline ChildIteratorType child_end(NodeType* N) {
return N->end();
}
};
//===----------------------------------------------------------------------===//
//