LLVM  8.0.1
Public Types | Public Member Functions | List of all members
llvm::RNSuccIterator< NodeRef, BlockT, RegionT > Class Template Reference

Hierarchical RegionNode successor iterator. More...

#include "llvm/Analysis/RegionIterator.h"

Inheritance diagram for llvm::RNSuccIterator< NodeRef, BlockT, RegionT >:
Inheritance graph
[legend]
Collaboration diagram for llvm::RNSuccIterator< NodeRef, BlockT, RegionT >:
Collaboration graph
[legend]

Public Types

using Self = RNSuccIterator< NodeRef, BlockT, RegionT >
 
using value_type = typename super::value_type
 

Public Member Functions

 RNSuccIterator (NodeRef node)
 Create begin iterator of a RegionNode. More...
 
 RNSuccIterator (NodeRef node, bool)
 Create an end iterator. More...
 
bool operator== (const Self &x) const
 
bool operator!= (const Self &x) const
 
value_type operator* () const
 
Selfoperator++ ()
 
Self operator++ (int)
 

Detailed Description

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 40 of file RegionIterator.h.

Member Typedef Documentation

◆ Self

template<class NodeRef, class BlockT, class RegionT>
using llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::Self = RNSuccIterator<NodeRef, BlockT, RegionT>

Definition at line 102 of file RegionIterator.h.

◆ value_type

template<class NodeRef, class BlockT, class RegionT>
using llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::value_type = typename super::value_type

Definition at line 103 of file RegionIterator.h.

Constructor & Destructor Documentation

◆ RNSuccIterator() [1/2]

template<class NodeRef, class BlockT, class RegionT>
llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::RNSuccIterator ( NodeRef  node)
inline

Create begin iterator of a RegionNode.

Definition at line 106 of file RegionIterator.h.

◆ RNSuccIterator() [2/2]

template<class NodeRef, class BlockT, class RegionT>
llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::RNSuccIterator ( NodeRef  node,
bool   
)
inline

Create an end iterator.

Definition at line 119 of file RegionIterator.h.

Member Function Documentation

◆ operator!=()

template<class NodeRef, class BlockT, class RegionT>
bool llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::operator!= ( const Self x) const
inline

◆ operator*()

template<class NodeRef, class BlockT, class RegionT>
value_type llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::operator* ( ) const
inline

Definition at line 133 of file RegionIterator.h.

References assert().

◆ operator++() [1/2]

template<class NodeRef, class BlockT, class RegionT>
Self& llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::operator++ ( )
inline

Definition at line 139 of file RegionIterator.h.

◆ operator++() [2/2]

template<class NodeRef, class BlockT, class RegionT>
Self llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::operator++ ( int  )
inline

Definition at line 153 of file RegionIterator.h.

◆ operator==()

template<class NodeRef, class BlockT, class RegionT>
bool llvm::RNSuccIterator< NodeRef, BlockT, RegionT >::operator== ( const Self x) const
inline

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