LLVM 23.0.0git
PostOrderIterator.h File Reference

This file builds on the ADT/GraphTraits.h file to build a generic graph post order iterator. More...

#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include <iterator>
#include <optional>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  llvm::po_detail::NumberSet< NodeRef >
class  llvm::PostOrderTraversalBase< DerivedT, GraphTraits >
 CRTP base class for post-order traversal. More...
class  llvm::PostOrderTraversalBase< DerivedT, GraphTraits >::iterator
class  llvm::PostOrderTraversal< GraphT, SetType >
 Post-order traversal of a graph. More...
class  llvm::PostOrderExtTraversal< GraphT, SetType >
 Post-order traversal of the graph starting at the root node using an external storage. More...
class  llvm::ReversePostOrderTraversal< GraphT, GT >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::po_detail

Typedefs

template<typename GraphT>
using llvm::po_detail::DefaultSet

Functions

template<class T>
auto llvm::post_order (const T &G)
 Post-order traversal of a graph.
template<class T, class SetType>
auto llvm::post_order_ext (const T &G, SetType &S)
template<class T, class SetType>
auto llvm::inverse_post_order_ext (const T &G, SetType &S)

Detailed Description

This file builds on the ADT/GraphTraits.h file to build a generic graph post order iterator.

This should work over any graph type that has a GraphTraits specialization.

Definition in file PostOrderIterator.h.