LLVM
8.0.1
|
Implementation for an ilist node. More...
#include "llvm/ADT/ilist_node.h"
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 | |
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 40 of file ilist_node.h.
|
protected |
Definition at line 57 of file ilist_node.h.
|
protected |
Definition at line 55 of file ilist_node.h.
|
protected |
Definition at line 56 of file ilist_node.h.
|
protected |
Definition at line 54 of file ilist_node.h.
|
protecteddefault |
|
inline |
Definition at line 82 of file ilist_node.h.
Referenced by addExclusiveRegPair(), llvm::HexagonPacketizerList::addToPacket(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::analyzeArguments(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::VPWidenRecipe::appendInstruction(), assertBranchOrSelectConditionHoisted(), BBHasFallthrough(), canFallThroughTo(), canInstrSubstituteCmpInstr(), llvm::AAResults::canInstructionRangeModRef(), canMoveInstsAcrossMemOp(), canSplitCallSite(), llvm::TailDuplicator::canTailDuplicate(), changeFCMPPredToAArch64CC(), llvm::changeToInvokeAndSplitBasicBlock(), llvm::changeToUnreachable(), cheapToScalarize(), llvm::X86InstrInfo::classifyLEAReg(), llvm::SplitAnalysis::clear(), clearKillFlags(), llvm::CloneAndPruneIntoFromInst(), CloneLoop(), llvm::cloneLoopWithPreheader(), llvm::MachineFunction::CloneMachineInstrBundle(), CompareMBBNumbers(), ComputeCommonTailLength(), computeValueLLTs(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), copyMustTailReturn(), llvm::SplitAnalysis::countLiveBlocks(), createBBSelectReg(), createCallInst(), llvm::createCodeGenPreparePass(), llvm::createObjCARCOptPass(), createPHIsForCMOVsInSinkBB(), CreatePrologue(), createRetBitCast(), llvm::createScalarizerPass(), deleteDeadInstruction(), llvm::SelectionDAG::DeleteNode(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), llvm::HexagonFrameLowering::determineCalleeSaves(), doCallSiteSplitting(), doPromotion(), llvm::GVNExpression::Expression::dump(), llvm::ARMBaseInstrInfo::duplicate(), eliminateDeadStores(), EmitAddTreeOfValues(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::AsmPrinter::emitCFIInstruction(), emitClzero(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), EmitHiLo(), llvm::HexagonAsmPrinter::EmitInstruction(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), emitLoadM0FromVGPRLoop(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostSt(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), llvm::VLIWPacketizerList::endPacket(), llvm::Module::eraseNamedMetadata(), llvm::SCEVExpander::expandCodeFor(), llvm::expandDivision(), llvm::Mips16InstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::expandRemainder(), llvm::SparcTargetLowering::expandSelectCC(), llvm::HexagonInstrInfo::expandVGatherPseudo(), llvm::objcarc::FindDependencies(), findInitTrampolineFromBB(), findInsertPointAfter(), findLiveSetAtInst(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), findRetainForStoreStrongContraction(), findSingleRegDef(), findTRECandidate(), first_use_of_in_block(), fixPhis(), llvm::AMDGPULibCalls::fold(), llvm::FoldBranchToCommonDest(), llvm::FoldReturnIntoUncondBranch(), getBundledUseMI(), getContiguousRangeOfSetBits(), llvm::MemoryDependenceResults::getDependency(), llvm::BasicBlock::getFirstInsertionPt(), llvm::SIInstrInfo::getInstBundleSize(), llvm::SlotIndexes::getInstructionIndex(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), getLiveRegsAt(), getNewValueJumpOpcode(), getNextBlock(), llvm::SlotIndexes::getNextNonNullIndex(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), llvm::ARMBaseInstrInfo::getOperandLatency(), getRegClassForUnfoldedLoad(), getRetComponentType(), getRetpolineSymbol(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::MachineLoop::getTopBlock(), getTrueOrFalseValue(), getUnconditionalBrDisp(), llvm::GlobalVariable::GlobalVariable(), llvm::guessSuccessors(), llvm::MipsTargetLowering::HandleByVal(), handleFree(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::HexagonInstrInfo::hasLoadFromStackSlot(), llvm::HexagonInstrInfo::hasStoreToStackSlot(), hasUndefContents(), hasZeroSignBit(), llvm::hoistAllInstructionsInto(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::X86FrameLowering::inlineStackProbe(), llvm::MIBundleBuilder::insert(), llvm::Instruction::insertAfter(), llvm::Instruction::insertBefore(), llvm::VPRecipeBase::insertBefore(), llvm::HexagonInstrInfo::insertBranch(), insertDAGNode(), llvm::BasicBlock::insertInto(), llvm::SlotIndexes::insertMBBInMaps(), llvm::InstCombiner::InsertNewInstBefore(), llvm::SIInstrInfo::insertSelect(), insertUseHolderAfter(), llvm::Instruction::Instruction(), isAlwaysFoldable(), isCopy(), isEFLAGSLive(), isFunctionEntryBlock(), llvm::MachineInstr::isIdenticalTo(), isImmValidForOpcode(), isInRage(), isKnownTypeIdMember(), isLiveOut(), isMergeableLdStUpdate(), isNopCopy(), isObjectDereferencedInBlock(), llvm::InstructionSelector::isObviouslySafeToFold(), llvm::isPotentiallyReachable(), llvm::ARMBaseInstrInfo::isPredicated(), isRegUsedByPhiNodes(), isSafeAndProfitableToSinkLoad(), llvm::isSafeToLoadUnconditionally(), isZero(), jumpTableFollowsTB(), LLVMPositionBuilderBefore(), llvm::log2(), LowerFPToInt(), llvm::MachineOperandIteratorBase::MachineOperandIteratorBase(), makeImplicit(), matchPair(), matchSwap(), mayUsePostIncMode(), mergeCleanupPad(), llvm::Instruction::moveAfter(), llvm::BasicBlock::moveAfter(), llvm::MachineBasicBlock::moveAfter(), MoveAndTeeForMultiUse(), moveBBContents(), llvm::Instruction::moveBefore(), llvm::BasicBlock::moveBefore(), llvm::MachineBasicBlock::moveBefore(), moveInstrOut(), moveUp(), llvm::InstDeleterIRStrategy::mutate(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator*(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), operator<<(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfMalloc(), optimizeSQRT(), optimizeVcndVcmpPair(), packCmovGroup(), llvm::peelLoop(), PerformHeapAllocSRoA(), performMaskedAtomicOp(), placeSplitBlockCarefully(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::programUndefinedIfFullPoison(), propagateMetadata(), readsVCCZ(), registerDefinedBetween(), regOverlapsSet(), llvm::removeAllNonTerminatorAndEHPadInstructions(), removeEmptyCleanup(), removeExternalCFGEdges(), removeGlobalCtors(), llvm::MemoryDependenceResults::removeInstruction(), llvm::SlotIndexes::removeSingleMachineInstrFromMaps(), llvm::MachineFunction::RenumberBlocks(), ReplaceCallWith(), llvm::InstCombiner::run(), salvageDebugInfoFromEmptyBlock(), llvm::IRBuilderBase::SetInsertPoint(), llvm::MachineIRBuilder::setInstr(), shouldKeepFDivF32(), shouldReorderOperands(), SimplifyBranchOnICmpChain(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SpeculativelyExecuteBB(), split(), llvm::BasicBlock::splitBasicBlock(), llvm::SplitBlock(), splitBlock(), llvm::SplitBlockAndInsertIfThen(), llvm::SplitBlockAndInsertIfThenElse(), splitCallSite(), llvm::SplitCriticalEdge(), trySequenceOfOnes(), TryToMergeLandingPad(), TryToShrinkGlobalToBoolean(), TryToSinkInstruction(), llvm::UnrollRuntimeLoopRemainder(), llvm::UpgradeIntrinsicCall(), llvm::InstCombiner::visitStoreInst(), and llvm::VPWidenRecipe::VPWidenRecipe().
|
inline |
Definition at line 83 of file ilist_node.h.
|
inline |
Definition at line 85 of file ilist_node.h.
Referenced by splitCallSite().
|
inline |
Definition at line 89 of file ilist_node.h.
|
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.
Definition at line 100 of file ilist_node.h.
|
friend |
Definition at line 46 of file ilist_node.h.
|
friend |
Definition at line 48 of file ilist_node.h.
|
friend |
Definition at line 49 of file ilist_node.h.
|
friend |
Definition at line 50 of file ilist_node.h.
|
friend |
Definition at line 51 of file ilist_node.h.
|
friend |
Definition at line 47 of file ilist_node.h.