LLVM  14.0.0git
Public Member Functions | Protected Types | Protected Member Functions | Friends | List of all members
llvm::ilist_node_impl< OptionsT > Class Template Reference

Implementation for an ilist node. More...

#include "llvm/ADT/ilist_node.h"

Inheritance diagram for llvm::ilist_node_impl< OptionsT >:
Inheritance graph
[legend]
Collaboration diagram for llvm::ilist_node_impl< OptionsT >:
Collaboration graph
[legend]

Public Member Functions

self_iterator getIterator ()
 
const_self_iterator getIterator () const
 
reverse_self_iterator getReverseIterator ()
 
const_reverse_self_iterator getReverseIterator () const
 
bool isSentinel () const
 Check whether this is the sentinel node. More...
 

Protected Types

using self_iterator = ilist_iterator< OptionsT, false, false >
 
using const_self_iterator = ilist_iterator< OptionsT, false, true >
 
using reverse_self_iterator = ilist_iterator< OptionsT, true, false >
 
using const_reverse_self_iterator = ilist_iterator< OptionsT, true, true >
 

Protected Member Functions

 ilist_node_impl ()=default
 

Friends

struct ilist_detail::NodeAccess
 
class ilist_sentinel< OptionsT >
 
class ilist_iterator< OptionsT, false, false >
 
class ilist_iterator< OptionsT, false, true >
 
class ilist_iterator< OptionsT, true, false >
 
class ilist_iterator< OptionsT, true, true >
 

Detailed Description

template<class OptionsT>
class llvm::ilist_node_impl< OptionsT >

Implementation for an ilist node.

Templated on an appropriate ilist_detail::node_options, usually computed by ilist_detail::compute_node_options.

This is a wrapper around ilist_node_base whose main purpose is to provide type safety: you can't insert nodes of ilist_node_impl into the wrong simple_ilist or iplist.

Definition at line 39 of file ilist_node.h.

Member Typedef Documentation

◆ const_reverse_self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::const_reverse_self_iterator = ilist_iterator<OptionsT, true, true>
protected

◆ const_self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::const_self_iterator = ilist_iterator<OptionsT, false, true>
protected

◆ reverse_self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::reverse_self_iterator = ilist_iterator<OptionsT, true, false>
protected

◆ self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::self_iterator = ilist_iterator<OptionsT, false, false>
protected

Constructor & Destructor Documentation

◆ ilist_node_impl()

template<class OptionsT >
llvm::ilist_node_impl< OptionsT >::ilist_node_impl ( )
protecteddefault

Member Function Documentation

◆ getIterator() [1/2]

template<class OptionsT >
self_iterator llvm::ilist_node_impl< OptionsT >::getIterator ( )
inline
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 81 of file ilist_node.h.

Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::GCNSubtarget::adjustSchedDependency(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), BBHasFallthrough(), canFallThroughTo(), llvm::AAResults::canInstructionRangeModRef(), canSplitCallSite(), llvm::cloneAndAdaptNoAliasScopes(), llvm::CloneAndPruneIntoFromInst(), CloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::cloneLoopWithPreheader(), llvm::MachineFunction::CloneMachineInstrBundle(), collectCallSiteParameters(), copyMustTailReturn(), llvm::SplitAnalysis::countLiveBlocks(), llvm::PeelingModuloScheduleExpander::CreateLCSSAExitingBlock(), llvm::OpenMPIRBuilder::createParallel(), createRetBitCast(), llvm::OpenMPIRBuilder::createStaticWorkshareLoop(), createTileStore(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), llvm::ARMBaseInstrInfo::duplicate(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitLoadM0FromVGPRLoop(), llvm::PPCTargetLowering::emitProbedAlloca(), emitSelectPseudo(), emitXBegin(), llvm::Module::eraseNamedMetadata(), examineCFlagsUse(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::expandDivision(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::expandRemainder(), llvm::OpenMPIRBuilder::finalize(), findDependencies(), findInitTrampolineFromBB(), findLiveSetAtInst(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::ARMBlockPlacement::fixBackwardsWLS(), llvm::AMDGPULibCalls::fold(), llvm::FoldReturnIntoUncondBranch(), for(), getAllocaPos(), llvm::MemoryDependenceResults::getDependency(), llvm::BasicBlock::getFirstInsertionPt(), getNextBlock(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::MachineLoop::getTopBlock(), llvm::GlobalVariable::GlobalVariable(), handleADRP(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::LiveIntervals::handleMoveIntoNewBundle(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::hoistAllInstructionsInto(), INITIALIZE_PASS(), llvm::InlineFunction(), inlineRetainOrClaimRVCalls(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::Instruction::insertAfter(), llvm::VPRecipeBase::insertAfter(), llvm::Instruction::insertBefore(), llvm::VPRecipeBase::insertBefore(), llvm::HexagonInstrInfo::insertBranch(), insertDAGNode(), llvm::BasicBlock::insertInto(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), llvm::InstCombinerImpl::InsertNewInstBefore(), llvm::InstCombiner::InsertNewInstBefore(), llvm::BPFCoreSharedInfo::insertPassThrough(), llvm::SIInstrInfo::insertSelect(), llvm::Instruction::Instruction(), llvm::InstructionSelector::isObviouslySafeToFold(), isSafeAndProfitableToSinkLoad(), llvm::isSafeToLoadUnconditionally(), jumpTableFollowsTB(), LLVMInsertExistingBasicBlockAfterInsertBlock(), LowerCallResults(), matchSwap(), llvm::Instruction::moveAfter(), llvm::BasicBlock::moveAfter(), llvm::MachineBasicBlock::moveAfter(), moveBBContents(), llvm::Instruction::moveBefore(), llvm::BasicBlock::moveBefore(), llvm::MachineBasicBlock::moveBefore(), MoveVPNOTBeforeFirstUser(), llvm::InstDeleterIRStrategy::mutate(), optimizeDivRem(), OptimizeGlobalAddressOfMalloc(), optimizeSQRT(), llvm::peelLoop(), placeSplitBlockCarefully(), llvm::recomputeVPTBlockMask(), reinsertVectorIndexAdd(), llvm::removeAllNonTerminatorAndEHPadInstructions(), removeGlobalCtors(), llvm::MachineFunction::RenumberBlocks(), ReplaceCallWith(), llvm::ARMBlockPlacement::revertWhileToDo(), llvm::InstCombinerImpl::run(), llvm::MachineFunction::salvageCopySSA(), split(), splitBlock(), llvm::SplitBlockAndInsertIfThenElse(), SplitBlockAndInsertIfThenImpl(), llvm::splitBlockBefore(), SplitBlockImpl(), splitCallSite(), llvm::SplitKnownCriticalEdge(), splitMBB(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UnrollRuntimeLoopRemainder(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), and verifyCFIntrinsic().

◆ getIterator() [2/2]

template<class OptionsT >
const_self_iterator llvm::ilist_node_impl< OptionsT >::getIterator ( ) const
inline

Definition at line 82 of file ilist_node.h.

◆ getReverseIterator() [1/2]

template<class OptionsT >
reverse_self_iterator llvm::ilist_node_impl< OptionsT >::getReverseIterator ( )
inline

◆ getReverseIterator() [2/2]

template<class OptionsT >
const_reverse_self_iterator llvm::ilist_node_impl< OptionsT >::getReverseIterator ( ) const
inline

Definition at line 88 of file ilist_node.h.

◆ isSentinel()

template<class OptionsT >
bool llvm::ilist_node_impl< OptionsT >::isSentinel ( ) const
inline

Check whether this is the sentinel node.

This requires sentinel tracking to be explicitly enabled. Use the ilist_sentinel_tracking<true> option to get this API.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 99 of file ilist_node.h.

Friends And Related Function Documentation

◆ ilist_detail::NodeAccess

template<class OptionsT >
friend struct ilist_detail::NodeAccess
friend

Definition at line 45 of file ilist_node.h.

◆ ilist_iterator< OptionsT, false, false >

template<class OptionsT >
friend class ilist_iterator< OptionsT, false, false >
friend

◆ ilist_iterator< OptionsT, false, true >

template<class OptionsT >
friend class ilist_iterator< OptionsT, false, true >
friend

◆ ilist_iterator< OptionsT, true, false >

template<class OptionsT >
friend class ilist_iterator< OptionsT, true, false >
friend

◆ ilist_iterator< OptionsT, true, true >

template<class OptionsT >
friend class ilist_iterator< OptionsT, true, true >
friend

◆ ilist_sentinel< OptionsT >

template<class OptionsT >
friend class ilist_sentinel< OptionsT >
friend

Definition at line 46 of file ilist_node.h.


The documentation for this class was generated from the following file: