|
LLVM
4.0.0
|
A wrapper around an intrusive list with callbacks and non-intrusive ownership. More...
#include <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 |
Protected Types | |
| typedef iplist_impl | iplist_impl_type |
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 |
|
protected |
| 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 |
|
inline |
Definition at line 322 of file ilist.h.
Referenced by llvm::MachineBasicBlock::clear(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::cloneFrom(), llvm::SlotIndexes::releaseMemory(), llvm::Function::stealArgumentListFrom(), llvm::BasicBlock::~BasicBlock(), llvm::Function::~Function(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::~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 293 of file ilist.h.
Referenced by llvm::SlotIndexes::~SlotIndexes().
|
inline |
|
inline |
Definition at line 280 of file ilist.h.
Referenced by llvm::changeToUnreachable(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::clear(), eliminateRecursiveTailCall(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::erase(), llvm::MachineBasicBlock::erase(), llvm::MachineFunction::erase(), llvm::GlobalIFunc::eraseFromParent(), llvm::GlobalAlias::eraseFromParent(), llvm::Instruction::eraseFromParent(), llvm::GlobalVariable::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::Function::eraseFromParent(), llvm::SlotIndexes::eraseIndex(), llvm::Module::eraseNamedMetadata(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), OptimizeGlobalAliases(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::pop_back(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::pop_front(), llvm::removeUnreachableBlocks(), llvm::ReplaceInstWithValue(), RewriteUsesOfLoadForHeapSRoA(), runIPSCCP(), SRAGlobal(), and llvm::UnrollLoop().
|
inline |
Definition at line 285 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::erase().
|
inline |
Definition at line 286 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::erase().
|
inline |
|
inline |
Get the next node, or nullptr for the list tail.
Definition at line 385 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::getNextNode().
|
inline |
|
inline |
Get the previous node, or nullptr for the list head.
Definition at line 373 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::getPrevNode().
|
inline |
|
inline |
Definition at line 241 of file ilist.h.
Referenced by CloneInstructionInExitBlock(), createCallHelper(), createDirectCallInst(), createInvokeHelper(), llvm::MemorySSA::createMemoryAccessBefore(), llvm::NVPTXAsmPrinter::doFinalization(), DoPromotion(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::MCObjectStreamer::flushPendingLabels(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::FoldReturnIntoUncondBranch(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::GlobalVariable::GlobalVariable(), HoistThenElseCodeToIf(), llvm::MCObjectStreamer::insert(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::insert(), llvm::MachineBasicBlock::insert(), llvm::MachineFunction::insert(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::insertAfter(), llvm::Instruction::insertBefore(), llvm::IRBuilderDefaultInserter::InsertHelper(), llvm::BasicBlock::insertInto(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), llvm::InstCombiner::InsertNewInstBefore(), llvm::Instruction::Instruction(), OptimizeGlobalAddressOfMalloc(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::push_back(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::push_front(), llvm::ReplaceInstWithInst(), llvm::InstCombiner::run(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), TryToShrinkGlobalToBoolean(), llvm::JumpThreadingPass::TryToUnfoldSelect(), and llvm::InstCombiner::visitGetElementPtrInst().
|
inline |
|
inline |
|
inline |
Definition at line 250 of file ilist.h.
Referenced by llvm::MemorySSA::createMemoryAccessAfter(), llvm::Instruction::insertAfter(), llvm::MachineBasicBlock::insertAfter(), and llvm::SlotIndexes::insertMBBInMaps().
|
inline |
|
inline |
|
inline |
Definition at line 368 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::merge().
|
delete |
|
inline |
|
inline |
Definition at line 331 of file ilist.h.
Referenced by llvm::changeToInvokeAndSplitBasicBlock(), llvm::DeleteDeadBlock(), foldBlockIntoPredecessor(), llvm::InlineFunction(), llvm::MergeBlockIntoPredecessor(), llvm::MachineBasicBlock::pop_back(), and SimplifyFunction().
|
inline |
Definition at line 327 of file ilist.h.
Referenced by llvm::changeToInvokeAndSplitBasicBlock(), eliminateUnreachableBlock(), llvm::MachineBasicBlock::pop_front(), and llvm::BasicBlock::removePredecessor().
|
inline |
Definition at line 326 of file ilist.h.
Referenced by llvm::Argument::Argument(), llvm::CloneAndPruneIntoFromInst(), llvm::CloneBasicBlock(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::cloneFrom(), llvm::BinaryOperator::Create(), createMalloc(), llvm::CodeExtractor::extractCodeRegion(), llvm::FoldReturnIntoUncondBranch(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalVariable::GlobalVariable(), llvm::BasicBlock::insertInto(), llvm::Instruction::Instruction(), llvm::MCFragment::MCFragment(), llvm::MachineBasicBlock::push_back(), llvm::MachineFunction::push_back(), llvm::UnifyFunctionExitNodes::runOnFunction(), llvm::SlotIndexes::runOnMachineFunction(), SRAGlobal(), llvm::JumpThreadingPass::ThreadEdge(), and llvm::UnrollLoop().
|
inline |
Definition at line 325 of file ilist.h.
Referenced by llvm::MemorySSA::createMemoryPhi(), insertCallRetPHI(), and llvm::MachineFunction::push_front().
|
inline |
Definition at line 264 of file ilist.h.
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), llvm::SlotIndexes::eraseIndex(), llvm::MachineFunction::remove(), llvm::MachineBasicBlock::remove(), llvm::MachineBasicBlock::remove_instr(), llvm::GlobalIFunc::removeFromParent(), llvm::GlobalAlias::removeFromParent(), llvm::Instruction::removeFromParent(), llvm::GlobalVariable::removeFromParent(), llvm::BasicBlock::removeFromParent(), llvm::Function::removeFromParent(), and llvm::CallGraph::removeFunctionFromModule().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 342 of file ilist.h.
Referenced by foldBlockIntoPredecessor(), FoldTwoEntryPHINode(), HoistThenElseCodeToIf(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), llvm::BasicBlock::moveAfter(), moveBBContents(), llvm::Instruction::moveBefore(), llvm::BasicBlock::moveBefore(), llvm::peelLoop(), SpeculativelyExecuteBB(), llvm::iplist_impl< simple_ilist< MachineBasicBlock, Options...>, ilist_traits< MachineBasicBlock > >::splice(), llvm::MachineFunction::splice(), llvm::MachineBasicBlock::splice(), llvm::MemorySSA::spliceMemoryAccessAbove(), llvm::Function::stealArgumentListFrom(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), and llvm::UnrollRuntimeLoopRemainder().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
1.8.6