LLVM
10.0.0svn
|
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 |
|
inline |
Definition at line 307 of file ilist.h.
Referenced by llvm::MachineBasicBlock::clear(), getNarrowIntrinsic(), getScalarIntrinsicDeclaration(), isOnlyReachableViaThisEdge(), llvm::SlotIndexes::releaseMemory(), llvm::BasicBlock::~BasicBlock(), llvm::Module::~Module(), and llvm::VPBasicBlock::~VPBasicBlock().
|
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 278 of file ilist.h.
Referenced by llvm::SlotIndexes::~SlotIndexes().
|
inline |
|
inline |
Definition at line 265 of file ilist.h.
Referenced by llvm::changeToUnreachable(), eliminateRecursiveTailCall(), llvm::MachineBasicBlock::erase(), llvm::MachineFunction::erase(), llvm::GlobalIFunc::eraseFromParent(), llvm::GlobalAlias::eraseFromParent(), llvm::Instruction::eraseFromParent(), llvm::GlobalVariable::eraseFromParent(), llvm::BasicBlock::eraseFromParent(), llvm::Module::eraseNamedMetadata(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), OptimizeGlobalAliases(), promoteSingleBlockAlloca(), llvm::ReplaceInstWithValue(), RewriteUsesOfLoadForHeapSRoA(), llvm::runIPSCCP(), SRAGlobal(), llvm::UnrollLoop(), updateForIncomingValueLocation(), and llvm::MachineFunction::~MachineFunction().
|
inline |
Definition at line 270 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::erase().
|
inline |
Definition at line 271 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::erase().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 226 of file ilist.h.
Referenced by buildMultiplyTree(), calcArraySize(), CloneInstructionInExitBlock(), createCallHelper(), createCloneDeclaration(), createInvokeHelper(), llvm::NVPTXAsmPrinter::doFinalization(), doPromotion(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::MCObjectStreamer::flushPendingLabels(), FoldCondBranchOnPHI(), llvm::FoldReturnIntoUncondBranch(), llvm::IRBuilderBase::getCurrentFunctionReturnType(), getRetComponentType(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::MCContext::getWasmSection(), llvm::MCContext::getXCOFFSection(), llvm::GlobalVariable::GlobalVariable(), HoistThenElseCodeToIf(), llvm::MCObjectStreamer::insert(), llvm::MachineBasicBlock::insert(), llvm::MachineFunction::insert(), llvm::VPBasicBlock::insert(), llvm::Instruction::insertBefore(), llvm::IRBuilderDefaultInserter::InsertHelper(), llvm::BasicBlock::insertInto(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), llvm::InstCombiner::InsertNewInstBefore(), llvm::Instruction::Instruction(), OptimizeGlobalAddressOfMalloc(), removeGlobalCtors(), llvm::ReplaceInstWithInst(), llvm::InstCombiner::run(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), TryToShrinkGlobalToBoolean(), and llvm::InstCombiner::visitGetElementPtrInst().
|
inline |
|
inline |
|
inline |
Definition at line 235 of file ilist.h.
Referenced by llvm::Instruction::insertAfter(), llvm::MachineBasicBlock::insertAfter(), llvm::MachineBasicBlock::insertAfterBundle(), llvm::SlotIndexes::insertMBBInMaps(), and LLVMInsertExistingBasicBlockAfterInsertBlock().
|
inline |
|
inline |
|
inline |
Definition at line 353 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::merge().
|
delete |
|
inline |
|
inline |
Definition at line 316 of file ilist.h.
Referenced by llvm::DomTreeUpdater::callbackDeleteBB(), llvm::changeToInvokeAndSplitBasicBlock(), createCast(), llvm::InlineFunction(), llvm::MachineBasicBlock::pop_back(), and llvm::TryToSimplifyUncondBranchFromEmptyBlock().
|
inline |
Definition at line 312 of file ilist.h.
Referenced by llvm::changeToInvokeAndSplitBasicBlock(), llvm::MachineBasicBlock::pop_front(), and llvm::BasicBlock::removePredecessor().
|
inline |
Definition at line 311 of file ilist.h.
Referenced by assertBranchOrSelectConditionHoisted(), llvm::CloneAndPruneIntoFromInst(), llvm::CloneBasicBlock(), llvm::CloneFunction(), computeAddrSpace(), llvm::UnaryOperator::Create(), llvm::BinaryOperator::Create(), createMalloc(), llvm::CodeExtractor::findInputsOutputs(), llvm::FoldReturnIntoUncondBranch(), FunctionNumber(), llvm::GlobalIndirectSymbol::getBaseObject(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalVariable::GlobalVariable(), llvm::BasicBlock::insertInto(), insertLifetimeMarkersSurroundingCall(), llvm::Instruction::Instruction(), maybeSetDSOLocal(), llvm::MCFragment::MCFragment(), llvm::MemorySSA::OptimizeUses::optimizeUses(), llvm::MachineBasicBlock::push_back(), llvm::MachineFunction::push_back(), PushArgMD(), llvm::UnifyFunctionExitNodes::runOnFunction(), llvm::SlotIndexes::runOnMachineFunction(), llvm::GlobalAlias::setAliasee(), SRAGlobal(), StripSymbolNames(), llvm::JumpThreadingPass::ThreadEdge(), unifyReturnBlockSet(), llvm::UnrollAndJamLoop(), and llvm::UnrollLoop().
|
inline |
Definition at line 310 of file ilist.h.
Referenced by llvm::MachineFunction::push_front().
|
inline |
Definition at line 249 of file ilist.h.
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), insertLifetimeMarkersSurroundingCall(), 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(), and llvm::CallGraph::removeFunctionFromModule().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 327 of file ilist.h.
Referenced by llvm::cloneLoopWithPreheader(), llvm::createDeadArgHackingPass(), getRetComponentType(), llvm::hoistAllInstructionsInto(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), maybeSetDSOLocal(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::BasicBlock::moveAfter(), llvm::VPRecipeBase::moveAfter(), moveBBContents(), llvm::Instruction::moveBefore(), llvm::BasicBlock::moveBefore(), llvm::peelLoop(), SpeculativelyExecuteBB(), llvm::MachineFunction::splice(), llvm::MachineBasicBlock::splice(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), and unswitchTrivialBranch().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |