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 NodeRef = NodeT *; \
using ChildIteratorType = \
RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT>; \
static NodeRef getEntryNode(NodeRef
N) {
return N; } \
static
inline ChildIteratorType child_begin(NodeRef
N) { \
return RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT>(
N); \
} \
static
inline ChildIteratorType child_end(NodeRef
N) { \
return RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT>(
N,
true); \
} \
}