LLVM: llvm::RNSuccIterator< NodeRef, BlockT, RegionT (original) (raw)

Hierarchical RegionNode successor iterator. More...

#include "[llvm/Analysis/RegionIterator.h](RegionIterator%5F8h%5Fsource.html)"

Public Types
using iterator_category = std::forward_iterator_tag
using value_type = NodeRef
using difference_type = std::ptrdiff_t
using pointer = value_type *
using reference = value_type &
using Self = RNSuccIterator<NodeRef, BlockT, RegionT>
Public Member Functions
RNSuccIterator (NodeRef node)
Create begin iterator of a RegionNode.
RNSuccIterator (NodeRef node, bool)
Create an end iterator.
bool operator== (const Self &x) const
bool operator!= (const Self &x) const
value_type operator* () const
Self & operator++ ()
Self operator++ (int)

template<class NodeRef, class BlockT, class RegionT>
class llvm::RNSuccIterator< NodeRef, BlockT, RegionT >

Hierarchical RegionNode successor iterator.

This iterator iterates over all successors of a RegionNode.

For a BasicBlock RegionNode it skips all BasicBlocks that are not part of the parent Region. Furthermore for BasicBlocks that start a subregion, a RegionNode representing the subregion is returned.

For a subregion RegionNode there is just one successor. The RegionNode representing the exit of the subregion.

Definition at line 38 of file RegionIterator.h.

difference_type

template<class NodeRef, class BlockT, class RegionT>

iterator_category

template<class NodeRef, class BlockT, class RegionT>

using llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::iterator_category = std::forward_iterator_tag

pointer

template<class NodeRef, class BlockT, class RegionT>

reference

template<class NodeRef, class BlockT, class RegionT>

Self

template<class NodeRef, class BlockT, class RegionT>

value_type

template<class NodeRef, class BlockT, class RegionT>

template<class NodeRef, class BlockT, class RegionT>

RNSuccIterator() [2/2]

template<class NodeRef, class BlockT, class RegionT>

operator!=()

template<class NodeRef, class BlockT, class RegionT>

operator*()

template<class NodeRef, class BlockT, class RegionT>

operator++() [1/2]

template<class NodeRef, class BlockT, class RegionT>

operator++() [2/2]

template<class NodeRef, class BlockT, class RegionT>

operator==()

template<class NodeRef, class BlockT, class RegionT>


The documentation for this class was generated from the following file: