LLVM
8.0.1
|
Iterator for intrusive lists based on ilist_node. More...
#include "llvm/ADT/ilist_iterator.h"
Public Types | |
using | value_type = typename Traits::value_type |
using | pointer = typename Traits::pointer |
using | reference = typename Traits::reference |
using | difference_type = ptrdiff_t |
using | iterator_category = std::bidirectional_iterator_tag |
using | const_pointer = typename OptionsT::const_pointer |
using | const_reference = typename OptionsT::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 ()=default | |
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_iterator & | operator-- () |
ilist_iterator & | operator++ () |
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) |
Iterator for intrusive lists based on ilist_node.
Definition at line 58 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_pointer = typename OptionsT::const_pointer |
Definition at line 72 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::const_reference = typename OptionsT::const_reference |
Definition at line 73 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::difference_type = ptrdiff_t |
Definition at line 70 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::iterator_category = std::bidirectional_iterator_tag |
Definition at line 71 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::pointer = typename Traits::pointer |
Definition at line 68 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::reference = typename Traits::reference |
Definition at line 69 of file ilist_iterator.h.
using llvm::ilist_iterator< OptionsT, IsReverse, IsConst >::value_type = typename Traits::value_type |
Definition at line 67 of file ilist_iterator.h.
|
inlineexplicit |
Create from an ilist_node.
Definition at line 83 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 85 of file ilist_iterator.h.
|
inlineexplicit |
Definition at line 86 of file ilist_iterator.h.
|
default |
|
inline |
Definition at line 92 of file ilist_iterator.h.
|
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 114 of file ilist_iterator.h.
|
inline |
Get the underlying ilist_node.
Definition at line 174 of file ilist_iterator.h.
Referenced by llvm::simple_ilist< MachineInstr, Options... >::erase(), and llvm::simple_ilist< MachineInstr, Options... >::splice().
|
inline |
Const-cast.
Definition at line 130 of file ilist_iterator.h.
|
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 123 of file ilist_iterator.h.
Referenced by llvm::createLanaiDelaySlotFillerPass(), findLiveSetAtInst(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), isObjectDereferencedInBlock(), and llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence().
|
inline |
Check for end. Only valid if ilist_sentinel_tracking<true>.
Definition at line 177 of file ilist_iterator.h.
|
inline |
Definition at line 139 of file ilist_iterator.h.
References assert().
|
inline |
Definition at line 158 of file ilist_iterator.h.
References llvm::ilist_detail::NodeAccess::getPrev().
|
inline |
Definition at line 167 of file ilist_iterator.h.
|
inline |
Definition at line 154 of file ilist_iterator.h.
References llvm::ilist_detail::NodeAccess::getNext().
|
inline |
Definition at line 162 of file ilist_iterator.h.
|
inline |
Definition at line 143 of file ilist_iterator.h.
References llvm::operator*().
|
inline |
Definition at line 101 of file ilist_iterator.h.
|
friend |
Definition at line 149 of file ilist_iterator.h.
|
friend |
Definition at line 146 of file ilist_iterator.h.