LLVM 20.0.0git
|
A wrapper around an intrusive list with callbacks and non-intrusive ownership. More...
#include "llvm/ADT/ilist.h"
Public Types | |
typedef base_list_type::pointer | pointer |
typedef base_list_type::const_pointer | const_pointer |
typedef base_list_type::reference | reference |
typedef base_list_type::const_reference | const_reference |
typedef base_list_type::value_type | value_type |
typedef base_list_type::size_type | size_type |
typedef base_list_type::difference_type | difference_type |
typedef base_list_type::iterator | iterator |
typedef base_list_type::const_iterator | const_iterator |
typedef base_list_type::reverse_iterator | reverse_iterator |
typedef base_list_type::const_reverse_iterator | const_reverse_iterator |
A wrapper around an intrusive list with callbacks and non-intrusive ownership.
This wraps a purely intrusive list (like simple_ilist) with a configurable traits class. The traits can implement callbacks and customize the ownership semantics.
This is a subset of ilist functionality that can safely be used on nodes of polymorphic types, i.e. a heterogeneous list with a common base class that holds the next/prev pointers. The only state of the list itself is an ilist_sentinel, which holds pointers to the first and last nodes in the list.
typedef base_list_type::const_iterator llvm::iplist_impl< IntrusiveListT, TraitsT >::const_iterator |
typedef base_list_type::const_pointer llvm::iplist_impl< IntrusiveListT, TraitsT >::const_pointer |
typedef base_list_type::const_reference llvm::iplist_impl< IntrusiveListT, TraitsT >::const_reference |
typedef base_list_type::const_reverse_iterator llvm::iplist_impl< IntrusiveListT, TraitsT >::const_reverse_iterator |
typedef base_list_type::difference_type llvm::iplist_impl< IntrusiveListT, TraitsT >::difference_type |
typedef base_list_type::iterator llvm::iplist_impl< IntrusiveListT, TraitsT >::iterator |
typedef base_list_type::pointer llvm::iplist_impl< IntrusiveListT, TraitsT >::pointer |
typedef base_list_type::reference llvm::iplist_impl< IntrusiveListT, TraitsT >::reference |
typedef base_list_type::reverse_iterator llvm::iplist_impl< IntrusiveListT, TraitsT >::reverse_iterator |
typedef base_list_type::size_type llvm::iplist_impl< IntrusiveListT, TraitsT >::size_type |
typedef base_list_type::value_type llvm::iplist_impl< IntrusiveListT, TraitsT >::value_type |
|
default |
|
delete |
|
inline |
|
inline |
Definition at line 147 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clear().
|
inline |
Definition at line 246 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::cloneFrom(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::~iplist_impl().
|
inline |
|
inline |
Clone another list.
Definition at line 182 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clear(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back().
|
inline |
Definition at line 240 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Definition at line 204 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::clear(), llvm::MachineBasicBlock::erase(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::MachineFunction::erase(), llvm::VPRecipeBase::eraseFromParent(), llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_back(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::pop_front().
|
inline |
Definition at line 209 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), and IT.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Definition at line 210 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), and IT.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Get the next node, or nullptr
for the list tail.
Definition at line 316 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::getNextNode(), and N.
|
inline |
Get the next node, or nullptr
for the list tail.
Definition at line 309 of file ilist.h.
References N.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::getNextNode().
|
inline |
Get the previous node, or nullptr
for the list head.
Definition at line 304 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::getPrevNode(), and N.
|
inline |
Get the previous node, or nullptr
for the list head.
Definition at line 297 of file ilist.h.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::getPrevNode().
|
inline |
Definition at line 170 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
|
inline |
Definition at line 261 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
|
inline |
Definition at line 165 of file ilist.h.
Referenced by llvm::MachineBasicBlock::insert(), llvm::MachineFunction::insert(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::VPBasicBlock::insert(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insertAfter(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back(), llvm::iplist_impl< IntrusiveListT, TraitsT >::push_front(), and llvm::SelectionDAG::RepositionNode().
|
inline |
Definition at line 174 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by llvm::OpenMPIRBuilder::finalize(), and moveFunctionAdaptingType().
|
inline |
|
inline |
Definition at line 292 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::merge(), and llvm::Right.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::merge().
|
inline |
Definition at line 286 of file ilist.h.
References llvm::Right.
|
delete |
|
inline |
|
inline |
Definition at line 255 of file ilist.h.
References assert(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
Referenced by llvm::VPBasicBlock::~VPBasicBlock().
|
inline |
Definition at line 251 of file ilist.h.
References assert(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Definition at line 250 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::cloneFrom(), and llvm::MachineFunction::push_back().
|
inline |
Definition at line 249 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by llvm::MachineFunction::push_front().
|
inline |
Definition at line 195 of file ilist.h.
References IT, and llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
|
inline |
Definition at line 188 of file ilist.h.
References IT.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::iplist_impl< IntrusiveListT, TraitsT >::remove(), llvm::MachineFunction::remove(), llvm::MachineBasicBlock::remove_instr(), llvm::VPRecipeBase::removeFromParent(), llvm::CallGraph::removeFunctionFromModule(), and llvm::SelectionDAG::RepositionNode().
|
inline |
Definition at line 200 of file ilist.h.
References IT, and llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
|
inline |
Definition at line 201 of file ilist.h.
References IT, and llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
|
inline |
Definition at line 266 of file ilist.h.
Referenced by llvm::MachineFunction::splice(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
|
inline |
|
inline |
|
inline |
Definition at line 281 of file ilist.h.
References N, and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
|
inline |
Definition at line 278 of file ilist.h.
References N, and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
|
inline |