LLVM 18.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(), llvm::SlotIndexes::releaseMemory(), llvm::BasicBlock::~BasicBlock(), llvm::iplist_impl< IntrusiveListT, TraitsT >::~iplist_impl(), and llvm::Module::~Module().
|
inline |
Remove all nodes from the list like clear(), but do not call removeNodeFromList() or deleteNode().
This should only be used immediately before freeing nodes in bulk to avoid traversing the list and bringing all the nodes into cache.
Definition at line 217 of file ilist.h.
Referenced by llvm::SlotIndexes::~SlotIndexes().
|
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::BasicBlock::erase(), llvm::Function::erase(), llvm::MachineBasicBlock::erase(), llvm::iplist_impl< IntrusiveListT, TraitsT >::erase(), llvm::MachineFunction::erase(), llvm::BasicBlock::eraseFromParent(), llvm::Function::eraseFromParent(), llvm::Instruction::eraseFromParent(), 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::MCSection::flushPendingLabels(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::Function::insert(), llvm::MachineBasicBlock::insert(), llvm::MachineFunction::insert(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insert(), llvm::MCObjectStreamer::insert(), llvm::VPBasicBlock::insert(), llvm::iplist_impl< IntrusiveListT, TraitsT >::insertAfter(), llvm::VPRecipeBase::insertBefore(), llvm::Instruction::insertInto(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), 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 llvm::VPRecipeBase::insertAfter().
|
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(), llvm::Module::getOrInsertFunction(), llvm::MCFragment::MCFragment(), llvm::MachineFunction::push_back(), llvm::SlotIndexes::runOnMachineFunction(), and stripDebugDeclareImpl().
|
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::BasicBlock::removeFromParent(), llvm::Function::removeFromParent(), llvm::Instruction::removeFromParent(), 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::BasicBlock::splice(), llvm::Function::splice(), 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 |