LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::VPAllSuccessorsIterator< BlockPtrTy > Class Template Reference

Iterator to traverse all successors of a VPBlockBase node. More...

#include "Transforms/Vectorize/VPlanCFG.h"

Inheritance diagram for llvm::VPAllSuccessorsIterator< BlockPtrTy >:
Inheritance graph
[legend]

Public Types

using reference = BlockPtrTy
 Used by iterator_facade_base with bidirectional_iterator_tag.
 
- Public Types inherited from llvm::iterator_facade_base< VPAllSuccessorsIterator< BlockPtrTy >, std::bidirectional_iterator_tag, VPBlockBase >
using iterator_category = std::bidirectional_iterator_tag
 
using value_type = VPBlockBase
 
using difference_type = std::ptrdiff_t
 
using pointer = VPBlockBase *
 
using reference = VPBlockBase &
 

Public Member Functions

 VPAllSuccessorsIterator (BlockPtrTy Block, size_t Idx=0)
 
 VPAllSuccessorsIterator (const VPAllSuccessorsIterator &Other)
 
VPAllSuccessorsIteratoroperator= (const VPAllSuccessorsIterator &R)
 
bool operator== (const VPAllSuccessorsIterator &R) const
 
const VPBlockBaseoperator* () const
 
BlockPtrTy operator* ()
 
VPAllSuccessorsIteratoroperator++ ()
 
VPAllSuccessorsIteratoroperator-- ()
 
VPAllSuccessorsIterator operator++ (int X)
 
- Public Member Functions inherited from llvm::iterator_facade_base< VPAllSuccessorsIterator< BlockPtrTy >, std::bidirectional_iterator_tag, VPBlockBase >
VPAllSuccessorsIterator< BlockPtrTy > operator+ (std::ptrdiff_t n) const
 
VPAllSuccessorsIterator< BlockPtrTy > operator- (std::ptrdiff_t n) const
 
VPAllSuccessorsIterator< BlockPtrTy > & operator++ ()
 
VPAllSuccessorsIterator< BlockPtrTy > operator++ (int)
 
VPAllSuccessorsIterator< BlockPtrTy > & operator-- ()
 
VPAllSuccessorsIterator< BlockPtrTy > operator-- (int)
 
bool operator!= (const VPAllSuccessorsIterator< BlockPtrTy > &RHS) const
 
bool operator> (const VPAllSuccessorsIterator< BlockPtrTy > &RHS) const
 
bool operator<= (const VPAllSuccessorsIterator< BlockPtrTy > &RHS) const
 
bool operator>= (const VPAllSuccessorsIterator< BlockPtrTy > &RHS) const
 
PointerProxy operator-> () const
 
ReferenceProxy operator[] (std::ptrdiff_t n) const
 

Static Public Member Functions

static VPAllSuccessorsIterator end (BlockPtrTy Block)
 

Additional Inherited Members

- Protected Types inherited from llvm::iterator_facade_base< VPAllSuccessorsIterator< BlockPtrTy >, std::bidirectional_iterator_tag, VPBlockBase >
enum  
 

Detailed Description

template<typename BlockPtrTy>
class llvm::VPAllSuccessorsIterator< BlockPtrTy >

Iterator to traverse all successors of a VPBlockBase node.

This includes the entry node of VPRegionBlocks. Exit blocks of a region implicitly have their parent region's successors. This ensures all blocks in a region are visited before any blocks in a successor region when doing a reverse post-order

Definition at line 34 of file VPlanCFG.h.

Member Typedef Documentation

◆ reference

template<typename BlockPtrTy >
using llvm::VPAllSuccessorsIterator< BlockPtrTy >::reference = BlockPtrTy

Used by iterator_facade_base with bidirectional_iterator_tag.

Definition at line 65 of file VPlanCFG.h.

Constructor & Destructor Documentation

◆ VPAllSuccessorsIterator() [1/2]

template<typename BlockPtrTy >
llvm::VPAllSuccessorsIterator< BlockPtrTy >::VPAllSuccessorsIterator ( BlockPtrTy  Block,
size_t  Idx = 0 
)
inline

Definition at line 67 of file VPlanCFG.h.

◆ VPAllSuccessorsIterator() [2/2]

template<typename BlockPtrTy >
llvm::VPAllSuccessorsIterator< BlockPtrTy >::VPAllSuccessorsIterator ( const VPAllSuccessorsIterator< BlockPtrTy > &  Other)
inline

Definition at line 69 of file VPlanCFG.h.

Member Function Documentation

◆ end()

template<typename BlockPtrTy >
static VPAllSuccessorsIterator llvm::VPAllSuccessorsIterator< BlockPtrTy >::end ( BlockPtrTy  Block)
inlinestatic

Definition at line 78 of file VPlanCFG.h.

◆ operator*() [1/2]

template<typename BlockPtrTy >
BlockPtrTy llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator* ( )
inline

Definition at line 95 of file VPlanCFG.h.

◆ operator*() [2/2]

template<typename BlockPtrTy >
const VPBlockBase * llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator* ( ) const
inline

Definition at line 93 of file VPlanCFG.h.

◆ operator++() [1/2]

template<typename BlockPtrTy >
VPAllSuccessorsIterator & llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator++ ( )
inline

Definition at line 97 of file VPlanCFG.h.

◆ operator++() [2/2]

template<typename BlockPtrTy >
VPAllSuccessorsIterator llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator++ ( int  X)
inline

Definition at line 107 of file VPlanCFG.h.

◆ operator--()

template<typename BlockPtrTy >
VPAllSuccessorsIterator & llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator-- ( )
inline

Definition at line 102 of file VPlanCFG.h.

◆ operator=()

template<typename BlockPtrTy >
VPAllSuccessorsIterator & llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator= ( const VPAllSuccessorsIterator< BlockPtrTy > &  R)
inline

Definition at line 72 of file VPlanCFG.h.

◆ operator==()

template<typename BlockPtrTy >
bool llvm::VPAllSuccessorsIterator< BlockPtrTy >::operator== ( const VPAllSuccessorsIterator< BlockPtrTy > &  R) const
inline

Definition at line 89 of file VPlanCFG.h.


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