19#ifndef LLVM_ADT_GRAPHTRAITS_H
20#define LLVM_ADT_GRAPHTRAITS_H
36template<
class GraphType>
80 using NodeRef =
typename GraphType::UnknownGraphTypeError;
96template <
class GraphType>
108template <
class GraphType>
114template <
class GraphType>
115iterator_range<typename GraphTraits<Inverse<GraphType>>::nodes_iterator>
121template <
class GraphType>
122iterator_range<typename GraphTraits<GraphType>::ChildIteratorType>
128template <
class GraphType>
129iterator_range<typename GraphTraits<Inverse<GraphType>>::ChildIteratorType>
135template <
class GraphType>
136iterator_range<typename GraphTraits<GraphType>::ChildEdgeIteratorType>
Unify divergent function exit nodes
A range adaptor for a pair of iterators.
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
This is an optimization pass for GlobalISel generic memory operations.
iterator_range< typename GraphTraits< Inverse< GraphType > >::nodes_iterator > inverse_nodes(const GraphType &G)
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
iterator_range< typename GraphTraits< GraphType >::ChildEdgeIteratorType > children_edges(const typename GraphTraits< GraphType >::NodeRef &G)
iterator_range< typename GraphTraits< Inverse< GraphType > >::ChildIteratorType > inverse_children(const typename GraphTraits< GraphType >::NodeRef &G)
iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > children(const typename GraphTraits< GraphType >::NodeRef &G)
typename GraphType::UnknownGraphTypeError NodeRef
Inverse(const GraphType &G)