LLVM 22.0.0git
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 >:
[legend]

Public Member Functions

self_iterator getIterator ()
const_self_iterator getIterator () const
reverse_self_iterator getReverseIterator ()
const_reverse_self_iterator getReverseIterator () const
template<typename T = OptionsT>
std::enable_if_t< T::is_sentinel_tracking_explicit, boolisSentinel () const
 Check whether this is the sentinel node.
Public Member Functions inherited from llvm::ilist_detail::node_parent_access< ilist_node_impl< OptionsT >, OptionsT::parent_ty >
const OptionsT::parent_ty * getParent () const
void setParent (OptionsT::parent_ty *Parent)

Protected Types

using self_iterator
using const_self_iterator
using reverse_self_iterator
using const_reverse_self_iterator

Protected Member Functions

 ilist_node_impl ()=default

Friends

struct ilist_detail::NodeAccess
class ilist_sentinel< OptionsT >
class ilist_detail::node_parent_access< ilist_node_impl< OptionsT >, typename OptionsT::parent_ty >
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 70 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
protected
Initial value:
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, true>::type
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 103 of file ilist_node.h.

◆ const_self_iterator

template<class OptionsT>
using llvm::ilist_node_impl< OptionsT >::const_self_iterator
protected
Initial value:
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, true>::type
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 97 of file ilist_node.h.

◆ reverse_self_iterator

template<class OptionsT>
using llvm::ilist_node_impl< OptionsT >::reverse_self_iterator
protected
Initial value:
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
true, false>::type
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 100 of file ilist_node.h.

◆ self_iterator

template<class OptionsT>
using llvm::ilist_node_impl< OptionsT >::self_iterator
protected
Initial value:
typename ilist_select_iterator_type<OptionsT::has_iterator_bits, OptionsT,
false, false>::type
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/ADT/ilist_node.h.

Definition at line 94 of file ilist_node.h.

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 130 of file ilist_node.h.

Referenced by addAssumeNonNull(), addUnreachableAfterTryTables(), llvm::DbgValueRangeTable::addVariable(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::GCNSubtarget::adjustSchedDependency(), allocateFrameInCaller(), llvm::HexagonInstrInfo::analyzeBranch(), analyzeCompressibleUses(), llvm::AMDGPUCombinerHelper::applyFoldableFneg(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), areInstructionsConsecutive(), canFallThroughTo(), llvm::AAResults::canInstructionRangeModRef(), canRenameUntilSecondLoad(), canSplitCallSite(), llvm::cloneAndAdaptNoAliasScopes(), llvm::CloneAndPruneIntoFromInst(), cloneCfiPrologue(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::cloneLoopWithPreheader(), collectCallSiteParameters(), convertCalledGlobals(), convertFSqrtDivIntoFMul(), convertMetadataToAssumes(), ConvertShiftToMul(), copyMustTailReturn(), llvm::SPIRVGlobalRegistry::createConstFP(), llvm::SPIRVGlobalRegistry::createConstInt(), createCoroSave(), llvm::DbgLabelRecord::createDebugIntrinsic(), llvm::DbgVariableRecord::createDebugIntrinsic(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), llvm::InstCombinerImpl::CreateNonTerminatorUnreachable(), llvm::createPHIsForSplitLoopExit(), createRetBitCast(), llvm::RandomIRBuilder::createStackMemory(), createTileStore(), llvm::VPlan::createVPIRBasicBlock(), DoFlattenLoopPair(), DoLowering(), doPromotion(), llvm::DbgMarker::dropOneDbgRecord(), llvm::ARMBaseInstrInfo::duplicate(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::DuplicateInstructionsInSplitBetween(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), emitLoadM0FromVGPRLoop(), EmitLoweredCascadedSelect(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitReadCounterWidePseudo(), emitSelectPseudo(), emitSelectPseudo(), emitSelectPseudo(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitTargetTaskProxyFunction(), emitVecCondBranchPseudo(), llvm::VLIWPacketizerList::endPacket(), llvm::examineCFlagsUse(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::expandDivision(), llvm::VEInstrInfo::expandExtendStackPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::expandRemainder(), llvm::SparcTargetLowering::expandSelectCC(), expandVPWidenIntOrFpInduction(), expandVPWidenPointerInduction(), llvm::CodeExtractor::extractCodeRegion(), findDependencies(), findInitTrampolineFromBB(), findInsertPos(), findLiveSetAtInst(), llvm::ARMBlockPlacement::fixBackwardsWLS(), fixupBlock(), fixupDebugInfoPostExtraction(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), 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(), foldSelectZeroOrFixedOp(), foldShiftedShift(), getAllocaPos(), llvm::rdf::Liveness::getAllReachingDefs(), llvm::MachineLoop::getBottomBlock(), llvm::MemoryAccess::getDefsIterator(), llvm::MemoryAccess::getDefsIterator(), llvm::MemoryDependenceResults::getDependency(), getGatherLanePattern(), llvm::MemoryAccess::getIterator(), llvm::MemoryAccess::getIterator(), getNextNode(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getOrCreateUndef(), llvm::MachineLoop::getTopBlock(), llvm::GlobalVariable::GlobalVariable(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::LiveIntervals::handleMoveIntoNewBundle(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), hasCallsBetween(), hoist(), llvm::hoistAllInstructionsInto(), llvm::SCEVExpander::hoistIVInc(), hoistLockstepIdenticalDbgVariableRecords(), hoistPreviousBeforeFORUsers(), llvm::hoistRegion(), hoistValue(), INITIALIZE_PASS(), INITIALIZE_PASS(), injectPendingInvariantConditions(), llvm::InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::VPRecipeBase::insertAfter(), llvm::Instruction::insertBefore(), llvm::VPRecipeBase::insertBefore(), insertDAGNode(), insertDAGNode(), llvm::DIBuilder::insertDbgAssign(), llvm::DbgMarker::insertDbgRecord(), llvm::DbgMarker::insertDbgRecordAfter(), llvm::DIBuilder::insertDeclare(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::XtensaInstrInfo::insertIndirectBranch(), insertLifetimeMarkersSurroundingCall(), llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::SlotIndexes::insertMBBInMaps(), insertNewDbgInst(), llvm::BPFCoreSharedInfo::insertPassThrough(), insertRelocationStores(), insertRematerializationStores(), insertRememberRestorePair(), llvm::SIInstrInfo::insertSelect(), insertUniqueBackedgeBlock(), llvm::invertCondition(), isCopyOfBundle(), llvm::GIMatchTableExecutor::isObviouslySafeToFold(), llvm::isSafeToLoadUnconditionally(), isSafeToMove(), isSafeToSinkLoad(), llvm::isValidAssumeForContext(), jumpTableFollowsTB(), LLVMInsertExistingBasicBlockAfterInsertBlock(), LowerCallResults(), LowerFPToInt(), LowerMemcpy(), LowerMemset(), LowerNegateToMultiply(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::Loop::makeLoopInvariant(), llvm::coro::LowererBase::makeSubFnCall(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), mayBeVisibleThroughUnwinding(), MayContainThrowingOrExitingCallAfterCB(), llvm::MergeBlockIntoPredecessor(), mergeCompatibleInvokesImpl(), llvm::MachineBasicBlock::moveAfter(), moveBBContents(), llvm::BasicBlock::moveBefore(), llvm::MachineBasicBlock::moveBefore(), moveFunctionAdaptingType(), llvm::moveInstructionsToTheEnd(), MoveVPNOTBeforeFirstUser(), llvm::InstDeleterIRStrategy::mutate(), NegateValue(), llvm::RandomIRBuilder::newSource(), operandWithNewAddressSpaceOrCreatePoison(), llvm::SIInstrInfo::optimizeCompareInstr(), optimizeDivRem(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfAllocation(), optimizeSQRT(), llvm::peelLoop(), placeSplitBlockCarefully(), processAShr(), llvm::JumpThreadingPass::processBlock(), processCall(), llvm::JumpThreadingPass::processImpliedCondition(), processSDiv(), processSExt(), processSIToFP(), processSRem(), programUndefinedIfUndefOrPoison(), llvm::promoteCall(), llvm::promoteCallWithIfThenElse(), llvm::promoteLoopAccessesToScalars(), reinsertVectorIndexAdd(), rematerializeLiveValues(), rematerializeLiveValuesAtUses(), llvm::removeAllNonTerminatorAndEHPadInstructions(), removeGlobalCtors(), llvm::MemoryDependenceResults::removeInstruction(), llvm::DbgMarker::removeMarker(), RemovePreallocated(), llvm::SlotIndexes::repairIndexesInRange(), ReplaceCallWith(), replaceConstantExprOp(), replaceCoroEndAsync(), replaceExtractElements(), replaceGEPIdxWithZero(), llvm::replaceSignedInst(), reuseTableCompare(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), rewriteMaterializableInstructions(), rewritePHIs(), runImpl(), runImpl(), llvm::RewriteStatepointsForGC::runOnFunction(), llvm::CFIFixup::runOnMachineFunction(), runPass(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::VPBuilder::setInsertPoint(), llvm::setWidenableBranchCond(), llvm::SystemZRegisterInfo::shouldCoalesce(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), sinkAndCmp0Expression(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::SplitBlock(), llvm::SplitBlock(), splitBlock(), llvm::SplitBlockAndInsertIfElse(), llvm::SplitBlockAndInsertIfThen(), llvm::SplitBlockAndInsertIfThenElse(), llvm::SplitBlockAndInsertIfThenElse(), llvm::splitBlockBefore(), splitCallSite(), llvm::OutlinableRegion::splitCandidate(), splitEndLoopBB(), llvm::SplitKnownCriticalEdge(), SplitLandingPadPredecessorsImpl(), splitMBB(), swapBBContents(), transformRecipestoEVLRecipes(), tryToMoveFreeBeforeNullTest(), tryToReplaceWithGEPBuiltin(), tryToShorten(), TryToShrinkGlobalToBoolean(), turnGuardIntoBranch(), llvm::UnrollAndJamLoop(), llvm::UnrollLoop(), llvm::UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), updateGetPCBundle(), UpdatePHINodes(), llvm::updatePublicTypeTestCalls(), updateScopeLine(), llvm::UpgradeARCRuntime(), upgradeDbgIntrinsicToDbgRecord(), llvm::UpgradeIntrinsicCall(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), verifyCFIntrinsic(), versionCallSiteWithCond(), DataScalarizerVisitor::visitLoadInst(), and llvm::widenWidenableBranch().

◆ getIterator() [2/2]

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

Definition at line 131 of file ilist_node.h.

◆ getReverseIterator() [1/2]

◆ getReverseIterator() [2/2]

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

Definition at line 137 of file ilist_node.h.

◆ isSentinel()

template<class OptionsT>
template<typename T = OptionsT>
std::enable_if_t< T::is_sentinel_tracking_explicit, 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.

Rather than using static_assert to enforce the API is not called when configured with is_sentinel_tracking_explicit=false, the method is conditionally provided using std::enable_if. This way, clients of ilist_node_impl can be fully instantiated for DLLExport on Windows.

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

Definition at line 154 of file ilist_node.h.

◆ ilist_detail::node_parent_access< ilist_node_impl< OptionsT >, typename OptionsT::parent_ty >

template<class OptionsT>
friend class ilist_detail::node_parent_access< ilist_node_impl< OptionsT >, typename OptionsT::parent_ty >
friend

Definition at line 79 of file ilist_node.h.

◆ ilist_detail::NodeAccess

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

Definition at line 79 of file ilist_node.h.

◆ ilist_iterator< OptionsT, false, false >

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

Definition at line 79 of file ilist_node.h.

◆ ilist_iterator< OptionsT, false, true >

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

Definition at line 79 of file ilist_node.h.

◆ ilist_iterator< OptionsT, true, false >

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

Definition at line 79 of file ilist_node.h.

◆ ilist_iterator< OptionsT, true, true >

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

Definition at line 79 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 79 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 79 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 79 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 79 of file ilist_node.h.

◆ ilist_sentinel< OptionsT >

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

Definition at line 79 of file ilist_node.h.


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