LLVM 19.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]

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.
 

Protected Types

using self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, false >::type
 
using const_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, false, true >::type
 
using reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, false >::type
 
using const_reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, OptionsT, true, true >::type
 

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 >
 
class ilist_iterator_w_bits< OptionsT, false, false >
 
class ilist_iterator_w_bits< OptionsT, false, true >
 
class ilist_iterator_w_bits< OptionsT, true, false >
 
class ilist_iterator_w_bits< 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 54 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 = typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT, true, true>::type
protected

◆ const_self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::const_self_iterator = typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT, false, true>::type
protected

◆ reverse_self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::reverse_self_iterator = typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT, true, false>::type
protected

◆ self_iterator

template<class OptionsT >
using llvm::ilist_node_impl< OptionsT >::self_iterator = typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT, false, false>::type
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 109 of file ilist_node.h.

Referenced by llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::GCNSubtarget::adjustSchedDependency(), llvm::HexagonInstrInfo::analyzeBranch(), analyzeCompressibleUses(), AMDGPUCombinerHelper::applyFoldableFneg(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), AttemptToFoldSymbolOffsetDifference(), bbHasFallthrough(), BBHasFallthrough(), BreakUpSubtract(), canFallThroughTo(), llvm::AAResults::canInstructionRangeModRef(), canRenameUntilSecondLoad(), canSplitCallSite(), llvm::changeToCall(), llvm::cloneAndAdaptNoAliasScopes(), llvm::CloneAndPruneIntoFromInst(), CloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::cloneLoopWithPreheader(), llvm::MachineFunction::cloneMachineInstrBundle(), collectCallSiteParameters(), llvm::ConvertDebugDeclareToDebugValue(), ConvertShiftToMul(), copyMustTailReturn(), llvm::SplitAnalysis::countLiveBlocks(), createAndCollectMergePhiForReduction(), createCoroSave(), llvm::InnerLoopVectorizer::createInductionResumeValue(), llvm::PeelingModuloScheduleExpander::CreateLCSSAExitingBlock(), createMemMoveLoop(), llvm::InstCombinerImpl::CreateNonTerminatorUnreachable(), llvm::OpenMPIRBuilder::createParallel(), llvm::createPHIsForSplitLoopExit(), createRetBitCast(), llvm::OpenMPIRBuilder::createSections(), createTileStore(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), doPromotion(), llvm::DPMarker::dropOneDbgRecord(), llvm::ARMBaseInstrInfo::duplicate(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::OpenMPIRBuilder::emitBlock(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), emitFROUND(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), emitLoadM0FromVGPRLoop(), EmitLoweredCascadedSelect(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::PPCTargetLowering::emitProbedAlloca(), emitReadCounterWidePseudo(), emitSelectPseudo(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitVecCondBranchPseudo(), emitXBegin(), llvm::Function::eraseFromParent(), llvm::examineCFlagsUse(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::expandDivision(), llvm::VEInstrInfo::expandExtendStackPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::expandRemainder(), llvm::SparcTargetLowering::expandSelectCC(), llvm::OpenMPIRBuilder::finalize(), findDependencies(), findInitTrampolineFromBB(), findLiveSetAtInst(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), llvm::ARMBlockPlacement::fixBackwardsWLS(), foldInsSequenceIntoSplat(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), llvm::FoldReturnIntoUncondBranch(), foldSelectZeroOrMul(), getAllocaPos(), llvm::rdf::Liveness::getAllReachingDefs(), llvm::MachineLoop::getBottomBlock(), llvm::MemoryAccess::getDefsIterator(), llvm::MemoryDependenceResults::getDependency(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getFirstNonPHIOrDbgOrAlloca(), llvm::MemoryAccess::getIterator(), getNextBlock(), llvm::DbgRecord::getNextNode(), getNextNode(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::DbgRecord::getPrevNode(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::MachineLoop::getTopBlock(), handleADRP(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::LiveIntervals::handleMoveIntoNewBundle(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), hoist(), llvm::hoistAllInstructionsInto(), hoistLockstepIdenticalDPValues(), llvm::hoistRegion(), INITIALIZE_PASS(), injectPendingInvariantConditions(), llvm::InlineFunction(), inlineRetainOrClaimRVCalls(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::Instruction::insertAfter(), llvm::VPRecipeBase::insertAfter(), llvm::Instruction::insertBefore(), llvm::VPRecipeBase::insertBefore(), llvm::HexagonInstrInfo::insertBranch(), insertDAGNode(), llvm::DIBuilder::insertDbgAssign(), llvm::DPMarker::insertDbgRecord(), llvm::DPMarker::insertDbgRecordAfter(), insertDivByZeroTrap(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::BasicBlock::insertInto(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), insertNewDbgInst(), insertRelocationStores(), insertRematerializationStores(), llvm::SIInstrInfo::insertSelect(), insertSpills(), insertUniqueBackedgeBlock(), llvm::Instruction::Instruction(), isCopyOfBundle(), llvm::GIMatchTableExecutor::isObviouslySafeToFold(), llvm::isSafeToLoadUnconditionally(), isSafeToSinkLoad(), llvm::isValidAssumeForContext(), jumpTableFollowsTB(), LLVMInsertExistingBasicBlockAfterInsertBlock(), LowerCallResults(), LowerFPToInt(), LowerNegateToMultiply(), llvm::coro::LowererBase::makeSubFnCall(), markAliveBlocks(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), MayContainThrowingOrExitingCallAfterCB(), llvm::MergeBlockIntoPredecessor(), MergeCompatibleInvokesImpl(), llvm::BasicBlock::moveAfter(), llvm::Instruction::moveAfter(), llvm::MachineBasicBlock::moveAfter(), llvm::Instruction::moveAfterPreserving(), moveBBContents(), llvm::BasicBlock::moveBefore(), llvm::Instruction::moveBefore(), llvm::MachineBasicBlock::moveBefore(), llvm::Instruction::moveBeforePreserving(), moveFunctionAdaptingType(), MoveVPNOTBeforeFirstUser(), llvm::ShuffleBlockStrategy::mutate(), llvm::InstDeleterIRStrategy::mutate(), NegateValue(), llvm::SIInstrInfo::optimizeCompareInstr(), optimizeDivRem(), OptimizeGlobalAddressOfAllocation(), optimizeSQRT(), llvm::peelLoop(), placeSplitBlockCarefully(), llvm::AArch64InstrInfo::probedStackAlloc(), processAShr(), llvm::JumpThreadingPass::processBlock(), llvm::JumpThreadingPass::processImpliedCondition(), processSDiv(), processSExt(), processSRem(), programUndefinedIfUndefOrPoison(), llvm::promoteCall(), llvm::promoteLoopAccessesToScalars(), reinsertVectorIndexAdd(), llvm::removeAllNonTerminatorAndEHPadInstructions(), llvm::DbgRecord::removeFromParent(), llvm::Function::removeFromParent(), removeGlobalCtors(), llvm::MemoryDependenceResults::removeInstruction(), llvm::DPMarker::removeMarker(), RemovePreallocated(), llvm::MachineFunction::RenumberBlocks(), llvm::SlotIndexes::repairIndexesInRange(), ReplaceCallWith(), replaceExtractElements(), replaceGEPIdxWithZero(), llvm::replaceSignedInst(), replaceSubOverflowUses(), reuseTableCompare(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), rewritePHIs(), llvm::CFIFixup::runOnMachineFunction(), runPass(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::VPBuilder::setInsertPoint(), llvm::SystemZRegisterInfo::shouldCoalesce(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), split(), llvm::SplitBlock(), splitBlock(), llvm::SplitBlockAndInsertIfElse(), llvm::SplitBlockAndInsertIfThen(), llvm::SplitBlockAndInsertIfThenElse(), llvm::splitBlockBefore(), splitCallSite(), llvm::OutlinableRegion::splitCandidate(), llvm::SplitKnownCriticalEdge(), SplitLandingPadPredecessorsImpl(), splitMBB(), tryToShorten(), TryToShrinkGlobalToBoolean(), llvm::UnrollAndJamLoop(), llvm::UnrollLoop(), llvm::UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), updateBranches(), UpdatePHINodes(), llvm::updatePublicTypeTestCalls(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), verifyCFIntrinsic(), and llvm::InstCombinerImpl::visitCallInst().

◆ getIterator() [2/2]

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

Definition at line 110 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 116 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 127 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 60 of file ilist_node.h.

◆ ilist_iterator< OptionsT, false, false >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator< OptionsT, false, true >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator< OptionsT, true, false >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator< OptionsT, true, true >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator_w_bits< OptionsT, false, false >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator_w_bits< OptionsT, false, true >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator_w_bits< OptionsT, true, false >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_iterator_w_bits< OptionsT, true, true >

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

Definition at line 60 of file ilist_node.h.

◆ ilist_sentinel< OptionsT >

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

Definition at line 60 of file ilist_node.h.


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