LLVM 17.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 211 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clear().
|
inline |
Definition at line 310 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 281 of file ilist.h.
Referenced by llvm::SlotIndexes::~SlotIndexes().
|
inline |
Clone another list.
Definition at line 246 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::clear(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back().
|
inline |
Definition at line 304 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Definition at line 268 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 273 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 274 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 380 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 373 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 368 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 361 of file ilist.h.
Referenced by llvm::iplist_impl< IntrusiveListT, TraitsT >::getPrevNode().
|
inline |
Definition at line 234 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
|
inline |
Definition at line 325 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
|
inline |
Definition at line 229 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 238 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 356 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 350 of file ilist.h.
References llvm::Right.
|
delete |
|
inline |
|
inline |
Definition at line 319 of file ilist.h.
References assert(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
Referenced by llvm::VPBasicBlock::~VPBasicBlock().
|
inline |
Definition at line 315 of file ilist.h.
References assert(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::erase().
|
inline |
Definition at line 314 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 313 of file ilist.h.
References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().
Referenced by llvm::MachineFunction::push_front().
|
inline |
Definition at line 259 of file ilist.h.
References IT, and llvm::iplist_impl< IntrusiveListT, TraitsT >::remove().
|
inline |
Definition at line 252 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 264 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 265 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 330 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 345 of file ilist.h.
References N, and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
|
inline |
Definition at line 342 of file ilist.h.
References N, and llvm::iplist_impl< IntrusiveListT, TraitsT >::splice().
|
inline |