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

Flat RegionNode iterator. More...

#include "llvm/Analysis/RegionIterator.h"

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< FlatIt< NodeRef >, BlockT, RegionT >
 

Public Member Functions

 RNSuccIterator (NodeRef node)
 Create the iterator from 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< FlatIt< NodeRef >, BlockT, RegionT >

Flat RegionNode iterator.

The Flat Region iterator will iterate over all BasicBlock RegionNodes that are contained in the Region and its subregions. This is close to a virtual control flow graph of the Region.

Definition at line 170 of file RegionIterator.h.

Member Typedef Documentation

◆ difference_type

template<class NodeRef , class BlockT , class RegionT >
using llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::difference_type = std::ptrdiff_t

Definition at line 180 of file RegionIterator.h.

◆ iterator_category

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

Definition at line 178 of file RegionIterator.h.

◆ pointer

template<class NodeRef , class BlockT , class RegionT >
using llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::pointer = value_type *

Definition at line 181 of file RegionIterator.h.

◆ reference

template<class NodeRef , class BlockT , class RegionT >
using llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::reference = value_type &

Definition at line 182 of file RegionIterator.h.

◆ Self

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

Definition at line 184 of file RegionIterator.h.

◆ value_type

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

Definition at line 179 of file RegionIterator.h.

Constructor & Destructor Documentation

◆ RNSuccIterator() [1/2]

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

Create the iterator from a RegionNode.

Note that the incoming node must be a bb node, otherwise it will trigger an assertion when we try to get a BasicBlock.

Definition at line 190 of file RegionIterator.h.

References assert().

◆ RNSuccIterator() [2/2]

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

Create an end iterator.

Definition at line 203 of file RegionIterator.h.

References assert().

Member Function Documentation

◆ operator!=()

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

◆ operator*()

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

Definition at line 218 of file RegionIterator.h.

References assert(), and BB.

◆ operator++() [1/2]

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

Definition at line 231 of file RegionIterator.h.

References llvm::succ_end().

◆ operator++() [2/2]

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

Definition at line 241 of file RegionIterator.h.

◆ operator==()

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

Definition at line 209 of file RegionIterator.h.

References assert(), and x.


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