LLVM: include/llvm/Analysis/RegionIterator.h File Reference (original) (raw)

template <> struct GraphTraits<NodeT *> { \

using NodeRef = NodeT *; \

using ChildIteratorType = RNSuccIterator<NodeRef, BlockT, RegionT>; \

static NodeRef getEntryNode(NodeRef N) { return N; } \

static inline ChildIteratorType child_begin(NodeRef N) { \

return RNSuccIterator<NodeRef, BlockT, RegionT>(N); \

} \

static inline ChildIteratorType child_end(NodeRef N) { \

return RNSuccIterator<NodeRef, BlockT, RegionT>(N, true); \

} \

}; \

template <> struct GraphTraits<FlatIt<NodeT *>> { \

using ChildIteratorType = \

RNSuccIterator<FlatIt, BlockT, RegionT>; \

static NodeRef getEntryNode(NodeRef N) { return N; } \

static inline ChildIteratorType child_begin(NodeRef N) { \

return RNSuccIterator<FlatIt, BlockT, RegionT>(N); \

} \

static inline ChildIteratorType child_end(NodeRef N) { \

return RNSuccIterator<FlatIt, BlockT, RegionT>(N, true); \

} \

}