LLVM
8.0.1
|
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 309 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 280 of file ilist.h.
Referenced by llvm::SlotIndexes::~SlotIndexes().
|
inline |
|
inline |
Definition at line 267 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::SlotIndexes::eraseIndex(), llvm::Module::eraseNamedMetadata(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), OptimizeGlobalAliases(), promoteSingleBlockAlloca(), llvm::removeUnreachableBlocks(), llvm::ReplaceInstWithValue(), RewriteUsesOfLoadForHeapSRoA(), llvm::runIPSCCP(), SRAGlobal(), llvm::UnrollLoop(), updateForIncomingValueLocation(), and llvm::MachineFunction::~MachineFunction().
|
inline |
Definition at line 272 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::erase().
|
inline |
Definition at line 273 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 228 of file ilist.h.
Referenced by buildMultiplyTree(), CloneInstructionInExitBlock(), createCallHelper(), createInvokeHelper(), llvm::NVPTXAsmPrinter::doFinalization(), doPromotion(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::MCObjectStreamer::flushPendingLabels(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::FoldReturnIntoUncondBranch(), llvm::IRBuilderBase::getCurrentFunctionReturnType(), getRetComponentType(), llvm::MCSection::getSubsectionInsertionPoint(), llvm::MCContext::getWasmSection(), 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(), false::LibCallsShrinkWrap::perform(), removeGlobalCtors(), llvm::ReplaceInstWithInst(), llvm::InstCombiner::run(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), TryToShrinkGlobalToBoolean(), and llvm::InstCombiner::visitGetElementPtrInst().
|
inline |
|
inline |
|
inline |
Definition at line 237 of file ilist.h.
Referenced by llvm::Instruction::insertAfter(), llvm::MachineBasicBlock::insertAfter(), and llvm::SlotIndexes::insertMBBInMaps().
|
inline |
|
inline |
|
inline |
Definition at line 355 of file ilist.h.
Referenced by llvm::iplist_impl< simple_ilist< MachineInstr, Options... >, ilist_traits< MachineInstr > >::merge().
|
delete |
|
inline |
|
inline |
Definition at line 318 of file ilist.h.
Referenced by llvm::DomTreeUpdater::callbackDeleteBB(), llvm::changeToInvokeAndSplitBasicBlock(), createCast(), llvm::foldBlockIntoPredecessor(), llvm::InlineFunction(), llvm::MergeBlockIntoPredecessor(), llvm::MachineBasicBlock::pop_back(), and llvm::TryToSimplifyUncondBranchFromEmptyBlock().
|
inline |
Definition at line 314 of file ilist.h.
Referenced by llvm::changeToInvokeAndSplitBasicBlock(), eliminateUnreachableBlock(), llvm::MachineBasicBlock::pop_front(), and llvm::BasicBlock::removePredecessor().
|
inline |
Definition at line 313 of file ilist.h.
Referenced by assertBranchOrSelectConditionHoisted(), llvm::CloneAndPruneIntoFromInst(), llvm::CloneBasicBlock(), llvm::CloneFunction(), computeAddrSpace(), llvm::BinaryOperator::Create(), llvm::UnaryOperator::Create(), createMalloc(), llvm::createScalarizerPass(), llvm::SlotIndexes::eraseIndex(), llvm::CodeExtractor::findInputsOutputs(), llvm::FoldReturnIntoUncondBranch(), FunctionNumber(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalIndirectSymbol::GlobalIndirectSymbol(), llvm::GlobalVariable::GlobalVariable(), llvm::BasicBlock::insertInto(), 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(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), unifyReturnBlockSet(), llvm::UnrollAndJamLoop(), and llvm::UnrollLoop().
|
inline |
Definition at line 312 of file ilist.h.
Referenced by llvm::MachineFunction::push_front().
|
inline |
Definition at line 251 of file ilist.h.
Referenced by llvm::NVPTXAsmPrinter::doFinalization(), llvm::SlotIndexes::eraseIndex(), llvm::CodeExtractor::findInputsOutputs(), 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 329 of file ilist.h.
Referenced by CloneLoop(), llvm::createDeadArgHackingPass(), llvm::foldBlockIntoPredecessor(), getRetComponentType(), llvm::hoistAllInstructionsInto(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), insertUniqueBackedgeBlock(), maybeSetDSOLocal(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), llvm::BasicBlock::moveAfter(), moveBBContents(), llvm::Instruction::moveBefore(), llvm::BasicBlock::moveBefore(), llvm::peelLoop(), ReplaceUsesOfWith(), SpeculativelyExecuteBB(), llvm::MachineFunction::splice(), llvm::MachineBasicBlock::splice(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), and unswitchTrivialBranch().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |