LLVM  4.0.0
Public Types | Public Member Functions | Protected Member Functions | List of all members
llvm::SmallPtrSetImpl< PtrType > Class Template Reference

A templated base class for SmallPtrSet which provides the typesafe interface that is common across all small sizes. More...

#include <SmallPtrSet.h>

Inherits llvm::SmallPtrSetImplBase.

Inherited by llvm::SmallPtrSet< PtrType, SmallSize >, llvm::SmallPtrSet< const BasicBlock *, 8 >, llvm::SmallPtrSet< const BlockT *, 8 >, llvm::SmallPtrSet< const llvm::BasicBlock *, 16 >, llvm::SmallPtrSet< const llvm::BasicBlock *, 4 >, llvm::SmallPtrSet< const llvm::BasicBlock *, 8 >, llvm::SmallPtrSet< const llvm::DISubprogram *, 16 >, llvm::SmallPtrSet< const llvm::GlobalValue *, 8 >, llvm::SmallPtrSet< const llvm::GlobalVariable *, 2 >, llvm::SmallPtrSet< const llvm::MachineBasicBlock *, 2 >, llvm::SmallPtrSet< const llvm::MCSymbol *, 32 >, llvm::SmallPtrSet< const llvm::MDNode *, 32 >, llvm::SmallPtrSet< const llvm::PHINode *, 16 >, llvm::SmallPtrSet< const llvm::SCEV *, 8 >, llvm::SmallPtrSet< const llvm::SCEVPredicate *, 4 >, llvm::SmallPtrSet< const llvm::Value *, 16 >, llvm::SmallPtrSet< const llvm::Value *, 32 >, llvm::SmallPtrSet< const llvm::VNInfo *, 4 >, llvm::SmallPtrSet< const Loop *, 2 >, llvm::SmallPtrSet< const MachineInstr *, 16 >, llvm::SmallPtrSet< const Value *, 8 >, llvm::SmallPtrSet< Instruction *, 4 >, llvm::SmallPtrSet< Instruction *, 8 >, llvm::SmallPtrSet< llvm::AnalysisKey *, 2 >, llvm::SmallPtrSet< llvm::cl::SubCommand *, 4 >, llvm::SmallPtrSet< llvm::Constant *, 8 >, llvm::SmallPtrSet< llvm::GlobalValue *, 32 >, llvm::SmallPtrSet< llvm::GlobalValue *, 8 >, llvm::SmallPtrSet< llvm::GlobalVariable *, 8 >, llvm::SmallPtrSet< llvm::Instruction *, 16 >, llvm::SmallPtrSet< llvm::Instruction *, 2 >, llvm::SmallPtrSet< llvm::Instruction *, 32 >, llvm::SmallPtrSet< llvm::Instruction *, 8 >, llvm::SmallPtrSet< llvm::LiveRange *, 8 >, llvm::SmallPtrSet< llvm::MachineInstr *, 32 >, llvm::SmallPtrSet< llvm::Module *, 4 >, llvm::SmallPtrSet< llvm::Use *, 8 >, llvm::SmallPtrSet< llvm::Value *, 6 >, llvm::SmallPtrSet< llvm::Value *, 8 >, llvm::SmallPtrSet< Module *, 4 >, llvm::SmallPtrSet< NodeRef, SmallSize >, llvm::SmallPtrSet< PointeeType *, N >, llvm::SmallPtrSet< typename GraphTraits< std::conditional< IsConst, const BlockT, BlockT >::type * >::NodeRef, 8 >, llvm::SmallPtrSet< Value *, 16 >, llvm::SmallPtrSet< Value *, 4 >, llvm::SmallPtrSet< Value *, 8 >, and llvm::SmallPtrSet< void *, 2 >.

Collaboration diagram for llvm::SmallPtrSetImpl< PtrType >:
[legend]

Public Types

typedef SmallPtrSetIterator
< PtrType > 
iterator
 
typedef SmallPtrSetIterator
< PtrType > 
const_iterator
 
- Public Types inherited from llvm::SmallPtrSetImplBase
typedef unsigned size_type
 

Public Member Functions

 SmallPtrSetImpl (const SmallPtrSetImpl &)=delete
 
std::pair< iterator, boolinsert (PtrType Ptr)
 Inserts Ptr if and only if there is no element in the container equal to Ptr. More...
 
bool erase (PtrType Ptr)
 erase - If the set contains the specified pointer, remove it and return true, otherwise return false. More...
 
size_type count (PtrType Ptr) const
 count - Return 1 if the specified pointer is in the set, 0 otherwise. More...
 
iterator find (PtrType Ptr) const
 
template<typename IterT >
void insert (IterT I, IterT E)
 
void insert (std::initializer_list< PtrType > IL)
 
iterator begin () const
 
iterator end () const
 
- Public Member Functions inherited from llvm::SmallPtrSetImplBase
SmallPtrSetImplBaseoperator= (const SmallPtrSetImplBase &)=delete
 
LLVM_NODISCARD bool empty () const
 
size_type size () const
 
void clear ()
 

Protected Member Functions

 SmallPtrSetImpl (const void **SmallStorage, const SmallPtrSetImpl &that)
 
 SmallPtrSetImpl (const void **SmallStorage, unsigned SmallSize, SmallPtrSetImpl &&that)
 
 SmallPtrSetImpl (const void **SmallStorage, unsigned SmallSize)
 
- Protected Member Functions inherited from llvm::SmallPtrSetImplBase
 SmallPtrSetImplBase (const void **SmallStorage, const SmallPtrSetImplBase &that)
 
 SmallPtrSetImplBase (const void **SmallStorage, unsigned SmallSize, 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. More...
 
bool erase_imp (const void *Ptr)
 erase_imp - If the set contains the specified pointer, remove it and return true, otherwise return false. More...
 
const void *constfind_imp (const void *Ptr) const
 Returns the raw pointer needed to construct an iterator. More...
 
void swap (SmallPtrSetImplBase &RHS)
 swap - Swaps the elements of two sets. More...
 
void CopyFrom (const SmallPtrSetImplBase &RHS)
 
void MoveFrom (unsigned SmallSize, SmallPtrSetImplBase &&RHS)
 

Additional Inherited Members

- Static Protected Member Functions inherited from llvm::SmallPtrSetImplBase
static void * getTombstoneMarker ()
 
static void * getEmptyMarker ()
 
- Protected Attributes inherited from llvm::SmallPtrSetImplBase
const void ** SmallArray
 SmallArray - Points to a fixed size set of buckets, used in 'small mode'. More...
 
const void ** CurArray
 CurArray - This is the current set of buckets. More...
 
unsigned CurArraySize
 CurArraySize - The allocated size of CurArray, always a power of two. More...
 
unsigned NumNonEmpty
 Number of elements in CurArray that contain a value or are a tombstone. More...
 
unsigned NumTombstones
 Number of tombstones in CurArray. More...
 

Detailed Description

template<typename PtrType>
class llvm::SmallPtrSetImpl< PtrType >

A templated base class for SmallPtrSet 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 line 345 of file SmallPtrSet.h.

Member Typedef Documentation

template<typename PtrType>
typedef SmallPtrSetIterator<PtrType> llvm::SmallPtrSetImpl< PtrType >::const_iterator

Definition at line 360 of file SmallPtrSet.h.

template<typename PtrType>
typedef SmallPtrSetIterator<PtrType> llvm::SmallPtrSetImpl< PtrType >::iterator

Definition at line 359 of file SmallPtrSet.h.

Constructor & Destructor Documentation

template<typename PtrType>
llvm::SmallPtrSetImpl< PtrType >::SmallPtrSetImpl ( const void **  SmallStorage,
const SmallPtrSetImpl< PtrType > &  that 
)
inlineprotected

Definition at line 350 of file SmallPtrSet.h.

template<typename PtrType>
llvm::SmallPtrSetImpl< PtrType >::SmallPtrSetImpl ( const void **  SmallStorage,
unsigned  SmallSize,
SmallPtrSetImpl< PtrType > &&  that 
)
inlineprotected

Definition at line 352 of file SmallPtrSet.h.

template<typename PtrType>
llvm::SmallPtrSetImpl< PtrType >::SmallPtrSetImpl ( const void **  SmallStorage,
unsigned  SmallSize 
)
inlineexplicitprotected

Definition at line 355 of file SmallPtrSet.h.

template<typename PtrType>
llvm::SmallPtrSetImpl< PtrType >::SmallPtrSetImpl ( const SmallPtrSetImpl< PtrType > &  )
delete

Member Function Documentation

template<typename PtrType>
iterator llvm::SmallPtrSetImpl< PtrType >::begin ( ) const
inline
template<typename PtrType>
size_type llvm::SmallPtrSetImpl< PtrType >::count ( PtrType  Ptr) const
inline

count - Return 1 if the specified pointer is in the set, 0 otherwise.

Definition at line 380 of file SmallPtrSet.h.

Referenced by addArgumentAttrs(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::PreservedAnalyses::allAnalysesInSetPreserved(), llvm::CodeMetrics::analyzeBasicBlock(), llvm::PreservedAnalyses::areAllPreserved(), llvm::RecurrenceDescriptor::areAllUsesIn(), llvm::bothUsedInPHI(), llvm::ForwardDominanceFrontierBase< BlockT >::calculate(), CanPropagatePredecessorsForPHIs(), checkForCyclesHelper(), collectValuesToDemote(), llvm::DomTreeNodeBase< NodeT >::compare(), completeEphemeralValues(), llvm::computeMinimumValueSizes(), ComputePostOrders(), llvm::LoopBase< BasicBlock, Loop >::contains(), determinePointerReadAttrs(), DominatesMergePoint(), DoPromotion(), eliminateUnreachableBlock(), llvm::FindFunctionBackedges(), llvm::DominatorTreeBase< BasicBlock >::findNearestCommonDominator(), llvm::findPHICopyInsertPoint(), findReturnsToZap(), FoldTwoEntryPHINode(), llvm::RecurrenceDescriptor::getSourceExtensionKind(), getUnwindDestToken(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), hasMemberOtherThanUs(), llvm::RecurrenceDescriptor::hasMultipleUsesOf(), hasOutsideLoopUser(), llvm::SDNode::hasPredecessorHelper(), llvm::LoopAccessInfo::hasStride(), inlineCallsImpl(), InsertRootInitializers(), llvm::PreservedAnalyses::intersect(), isEphemeralValueOf(), llvm::LiveVariables::isLiveOut(), isProfitableToFoldUnconditional(), IsSafeAndProfitableToMove(), isSimplifiedLoopNest(), isSuccOrder(), llvm::SelectionDAG::LegalizeOp(), LinearizeExprTree(), mayLoopAccessLocation(), mergeConstants(), llvm::PreservedAnalyses::PreservedAnalysisChecker::preserved(), llvm::PreservedAnalyses::PreservedAnalysisChecker::preservedSet(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::removeUnreachableBlocks(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), runImpl(), llvm::LiveVariables::runOnMachineFunction(), SafeToMergeTerminators(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), StripSymbolNames(), llvm::updateCGAndAnalysisManagerForFunctionPass(), updatePostorderSequenceForEdgeInsertion(), and llvm::AssumptionCacheTracker::verifyAnalysis().

template<typename PtrType>
iterator llvm::SmallPtrSetImpl< PtrType >::end ( ) const
inline
template<typename PtrType>
bool llvm::SmallPtrSetImpl< PtrType >::erase ( PtrType  Ptr)
inline
template<typename PtrType>
iterator llvm::SmallPtrSetImpl< PtrType >::find ( PtrType  Ptr) const
inline

Definition at line 383 of file SmallPtrSet.h.

Referenced by llvm::SmallPtrSetImpl< llvm::BasicBlock * >::count(), and sink().

template<typename PtrType>
std::pair<iterator, bool> llvm::SmallPtrSetImpl< PtrType >::insert ( PtrType  Ptr)
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 line 368 of file SmallPtrSet.h.

Referenced by AddAliasScopeMetadata(), addArgumentAttrs(), llvm::LoopBase< BasicBlock, Loop >::addBlockEntry(), llvm::AArch64FunctionInfo::addLOHDirective(), AddReachableCodeToWorklist(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::IVUsers::AddUsersImpl(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::PreservedAnalyses::all(), AllUsesOfValueWillTrapIfNull(), analyzeGlobalAux(), appendSpeculatableOperands(), appendToUsedList(), AreAnyUnderlyingObjectsAnAlloca(), llvm::buildModuleSummaryIndex(), llvm::IDFCalculator< NodeTy >::calculate(), llvm::ForwardDominanceFrontierBase< BlockT >::calculate(), llvm::VirtRegAuxInfo::calculateSpillWeightAndHint(), canPaddingBeAccessed(), canTrapImpl(), checkForCyclesHelper(), llvm::CodeMetrics::collectEphemeralValues(), collectMDInDomain(), llvm::collectUsedGlobalVariables(), llvm::FunctionComparator::compare(), llvm::DomTreeNodeBase< NodeT >::compare(), completeEphemeralValues(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computePath(), ComputePostOrders(), ConstHasGlobalValuePredicate(), contains(), llvm::ScalarEvolution::convertSCEVToAddRecWithPredicates(), llvm::MachineBasicBlock::CorrectExtraCFGEdges(), cxxDtorIsEmpty(), DeadPHICycle(), llvm::AsmPrinter::doFinalization(), DominatesMergePoint(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::Eval(), llvm::Evaluator::EvaluateFunction(), extendSegmentsToUses(), llvm::CodeExtractor::extractCodeRegion(), llvm::DIBuilder::finalize(), findBBsToSinkInto(), llvm::objcarc::FindDependencies(), llvm::FindFunctionBackedges(), findLoopInstr(), llvm::DominatorTreeBase< BasicBlock >::findNearestCommonDominator(), findNonImmUse(), findPartitions(), llvm::findPHICopyInsertPoint(), findRefEdges(), FindUsedValues(), findUsedValues(), FindUses(), foldBlockIntoPredecessor(), forEachUser(), llvm::ScalarEvolution::forgetLoop(), llvm::ScalarEvolution::forgetValue(), getAdjustedPtr(), llvm::LexicalScopes::getMachineBasicBlocks(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::GetPointerBaseWithConstantOffset(), llvm::RecurrenceDescriptor::getSourceExtensionKind(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), GetStringLengthH(), getUnderlyingObjects(), llvm::GetUnderlyingObjects(), getUnwindDestToken(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), HandleInlinedLandingPad(), hasConcreteDef(), hasConcreteDefImpl(), llvm::SDNode::hasPredecessorHelper(), llvm::PMTopLevelManager::initializeAllAnalysisInfo(), inlineCallsImpl(), llvm::df_iterator_default_set< typename GraphTraits< std::conditional< IsConst, const BlockT, BlockT >::type * >::NodeRef >::insert(), llvm::SmallPtrSetImpl< llvm::BasicBlock * >::insert(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), InsertRootInitializers(), llvm::LazyCallGraph::SCC::isAncestorOf(), isDereferenceableAndAlignedPointer(), isEphemeralValueOf(), isHighCostExpansion(), llvm::LiveVariables::isLiveOut(), isNonEscapingGlobalNoAliasWithLoad(), isObjectSizeLessThanOrEq(), llvm::isPotentiallyReachableFromMany(), isSafeToMove(), IsScalarTBAANodeImpl(), isSimpleEnoughValueToCommit(), isSimplifiedLoopNest(), llvm::StructType::isSized(), IsStoredObjCPointer(), isSuccOrder(), isVectorReductionOp(), iterativelySimplifyCFG(), llvm::SelectionDAG::Legalize(), llvm::SelectionDAG::LegalizeOp(), LinearizeExprTree(), LoadUsesSimpleEnoughForHeapSRA(), llvm::RecurrenceDescriptor::lookThroughAnd(), llvm::LoopBase< BasicBlock, Loop >::LoopBase(), markAliveBlocks(), MarkBlocksLiveIn(), memoryIsNotModifiedBetween(), mergeConditionalStores(), mergeInlinedArrayAllocas(), llvm::SelectionDAG::MorphNodeTo(), llvm::SmallPtrSet< Instruction *, 8 >::operator=(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), PeepholePPC64ZExtGather(), PHIsEqualValue(), llvm::PreservedAnalyses::preserve(), llvm::PreservedAnalyses::preserveSet(), llvm::AlignmentFromAssumptionsPass::processAssumption(), PromoteArguments(), llvm::promoteLoopAccessesToScalars(), pushIVUsers(), llvm::RecurrenceDescriptor::RecurrenceDescriptor(), llvm::RecursivelyDeleteDeadPHINode(), RemoveDeadConstant(), llvm::LiveRange::RenumberValues(), llvm::LoopDeletionPass::runImpl(), runImpl(), runIPSCCP(), SimplifyLoopInst(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkInstruction(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SmallPtrSet< Instruction *, 8 >::SmallPtrSet(), sortOpts(), llvm::Value::stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), llvm::IVStrideUse::transformToPostInc(), llvm::updateCGAndAnalysisManagerForFunctionPass(), updateLiveness(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::AssumptionCacheTracker::verifyAnalysis(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitPHINode(), llvm::LazyCallGraph::visitReferences(), and llvm::TBAAVerifier::visitTBAAMetadata().

template<typename PtrType>
template<typename IterT >
void llvm::SmallPtrSetImpl< PtrType >::insert ( IterT  I,
IterT  E 
)
inline

Definition at line 389 of file SmallPtrSet.h.

template<typename PtrType>
void llvm::SmallPtrSetImpl< PtrType >::insert ( std::initializer_list< PtrType >  IL)
inline

Definition at line 394 of file SmallPtrSet.h.


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