LLVM 20.0.0git |
A templated base class forSmallPtrSet
which provides the typesafe interface that is common across all small sizes.More...
#include "llvm/ADT/SmallPtrSet.h"
Inheritsllvm::SmallPtrSetImplBase.
Inherited byllvm::SmallPtrSet< BasicBlockT *, 8 >,llvm::SmallPtrSet< const BasicBlock *, 8 >,llvm::SmallPtrSet< const BasicBlockT *, 32 >,llvm::SmallPtrSet< const MachineBasicBlock *, 8 >,llvm::SmallPtrSet< typename GraphTraits< std::conditional_t< IsConst, const BlockT, BlockT > * >::NodeRef, 8 >,llvm::SmallPtrSet< PointeeType *, N >,llvm::SmallPtrSet< typename GraphTraits< GraphT >::NodeRef >,llvm::SmallPtrSet< typename GraphTraits< T >::NodeRef, 8 >,llvm::SmallPtrSet< typename GraphTraits< GraphT >::NodeRef, 8 >,llvm::SmallPtrSet< NodeRef, 8 >,llvm::SmallPtrSet< const MDNode *, 8 >,llvm::SmallPtrSet< Instruction *, 4 >,llvm::SmallPtrSet< llvm::MachineBasicBlock *, 16 >,llvm::SmallPtrSet< llvm::LiveRange *, 8 >,llvm::SmallPtrSet< const llvm::AllocaInst *, 8 >,llvm::SmallPtrSet< CallBase *, 2 >,llvm::SmallPtrSet< AssumeInst *, 4 >,llvm::SmallPtrSet< const MachineInstr *, 16 >,llvm::SmallPtrSet< const llvm::GlobalVariable *, 2 >,llvm::SmallPtrSet< const llvm::GlobalVariable *, 1 >,llvm::SmallPtrSet< llvm::BasicBlock *, 8 >,llvm::SmallPtrSet< const llvm::Value *, 16 >,llvm::SmallPtrSet< const llvm::MachineBasicBlock *, 2 >,llvm::SmallPtrSet< llvm::Function *, 16 >,llvm::SmallPtrSet< llvm::GlobalObject *, 2 >,llvm::SmallPtrSet< llvm::Value *, 4 >,llvm::SmallPtrSet< const llvm::MDNode *, 32 >,llvm::SmallPtrSet< llvm::Instruction *, 32 >,llvm::SmallPtrSet< llvm::Use *, 16 >,llvm::SmallPtrSet< const MDNode *, 4 >,llvm::SmallPtrSet< llvm::GlobalVariable *, 8 >,llvm::SmallPtrSet< llvm::Constant *, 8 >,llvm::SmallPtrSet< llvm::GlobalValue *, 4 >,llvm::SmallPtrSet< const llvm::DbgDeclareInst *, 8 >,llvm::SmallPtrSet< const llvm::DbgVariableRecord *, 8 >,llvm::SmallPtrSet< llvm::Function *, 32 >,llvm::SmallPtrSet< llvm::MachineInstr *, 4 >,llvm::SmallPtrSet< const BlockT *, 4 >,llvm::SmallPtrSet< const BlockT *, 32 >,llvm::SmallPtrSet< const CycleT *, 16 >,llvm::SmallPtrSet< const InstructionT *, 32 >,llvm::SmallPtrSet< llvm::GlobalValue *, 32 >,llvm::SmallPtrSet< const llvm::GlobalValue *, 8 >,llvm::SmallPtrSet< const Loop *, 2 >,llvm::SmallPtrSet< llvm::Instruction *, 16 >,llvm::SmallPtrSet< const llvm::Value *, 32 >,llvm::SmallPtrSet< const llvm::Function *, 8 >,llvm::SmallPtrSet< llvm::InterleaveGroup< llvm::Instruction > *, 4 >,llvm::SmallPtrSet< llvm::Module *, 4 >,llvm::SmallPtrSet< llvm::MachineInstr *, 32 >,llvm::SmallPtrSet< const llvm::VNInfo *, 4 >,llvm::SmallPtrSet< const BlockT *, 8 >,llvm::SmallPtrSet< llvm::PHINode *, 4 >,llvm::SmallPtrSet< llvm::Type *, 16 >,llvm::SmallPtrSet< llvm::Instruction *, 4 >,llvm::SmallPtrSet< const PHINode *, 8 >,llvm::SmallPtrSet< const llvm::Instruction *, 8 >,llvm::SmallPtrSet< const llvm::MCSymbol *, 32 >,llvm::SmallPtrSet< Module *, 4 >,llvm::SmallPtrSet< const llvm::LazyCallGraph::Node *, 1 >,llvm::SmallPtrSet< llvm::MachineRegisterInfo::Delegate *, 1 >,llvm::SmallPtrSet< const llvm::BasicBlock *, 16 >,llvm::SmallPtrSet< const Value *, 8 >,llvm::SmallPtrSet< llvm::Instruction *, 8 >,llvm::SmallPtrSet< void *, 2 >,llvm::SmallPtrSet< llvm::AnalysisKey *, 2 >,llvm::SmallPtrSet< llvm::Value *, 16 >,llvm::SmallPtrSet< const llvm::SCEV *, 8 >,llvm::SmallPtrSet< llvm::BasicBlock *, 2 >,llvm::SmallPtrSet< const llvm::Type *, 4 >,llvm::SmallPtrSet< const llvm::Value *, 6 >,llvm::SmallPtrSet< const llvm::PHINode *, 6 >,llvm::SmallPtrSet< const llvm::SCEVAddRecExpr *, 16 >,llvm::SmallPtrSet< const llvm::Instruction *, 4 >,llvm::SmallPtrSet< llvm::BasicBlock *, 16 >,llvm::SmallPtrSet< llvm::MachineBasicBlock *, 8 >,llvm::SmallPtrSet< llvm::cl::SubCommand *, 1 >,llvm::SmallPtrSet< llvm::Use *, 8 >,llvm::SmallPtrSet< llvm::Instruction *, 2 >,llvm::SmallPtrSet< llvm::orc::JITDylib const *, 8 >,llvm::SmallPtrSet< Value *, 16 >, andllvm::SmallPtrSet< PtrType, SmallSize >.
Public Types | |
using | iterator =SmallPtrSetIterator< PtrType > |
using | const_iterator =SmallPtrSetIterator< PtrType > |
using | key_type = ConstPtrType |
using | value_type = PtrType |
![]() | |
using | size_type =unsigned |
Public Member Functions | |
SmallPtrSetImpl (constSmallPtrSetImpl &)=delete | |
std::pair<iterator,bool > | insert (PtrTypePtr) |
Inserts Ptr if and only if there is no element in the container equal to Ptr. | |
iterator | insert (iterator, PtrTypePtr) |
Insert the given pointer with an iterator hint that is ignored. | |
bool | erase (PtrTypePtr) |
Remove pointer from the set. | |
template<typename UnaryPredicate > | |
bool | remove_if (UnaryPredicateP) |
Remove elements that match the given predicate. | |
size_type | count (ConstPtrTypePtr)const |
count - Return 1 if the specified pointer is in the set, 0 otherwise. | |
iterator | find (ConstPtrTypePtr)const |
bool | contains (ConstPtrTypePtr)const |
template<typename IterT > | |
void | insert (IterTI, IterTE) |
void | insert (std::initializer_list< PtrType > IL) |
iterator | begin ()const |
iterator | end ()const |
![]() | |
SmallPtrSetImplBase & | operator= (constSmallPtrSetImplBase &)=delete |
bool | empty ()const |
size_type | size ()const |
size_type | capacity ()const |
void | clear () |
void | reserve (size_type NumEntries) |
![]() | |
void | incrementEpoch () |
Protected Member Functions | |
SmallPtrSetImplBase (const void **SmallStorage,constSmallPtrSetImplBase &that) | |
SmallPtrSetImplBase (const void **SmallStorage,unsigned SmallSize,const void **RHSSmallStorage,SmallPtrSetImplBase &&that) | |
SmallPtrSetImplBase (const void **SmallStorage,unsigned SmallSize) | |
![]() | |
SmallPtrSetImplBase (const void **SmallStorage,constSmallPtrSetImplBase &that) | |
SmallPtrSetImplBase (const void **SmallStorage,unsigned SmallSize,const void **RHSSmallStorage,SmallPtrSetImplBase &&that) | |
SmallPtrSetImplBase (const void **SmallStorage,unsigned SmallSize) | |
~SmallPtrSetImplBase () | |
const void ** | EndPointer ()const |
std::pair<const void *const *,bool > | insert_imp (const void *Ptr) |
insert_imp - This returns true if the pointer was new to the set, false if it was already in the set. | |
bool | erase_imp (const void *Ptr) |
erase_imp - If the set contains the specified pointer, remove it and return true, otherwise return false. | |
const void *const * | find_imp (const void *Ptr)const |
Returns the raw pointer needed to construct an iterator. | |
bool | contains_imp (const void *Ptr)const |
bool | isSmall ()const |
void | swap (const void **SmallStorage,const void **RHSSmallStorage,SmallPtrSetImplBase &RHS) |
swap - Swaps the elements of two sets. | |
void | copyFrom (const void **SmallStorage,constSmallPtrSetImplBase &RHS) |
void | moveFrom (const void **SmallStorage,unsigned SmallSize,const void **RHSSmallStorage,SmallPtrSetImplBase &&RHS) |
Additional Inherited Members | |
![]() | |
static void * | getTombstoneMarker () |
static void * | getEmptyMarker () |
![]() | |
const void ** | CurArray |
The current set of buckets, in either small or big representation. | |
unsigned | CurArraySize |
CurArraySize - The allocated size of CurArray, always a power of two. | |
unsigned | NumNonEmpty |
Number of elements in CurArray that contain a value or are a tombstone. | |
unsigned | NumTombstones |
Number of tombstones in CurArray. | |
bool | IsSmall |
Whether the set is in small representation. | |
A templated base class forSmallPtrSet
which provides the typesafe interface that is common across all small sizes.
This is particularly useful for passing around between interface boundaries to avoid encoding a particular small size in the interface boundary.
Definition at line363 of fileSmallPtrSet.h.
usingllvm::SmallPtrSetImpl< PtrType >::const_iterator =SmallPtrSetIterator<PtrType> |
Definition at line374 of fileSmallPtrSet.h.
usingllvm::SmallPtrSetImpl< PtrType >::iterator =SmallPtrSetIterator<PtrType> |
Definition at line373 of fileSmallPtrSet.h.
usingllvm::SmallPtrSetImpl< PtrType >::key_type = ConstPtrType |
Definition at line375 of fileSmallPtrSet.h.
usingllvm::SmallPtrSetImpl< PtrType >::value_type = PtrType |
Definition at line376 of fileSmallPtrSet.h.
| delete |
| inline |
Definition at line472 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::CurArray,llvm::SmallPtrSetImplBase::EndPointer(), andllvm::shouldReverseIterate().
Referenced bycollectInstructionsInBetween(),llvm::LoopVectorizationCostModel::collectValuesToIgnore(),ComputeLiveInBlocks(),convertFSqrtDivIntoFMul(),findBBsToSinkInto(),llvm::objcarc::findSingleDependency(),if(),isFSqrtDivToFMulLegal(),iterativelySimplifyCFG(),llvm::MergeBlockSuccessorsIntoGivenBlocks(),PeepholePPC64ZExtGather(),llvm::ARMConstantPoolConstant::promotedGlobals(),llvm::RecurrenceDescriptor::RecurrenceDescriptor(),llvm::SCCPSolver::removeNonFeasibleEdges(),llvm::AbstractDependenceGraphBuilder< GraphType >::simplify(),simplifyRecipe(), andllvm::LLVMContextImpl::~LLVMContextImpl().
| inline |
Definition at line458 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::contains_imp(), andPtr.
Referenced byAddAliasScopeMetadata(),llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(),llvm::InterleavedAccessInfo::analyzeInterleaving(),llvm::SampleProfileInference< FT >::apply(),llvm::ScalarEvolution::canReuseInstruction(),llvm::CloneAndPruneIntoFromInst(),clusterSortPtrAccesses(),collectPromotionCandidates(),llvm::InstCombiner::computeBackEdges(),llvm::ScalarEvolution::ExitLimit::ExitLimit(),llvm::filterDeadComdatFunctions(),llvm::findPHICopyInsertPoint(),llvm::memtag::forAllReachableExits(),gatherPossiblyVectorizableLoads(),llvm::LLVMContext::generateMachineFunctionNum(),generateNewInstTree(),llvm::SCEVExpander::getAllInsertedInstructions(),getAppleRuntimeUnrollPreferences(),llvm::MDNode::getMostGenericAliasScope(),llvm::GenericUniformityAnalysisImpl< ContextT >::hasDivergentTerminator(),llvm::hasPartialIVCondition(),llvm::PreservedAnalyses::intersect(),llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::isBBPendingDeletion(),isConstReg(),llvm::GenericUniformityAnalysisImpl< ContextT >::isDivergent(),llvm::slpvectorizer::BoUpSLP::isGathered(),AliasScopeTracker::isNoAliasScopeDeclDead(),llvm::slpvectorizer::BoUpSLP::isNotScheduled(),isReachableImpl(),llvm::ModifiedPostOrder< ContextT >::isReducibleCycleHeader(),mayLoopAccessLocation(),llvm::MergeBlockIntoPredecessor(),mergeReplicateRegionsIntoSuccessors(),peelToTurnInvariantLoadsDerefencebale(),preparePlanForMainVectorLoop(),llvm::refineInstruction(),llvm::SCCPSolver::removeNonFeasibleEdges(),removeUnreachableFunctions(),llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(),rewriteFunction(),llvm::LoopFullUnrollPass::run(),simplifyICmpUsingMonotonicValues(),StripSymbolNames(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),UpdatePHINodes(),ValidateMVEStore(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),llvm::ScalarEvolution::verify(), andvisit().
| inline |
count - Return 1 if the specified pointer is in the set, 0 otherwise.
Definition at line452 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::contains_imp(), andPtr.
Referenced byAddAliasScopeMetadata(),addArgumentAttrs(),llvm::MachineRegisterInfo::addDelegate(),llvm::RecurrenceDescriptor::AddReductionVar(),llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(),alwaysInlineImpl(),llvm::CodeMetrics::analyzeBasicBlock(),analyzeLoopUnrollCost(),llvm::SampleProfileInference< FT >::apply(),llvm::MemoryDepChecker::areDepsSafe(),bothUsedInPHI(),buildClonedLoops(),llvm::LoopVectorizationCostModel::calculateRegisterUsage(),llvm::LoopVectorizationLegality::canFoldTailByMasking(),CanPropagatePredecessorsForPHIs(),canProveExitOnFirstIteration(),CanRedirectPredsOfEmptyBBToSucc(),checkForCyclesHelper(),checkOuterLoopInsts(),checkPHIs(),collectCastInstrs(),collectLeaves(),llvm::DomTreeNodeBase< NodeT >::compare(),completeEphemeralValues(),ComputeLiveInBlocks(),llvm::computeMinimumValueSizes(),ComputePostOrders(),llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(),llvm::LoopBase< BlockT, LoopT >::contains(),llvm::WebAssemblyException::contains(),llvm::containsIrreducibleCFG(),llvm::OpenMPIRBuilder::createParallel(),deleteIfDead(),determinePointerAccessAttrs(),llvm::LiveRangeEdit::didRematerialize(),dominatesMergePoint(),llvm::SMSchedule::earliestCycleInChain(),llvm::EliminateUnreachableBlocks(),llvm::LoopVectorizationCostModel::expectedCost(),llvm::findAllocaForValue(),findBestInsertionSet(),findBestNonTrivialUnswitchCandidate(),findDependencies(),llvm::FindFunctionBackedges(),foldTwoEntryPHINode(),llvm::ReachingDefAnalysis::getGlobalUses(),llvm::ReachingDefAnalysis::getLiveOuts(),llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(),llvm::AArch64InstrInfo::getOutliningTypeImpl(),getSingleLiveInSuccBB(),llvm::slpvectorizer::BoUpSLP::getTreeCost(),getTrueOrFalseValue(),getUnwindDestToken(),llvm::RecurrenceDescriptor::hasMultipleUsesOf(),llvm::hasOutsideLoopUser(),llvm::SDNode::hasPredecessorHelper(),hasSameSuccessors(),InsertRootInitializers(),llvm::MDNode::intersect(),llvm::intersectAccessGroups(),isAllDILocation(),llvm::Loop::isAnnotatedParallel(),llvm::SCCPInstVisitor::isArgumentTrackedFunction(),llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::isBlockExecutable(),llvm::LoopVectorizationLegality::isCastedInductionVariable(),isDILocationReachable(),llvm::LoopVectorizationLegality::isFixedOrderRecurrence(),llvm::IVUsers::isIVUserOrOperand(),llvm::LiveVariables::isLiveOut(),isReachableAmongDominated(),isReachableImpl(),IsSafeAndProfitableToMove(),llvm::isSafeToUnrollAndJam(),isSuccOrder(),isUnmergeableGlobal(),llvm::SMSchedule::latestCycleInChain(),llvm::SelectionDAG::LegalizeOp(),LinearizeExprTree(),mayLoopAccessLocation(),moveHeaderPhiOperandsToForeBlocks(),llvm::SCCPInstVisitor::mustPreserveReturn(),llvm::mustTriggerUB(),llvm::nonStrictlyPostDominate(),optimizeLoopExitWithUnknownExitCount(),partitionLoopBlocks(),llvm::InstCombinerImpl::prepareWorklist(),llvm::PreservedAnalyses::PreservedAnalysisChecker::preserved(),llvm::PreservedAnalyses::PreservedAnalysisChecker::preservedSet(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processHeaderPhiOperands(),recomputeLoopBlockSet(),recordConditions(),llvm::objcopy::macho::Object::removeSections(),llvm::removeUnreachableBlocks(),llvm::SPIRVMergeRegionExitTargets::replaceBranchTargets(),llvm::replaceSignedInst(),llvm::MachineRegisterInfo::resetDelegate(),llvm::SCCPInstVisitor::resetLatticeValueFor(),rewriteDebugUsers(),llvm::MemDerefPrinterPass::run(),llvm::ModuleToPostOrderCGSCCPassAdaptor::run(),runImpl(),llvm::JumpThreadingPass::runImpl(),runMoveAutoInit(),llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(),llvm::BreakFalseDeps::runOnMachineFunction(),safeToMergeTerminators(),separateNestedLoop(),simplifyLoopInst(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),sink(),llvm::LoopNest::skipEmptyBlockUntil(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),sortBlocks(),splitPredecessorsOfLoopExit(),stripLoopMDLoc(),llvm::UnrollAndJamLoop(),updateCGAndAnalysisManagerForPass(),llvm::MemorySSAUpdater::updateForClonedLoop(),UpdatePHINodes(),updatePostorderSequenceForEdgeInsertion(),updatePredecessorProfileMetadata(),llvm::AssumptionCacheTracker::verifyAnalysis(),llvm::GenericCycle< ContextT >::verifyCycle(),llvm::MemorySSA::verifyDominationNumbers(),llvm::yaml::WebAssemblyFunctionInfo::WebAssemblyFunctionInfo(), andllvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().
| inline |
Definition at line477 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::EndPointer().
Referenced byllvm::LoopVectorizationCostModel::collectValuesToIgnore(),ComputeLiveInBlocks(),findBBsToSinkInto(),if(),iterativelySimplifyCFG(),peelToTurnInvariantLoadsDerefencebale(),PeepholePPC64ZExtGather(),llvm::ARMConstantPoolConstant::promotedGlobals(),llvm::RecurrenceDescriptor::RecurrenceDescriptor(), andllvm::AbstractDependenceGraphBuilder< GraphType >::simplify().
| inline |
Remove pointer from the set.
Returns whether the pointer was in the set. Invalidates iterators if true is returned. To remove elements while iterating over the set, useremove_if() instead.
Definition at line401 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::erase_imp(), andPtr.
Referenced byllvm::ARMFrameLowering::adjustForSegmentedStacks(),buildClonedLoops(),llvm::LoopVectorizationCostModel::calculateRegisterUsage(),checkForCyclesHelper(),collectInstructionsInBetween(),ComputePostOrders(),llvm::FindFunctionBackedges(),llvm::slpvectorizer::BoUpSLP::getSpillCost(),llvm::SelectionDAG::Legalize(),llvm::MergeBlockSuccessorsIntoGivenBlocks(),optimizeLoopExitWithUnknownExitCount(),llvm::LanaiInstrInfo::optimizeSelect(),llvm::ARMBaseInstrInfo::optimizeSelect(),llvm::RISCVInstrInfo::optimizeSelect(),rebuildLoopAfterUnswitch(),llvm::LoopBase< BlockT, LoopT >::removeBlockFromLoop(),llvm::WebAssemblyException::removeFromBlocksSet(),llvm::MachineRegisterInfo::resetDelegate(),llvm::AbstractDependenceGraphBuilder< GraphType >::simplify(),sinkCommonCodeFromPredecessors(), andllvm::MemorySSA::verifyDominationNumbers().
| inline |
Definition at line455 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::find_imp(), andPtr.
Referenced bypeelToTurnInvariantLoadsDerefencebale().
| inline |
Insert the given pointer with an iterator hint that is ignored.
This is identical to calling insert(Ptr), but allowsSmallPtrSet to be used by std::insert_iterator and std::inserter().
Definition at line392 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImpl< PtrType >::insert(), andPtr.
| inline |
Definition at line463 of fileSmallPtrSet.h.
ReferencesE,I, andllvm::SmallPtrSetImpl< PtrType >::insert().
| inline |
Inserts Ptr if and only if there is no element in the container equal to Ptr.
The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element equal to Ptr.
Definition at line384 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::insert_imp(), andPtr.
Referenced byAddAliasScopeMetadata(),llvm::AAExecutionDomain::ExecutionDomainTy::addAlignedBarrier(),addArgumentAttrs(),llvm::SCCPInstVisitor::addArgumentTrackedFunction(),llvm::AAExecutionDomain::ExecutionDomainTy::addAssumeInst(),llvm::WebAssemblyException::addBlock(),llvm::LoopBase< BlockT, LoopT >::addBlockEntry(),llvm::MachineRegisterInfo::addDelegate(),addFullyUnrolledInstructionsToIgnore(),llvm::AArch64FunctionInfo::addLOHDirective(),llvm::RecurrenceDescriptor::AddReductionVar(),llvm::WebAssemblyException::addToBlocksSet(),llvm::SCCPInstVisitor::addToMustPreserveReturnsInFunctions(),llvm::SCCPInstVisitor::addTrackedFunction(),llvm::IVUsers::AddUsersIfInteresting(),llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(),llvm::VPlanTransforms::adjustFixedOrderRecurrences(),llvm::ARMFrameLowering::adjustForSegmentedStacks(),llvm::PreservedAnalyses::all(),llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(),AllUsesOfValueWillTrapIfNull(),alwaysInlineImpl(),llvm::SPIRV::ConvergenceRegionAnalyzer::analyze(),analyzeGlobalAux(),llvm::InterleavedAccessInfo::analyzeInterleaving(),llvm::ModifiedPostOrder< ContextT >::appendBlock(),appendSpeculatableOperands(),llvm::MemoryDepChecker::areDepsSafe(),buildClonedLoopBlocks(),buildClonedLoops(),llvm::SampleProfileLoaderBaseImpl< FT >::buildEdges(),llvm::buildModuleSummaryIndex(),llvm::IDFCalculatorBase< NodeTy, IsPostDom >::calculate(),llvm::LoopVectorizationCostModel::calculateRegisterUsage(),llvm::DomTreeUpdater::callbackDeleteBB(),canFoldStoreIntoLibCallOutputPointers(),llvm::LoopVectorizationLegality::canFoldTailByMasking(),canonicalizePHIOperands(),canProveExitOnFirstIteration(),canRenameUntilSecondLoad(),canRenameUpToDef(),canReturn(),llvm::ScalarEvolution::canReuseInstruction(),llvm::PatternMatch::undef_match::check(),llvm::Attributor::checkForAllUses(),checkForCyclesHelper(),checkIfSupported(),checkMixedPrecision(),checkPHIs(),CleanupConstantGlobalUsers(),clearAssumptionsOfUsers(),llvm::CloneAndPruneIntoFromInst(),llvm::CloneFunctionInto(),clusterSortPtrAccesses(),llvm::OpenMPIRBuilder::OutlineInfo::collectBlocks(),collectCastInstrs(),llvm::CodeMetrics::collectEphemeralValues(),collectEscapedLocals(),collectHomogenousInstGraphLoopInvariants(),llvm::LoopVectorizationCostModel::collectInLoopReductions(),collectInstructionsInBetween(),collectLeaves(),collectMDInDomain(),collectPHINodes(),collectPromotionCandidates(),collectSRATypes(),collectTransitivePredecessors(),llvm::FunctionComparator::compare(),llvm::DomTreeNodeBase< NodeT >::compare(),completeEphemeralValues(),llvm::InstCombiner::computeBackEdges(),computeFunctionSummary(),computeHeuristicUnrollFactor(),ComputeLiveInBlocks(),llvm::computeMinimumValueSizes(),computePath(),ComputePostOrders(),computeUnlikelySuccessors(),llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(),ConstHasGlobalValuePredicate(),llvm::containsIrreducibleCFG(),llvm::SelectionDAG::copyExtraInfo(),llvm::AbstractDependenceGraphBuilder< GraphType >::createDefUseEdges(),llvm::DomTreeUpdater::deleteBB(),llvm::MachineDomTreeUpdater::deleteBB(),llvm::detachDeadBlocks(),determinePointerAccessAttrs(),llvm::AsmPrinter::doFinalization(),dominatesMergePoint(),DumpNodesr(),llvm::SMSchedule::earliestCycleInChain(),llvm::VETargetLowering::emitSjLjDispatchBlock(),llvm::Evaluator::EvaluateFunction(),llvm::ScalarEvolution::ExitLimit::ExitLimit(),llvm::filterDeadComdatFunctions(),llvm::DIBuilder::finalize(),finalizeLinkage(),llvm::SPIRVTargetLowering::finalizeLowering(),FindAllMemoryUses(),llvm::findAllocaForValue(),findArgParts(),findBBsToSinkInto(),findBestInsertionSet(),findBestNonTrivialUnswitchCandidate(),findDbgIntrinsics(),llvm::FindDebugInfoToIdentityMap(),findDependencies(),findExtractedOutputToOverallOutputMapping(),llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(),llvm::FindFunctionBackedges(),findLoopComponents(),llvm::HexagonInstrInfo::findLoopInstr(),findNonImmUse(),findPartitions(),llvm::findPHICopyInsertPoint(),findRefEdges(),FindUsedValues(),findUsedValues(),llvm::findValuesAffectedByCondition(),llvm::InstCombinerImpl::foldDeadPhiWeb(),llvm::InstCombinerImpl::foldFreezeIntoRecurrence(),foldMemChr(),llvm::memtag::forAllReachableExits(),forEachUser(),llvm::ScalarEvolution::forgetBlockAndLoopDispositions(),llvm::ScalarEvolution::forgetValue(),llvm::formDedicatedExitBlocks(),llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(),gatherPossiblyVectorizableLoads(),llvm::MCResourceInfo::gatherResourceInfo(),generateReproducer(),getAppleRuntimeUnrollPreferences(),llvm::Attributor::getAssumedSimplifiedValues(),getCallArgsTotalAllocaSize(),getEdgeKind(),llvm::BasicTTIImplBase< T >::getEstimatedNumberOfCaseClusters(),getFSqrtDivOptPattern(),llvm::ReachingDefAnalysis::getGlobalReachingDefs(),llvm::ReachingDefAnalysis::getGlobalUses(),llvm::ReachingDefAnalysis::getLiveOuts(),llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(),llvm::LexicalScopes::getMachineBasicBlocks(),llvm::MDNode::getMostGenericAliasScope(),llvm::MemoryDependenceResults::getNonLocalCallDependency(),llvm::BasicTTIImplBase< T >::getOperandsScalarizationOverhead(),getOutliningPenalty(),getPostIndexedLoadStoreOp(),llvm::slpvectorizer::BoUpSLP::getSpillCost(),GetStringLengthH(),llvm::AMDGPU::getTransitiveUsesOfLDS(),llvm::slpvectorizer::BoUpSLP::getTreeCost(),getTypeSizeImpl(),llvm::getUnderlyingObjectAggressive(),llvm::getUnderlyingObjects(),llvm::getUnderlyingObjectsForCodeGen(),llvm::getUniqueExitBlocksHelper(),getUnsignedMonotonicValues(),getUnwindDestToken(),llvm::slpvectorizer::BoUpSLP::getVectorElementSize(),llvm::guessSuccessors(),HandleInlinedLandingPad(),HandleMergeInputChains(),HasAddressTaken(),hasCFUser(),hasConcreteDef(),hasConcreteDefImpl(),hasHardUserWithinLoop(),llvm::hasPartialIVCondition(),llvm::SDNode::hasPredecessorHelper(),hoistPreviousBeforeFORUsers(),llvm::SmallPtrSetImpl< PtrType >::insert(),llvm::df_iterator_default_set< NodeRef, SmallSize >::insert(),llvm::MemorySSAUpdater::insertDef(),llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(),InsertIntrinsicCalls(),InsertRootInitializers(),isAllDILocation(),llvm::LazyCallGraph::RefSCC::isAncestorOf(),llvm::LazyCallGraph::SCC::isAncestorOf(),llvm::Loop::isAnnotatedParallel(),llvm::IsBlockFollowedByDeoptOrUnreachable(),isBlockValidForExtraction(),isConstReg(),isDereferenceableAndAlignedPointer(),isDILocationReachable(),isEphemeralValueOf(),llvm::RecurrenceDescriptor::isFixedOrderRecurrence(),llvm::isGuardAsWidenableBranch(),isHighCostExpansion(),isInertARCValue(),isKnownNonNullFromDominatingCondition(),llvm::LiveVariables::isLiveOut(),isNonEqualPHIs(),isNonEscapingGlobalNoAliasWithLoad(),isObjectSizeLessThanOrEq(),isOnlyCopiedFromConstantMemory(),isPotentiallyReachable(),isReachableAmongDominated(),isReachableImpl(),llvm::isSafeToDestroyConstant(),isSafeToMove(),llvm::isSafeToMoveBefore(),IsScalarTBAANodeImpl(),isSignExtendedW(),isSimpleEnoughValueToCommit(),llvm::sandboxir::Type::isSized(),IsStoredObjCPointer(),isSuccOrder(),isUniformlyReached(),iterativelySimplifyCFG(),llvm::SMSchedule::latestCycleInChain(),llvm::LazyCallGraph::LazyCallGraph(),llvm::SelectionDAG::Legalize(),llvm::SelectionDAG::LegalizeOp(),LinearizeExprTree(),lookThroughAnd(),llvm::LoopBase< BlockT, LoopT >::LoopBase(),markAliveBlocks(),MarkBlocksLiveIn(),llvm::ARMFunctionInfo::markGlobalAsPromotedToConstantPool(),llvm::LiveRangeEdit::markRematerialized(),llvm::CombinerHelper::matchExtendThroughPhis(),llvm::MergeBasicBlockIntoOnlyPred(),llvm::MergeBlockIntoPredecessor(),mergeConditionalStores(),mergeReplicateRegionsIntoSuccessors(),llvm::SelectionDAG::MorphNodeTo(),llvm::nonStrictlyPostDominate(),llvm::SmallPtrSet< PtrType, SmallSize >::operator=(),optimizeGlobalsInModule(),optimizeLoopExitWithUnknownExitCount(),llvm::LanaiInstrInfo::optimizeSelect(),llvm::ARMBaseInstrInfo::optimizeSelect(),llvm::Thumb2InstrInfo::optimizeSelect(),llvm::RISCVInstrInfo::optimizeSelect(),parseCondition(),partitionLoopBlocks(),partitionOuterLoopBlocks(),peelToTurnInvariantLoadsDerefencebale(),PeepholePPC64ZExtGather(),PerformMVEVLDCombine(),performNEONPostLDSTCombine(),performPostLD1Combine(),PHIsEqualValue(),preparePlanForMainVectorLoop(),llvm::InstCombinerImpl::prepareWorklist(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processBlockAddr(),processHeaderPhiOperands(),PushDefUseChildren(),PushLoopPHIs(),rebuildLoopAfterUnswitch(),recomputeLoopBlockSet(),recordConditions(),llvm::RecursivelyDeleteDeadPHINode(),recursivelyDeleteDeadRecipes(),recursivelyVisitUsers(),llvm::AssumptionCache::registerAssumption(),llvm::AMDGPU::removeFnAttrFromReachable(),llvm::SCCPSolver::removeNonFeasibleEdges(),llvm::objcopy::macho::Object::removeSections(),removeSwitchAfterSelectFold(),llvm::LiveRange::RenumberValues(),llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(),llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(),replaceLoopPHINodesWithPreheaderValues(),llvm::replaceSignedInst(),rewriteAccessChain(),llvm::SSAUpdaterBulk::RewriteAllUses(),rewriteDebugUsers(),rollbackRestoreSplit(),llvm::MemDerefPrinterPass::run(),llvm::LoopFullUnrollPass::run(),llvm::OpenMPOptPass::run(),llvm::HipStdParAcceleratorCodeSelectionPass::run(),runImpl(),llvm::JumpThreadingPass::runImpl(),runMoveAutoInit(),llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(),llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(),llvm::MCAssembler::setIsThumbFunc(),llvm::DbgVariableRecord::setKillLocation(),llvm::DbgVariableIntrinsic::setKillLocation(),setLoopComponents(),llvm::AbstractDependenceGraphBuilder< GraphType >::simplify(),simplifyLoopInst(),simplifyOneLoop(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyRecipe(),sink(),sinkCommonCodeFromPredecessors(),sinkInstruction(),sinkLifetimeStartMarkers(),sinkRecurrenceUsersAfterPrevious(),llvm::LoopNest::skipEmptyBlockUntil(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),llvm::SmallPtrSet< PtrType, SmallSize >::SmallPtrSet(),SoleWriteToDeadLocal(),sortOpts(),llvm::SplitBlockAndInsertIfThenElse(),llvm::splitBlockBefore(),SplitBlockImpl(),SRAGlobal(),stripDebugLocFromLoopID(),StripPointerGEPsAndCasts(),switchToLookupTable(),llvm::IVStrideUse::transformToPostInc(),tryInterleave(),tryToElideArgumentCopy(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(),tryToSplitRestore(),llvm::UnrollAndJamLoop(),unswitchAllTrivialConditions(),unswitchTrivialSwitch(),UpdateAnalysisInformation(),updateCallerBFI(),updateCGAndAnalysisManagerForPass(),updateForAIXShLibTLSModelOpt(),updateLiveness(),updatePredecessorProfileMetadata(),UpdateSSA(),usersDominator(),llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(),ValidateMVEStore(),valueIsOnlyUsedLocallyOrStoredToOneGlobal(),llvm::ScalarEvolution::verify(),llvm::AssumptionCacheTracker::verifyAnalysis(),llvm::GenericCycle< ContextT >::verifyCycle(),visit(),visitDomSubTree(),llvm::InstCombinerImpl::visitLandingPadInst(),llvm::InstCombinerImpl::visitPHINode(),visitPointers(),llvm::LazyCallGraph::visitReferences(),llvm::TBAAVerifier::visitTBAAMetadata(),llvm::yaml::WebAssemblyFunctionInfo::WebAssemblyFunctionInfo(),llvm::VirtRegAuxInfo::weightCalcHelper(),llvm::PredicateInfo::~PredicateInfo(), andllvm::VPInterleavedAccessInfo::~VPInterleavedAccessInfo().
| inline |
Definition at line468 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImpl< PtrType >::insert().
| inline |
Remove elements that match the given predicate.
This method is a safe replacement for the following pattern, which is not valid, because theerase() calls would invalidate the iterator:
for (PtrType *Ptr : Set) if (Pred(P)) Set.erase(P);
Returns whether anything was removed. It is safe to read the set inside the predicate function. However, the predicate must not modify the set itself, only indicate a removal by returning true.
Definition at line418 of fileSmallPtrSet.h.
Referencesllvm::SmallPtrSetImplBase::CurArray,E,llvm::SmallPtrSetImplBase::EndPointer(),llvm::SmallPtrSetImplBase::getEmptyMarker(),llvm::SmallPtrSetImplBase::getTombstoneMarker(),llvm::DebugEpochBase::incrementEpoch(),llvm::SmallPtrSetImplBase::isSmall(),llvm::SmallPtrSetImplBase::NumNonEmpty,llvm::SmallPtrSetImplBase::NumTombstones,P, andPtr.
| protected |
Definition at line71 of fileSmallPtrSet.cpp.
| inlineexplicitprotected |
Definition at line76 of fileSmallPtrSet.h.
| protected |
Definition at line73 of fileSmallPtrSet.cpp.