LLVM  4.0.0
Public Types | Public Member Functions | Friends | List of all members
llvm::ilist_iterator< OptionsT, IsReverse, IsConst > Class Template Reference

Iterator for intrusive lists based on ilist_node. More...

#include <ilist_iterator.h>

Inheritance diagram for llvm::ilist_iterator< OptionsT, IsReverse, IsConst >:
[legend]
Collaboration diagram for llvm::ilist_iterator< OptionsT, IsReverse, IsConst >:
[legend]

Public Types

typedef Traits::value_type value_type
 
typedef Traits::pointer pointer
 
typedef Traits::reference reference
 
typedef ptrdiff_t difference_type
 
typedef
std::bidirectional_iterator_tag 
iterator_category
 
typedef OptionsT::const_pointer const_pointer
 
typedef OptionsT::const_reference const_reference
 

Public Member Functions

 ilist_iterator (node_reference N)
 Create from an ilist_node. More...
 
 ilist_iterator (pointer NP)
 
 ilist_iterator (reference NR)
 
 ilist_iterator ()
 
template<bool RHSIsConst>
 ilist_iterator (const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &RHS, typename std::enable_if< IsConst||!RHSIsConst, void * >::type=nullptr)
 
template<bool RHSIsConst>
std::enable_if< IsConst||!RHSIsConst,
ilist_iterator & >::type 
operator= (const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &RHS)
 
 ilist_iterator (const ilist_iterator< OptionsT,!IsReverse, IsConst > &RHS)
 Explicit conversion between forward/reverse iterators. More...
 
ilist_iterator< OptionsT,!IsReverse,
IsConst > 
getReverse () const
 Get a reverse iterator to the same node. More...
 
ilist_iterator< OptionsT,
IsReverse, false
getNonConst () const
 Const-cast. More...
 
reference operator* () const
 
pointer operator-> () const
 
ilist_iteratoroperator-- ()
 
ilist_iteratoroperator++ ()
 
ilist_iterator operator-- (int)
 
ilist_iterator operator++ (int)
 
node_pointer getNodePtr () const
 Get the underlying ilist_node. More...
 
bool isEnd () const
 Check for end. Only valid if ilist_sentinel_tracking<true>. More...
 

Friends

bool operator== (const ilist_iterator &LHS, const ilist_iterator &RHS)
 
bool operator!= (const ilist_iterator &LHS, const ilist_iterator &RHS)
 

Detailed Description

template<class OptionsT, bool IsReverse, bool IsConst>
class llvm::ilist_iterator< OptionsT, IsReverse, IsConst >

Iterator for intrusive lists based on ilist_node.

Definition at line 56 of file ilist_iterator.h.

Member Typedef Documentation

template<class OptionsT, bool IsReverse, bool IsConst>
typedef OptionsT::const_pointer llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_pointer

Definition at line 71 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef OptionsT::const_reference llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_reference

Definition at line 72 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef ptrdiff_t llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::difference_type

Definition at line 68 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef std::bidirectional_iterator_tag llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::iterator_category

Definition at line 69 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef Traits::pointer llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::pointer

Definition at line 66 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef Traits::reference llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::reference

Definition at line 67 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
typedef Traits::value_type llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::value_type

Definition at line 65 of file ilist_iterator.h.

Constructor & Destructor Documentation

template<class OptionsT, bool IsReverse, bool IsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( node_reference  N)
inlineexplicit

Create from an ilist_node.

Definition at line 82 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( pointer  NP)
inlineexplicit

Definition at line 84 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( reference  NR)
inlineexplicit

Definition at line 85 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( )
inline

Definition at line 86 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
template<bool RHSIsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &  RHS,
typename std::enable_if< IsConst||!RHSIsConst, void * >::type  = nullptr 
)
inline

Definition at line 91 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::ilist_iterator ( const ilist_iterator< OptionsT,!IsReverse, IsConst > &  RHS)
inlineexplicit

Explicit conversion between forward/reverse iterators.

Translate between forward and reverse iterators without changing range boundaries. The resulting iterator will dereference (and have a handle) to the previous node, which is somewhat unexpected; but converting the two endpoints in a range will give the same range in reverse.

This matches std::reverse_iterator conversions.

Definition at line 113 of file ilist_iterator.h.

Member Function Documentation

template<class OptionsT, bool IsReverse, bool IsConst>
node_pointer llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::getNodePtr ( ) const
inline
template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator<OptionsT, IsReverse, false> llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::getNonConst ( ) const
inline

Const-cast.

Definition at line 129 of file ilist_iterator.h.

References false.

template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator<OptionsT, !IsReverse, IsConst> llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::getReverse ( ) const
inline

Get a reverse iterator to the same node.

Gives a reverse iterator that will dereference (and have a handle) to the same node. Converting the endpoint iterators in a range will give a different range; for range operations, use the explicit conversions.

Definition at line 122 of file ilist_iterator.h.

Referenced by findLiveSetAtInst(), and llvm::slpvectorizer::BoUpSLP::getSpillCost().

template<class OptionsT, bool IsReverse, bool IsConst>
bool llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::isEnd ( ) const
inline

Check for end. Only valid if ilist_sentinel_tracking<true>.

Definition at line 176 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
reference llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator* ( ) const
inline
template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator& llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator++ ( )
inline

Definition at line 157 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator++ ( int  )
inline

Definition at line 166 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator& llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator-- ( )
inline

Definition at line 153 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
ilist_iterator llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator-- ( int  )
inline

Definition at line 161 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
pointer llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator-> ( ) const
inline
template<class OptionsT, bool IsReverse, bool IsConst>
template<bool RHSIsConst>
std::enable_if<IsConst || !RHSIsConst, ilist_iterator &>::type llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::operator= ( const ilist_iterator< OptionsT, IsReverse, RHSIsConst > &  RHS)
inline

Definition at line 100 of file ilist_iterator.h.

Friends And Related Function Documentation

template<class OptionsT, bool IsReverse, bool IsConst>
bool operator!= ( const ilist_iterator< OptionsT, IsReverse, IsConst > &  LHS,
const ilist_iterator< OptionsT, IsReverse, IsConst > &  RHS 
)
friend

Definition at line 148 of file ilist_iterator.h.

template<class OptionsT, bool IsReverse, bool IsConst>
bool operator== ( const ilist_iterator< OptionsT, IsReverse, IsConst > &  LHS,
const ilist_iterator< OptionsT, IsReverse, IsConst > &  RHS 
)
friend

Definition at line 145 of file ilist_iterator.h.


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