LLVM: llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT (original) (raw)

Base class for DenseSet and DenseSmallSet. More...

#include "[llvm/ADT/DenseSet.h](DenseSet%5F8h%5Fsource.html)"

Public Types
using key_type = ValueT
using value_type = ValueT
using size_type = unsigned
using iterator = DenseSetIterator
using const_iterator = DenseSetIterator
Public Member Functions
DenseSetImpl (unsigned InitialReserve=0)
template
DenseSetImpl (const InputIt &I, const InputIt &E)
DenseSetImpl (std::initializer_list< ValueT > Elems)
template<typename Range>
DenseSetImpl (llvm::from_range_t, Range &&R)
bool empty () const
size_type size () const
size_t getMemorySize () const
void resize (size_t Size)
Grow the DenseSet so that it has at least Size buckets.
void reserve (size_t Size)
Grow the DenseSet so that it can contain at least NumEntries items before resizing again.
void clear ()
bool erase (const ValueT &V)
void swap (DenseSetImpl &RHS)
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
iterator find (const_arg_type_t< ValueT > V)
const_iterator find (const_arg_type_t< ValueT > V) const
bool contains (const_arg_type_t< ValueT > V) const
Check if the set contains the given element.
size_type count (const_arg_type_t< ValueT > V) const
Return 1 if the specified key is in the set, 0 otherwise.
template
iterator find_as (const LookupKeyT &Val)
Alternative version of find() which allows a different, and possibly less expensive, key type.
template
const_iterator find_as (const LookupKeyT &Val) const
void erase (iterator I)
void erase (const_iterator CI)
std::pair< iterator, bool > insert (const ValueT &V)
std::pair< iterator, bool > insert (ValueT &&V)
template
std::pair< iterator, bool > insert_as (const ValueT &V, const LookupKeyT &LookupKey)
Alternative version of insert that uses a different (and possibly less expensive) key type.
template
std::pair< iterator, bool > insert_as (ValueT &&V, const LookupKeyT &LookupKey)
template
void insert (InputIt I, InputIt E)
template<typename Range>
void insert_range (Range &&R)

template<typename ValueT, typename MapTy, typename ValueInfoT>
class llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >

Base class for DenseSet and DenseSmallSet.

MapTy should be either

DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair>

or the equivalent SmallDenseMap type. ValueInfoT must implement the DenseMapInfo "concept".

Definition at line 56 of file DenseSet.h.

const_iterator

template<typename ValueT, typename MapTy, typename ValueInfoT>

iterator

template<typename ValueT, typename MapTy, typename ValueInfoT>

key_type

template<typename ValueT, typename MapTy, typename ValueInfoT>

size_type

template<typename ValueT, typename MapTy, typename ValueInfoT>

value_type

template<typename ValueT, typename MapTy, typename ValueInfoT>

template<typename ValueT, typename MapTy, typename ValueInfoT>

DenseSetImpl() [2/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

DenseSetImpl() [3/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>

DenseSetImpl() [4/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template<typename Range>

begin() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

begin() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

clear()

template<typename ValueT, typename MapTy, typename ValueInfoT>

contains()

template<typename ValueT, typename MapTy, typename ValueInfoT>

Check if the set contains the given element.

Definition at line 175 of file DenseSet.h.

Referenced by llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::lto::Config::addSaveTemps(), llvm::DbgValueRangeTable::addVariable(), analyzeExitPHIsForOutputUses(), buildOverlapMapAndRecordDeclares(), llvm::DroppedVariableStats::calculateDroppedStatsAndPrint(), checkNumberingAndReplace(), checkNumberingAndReplaceCommutative(), llvm::IRSimilarity::IRSimilarityCandidate::checkRelativeLocations(), llvm::collectEphemeralRecipesForVPlan(), collectRegionsConstants(), llvm::computeLTOCacheKey(), slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::SelectionDAG::copyExtraInfo(), llvm::IRSimilarity::IRSimilarityCandidate::createCanonicalRelationFrom(), llvm::VETargetLowering::emitSjLjDispatchBlock(), findConstants(), findCostForOutputBlocks(), findExtractedOutputToOverallOutputMapping(), findOrCreatePHIInBlock(), getBranchInsertPoint(), getFormForIdxParent(), getGVNForPHINode(), DOTGraphTraits< const CallsiteContextGraph< DerivedCCG, FuncTy, CallTy > * >::getNodeAttributes(), llvm::AMDGPU::getTransitiveUsesOfLDS(), slpvectorizer::BoUpSLP::getTreeCost(), llvm::DIExpression::hasAllLocationOps(), llvm::FunctionImporter::importFunctions(), slpvectorizer::BoUpSLP::isAnyGathered(), isDataTypeToken(), processLoadCommands(), propagateAttributesToRefs(), llvm::PHINode::removeIncomingValueIf(), llvm::objcopy::coff::Object::removeSections(), removeUndefDbgAssignsFromEntryBlock(), slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceTargetsFromPHINode(), llvm::InstructionSelect::selectMachineFunction(), llvm::OutlinableRegion::splitCandidate(), slpvectorizer::BoUpSLP::vectorizeTree(), and willGenerateVectors().

count()

template<typename ValueT, typename MapTy, typename ValueInfoT>

Return 1 if the specified key is in the set, 0 otherwise.

Definition at line 180 of file DenseSet.h.

Referenced by llvm::LiveVariables::addNewBlock(), llvm::ModuloScheduleExpanderMVE::canApply(), canProveExitOnFirstIteration(), checkHoistValue(), checkVariableImport(), collectBlocksReachableByDirty(), computeFunctionSummary(), llvm::MCPseudoProbeDecoder::countRecords(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::ModuleSummaryIndex::exportToDot(), llvm::orc::JITDylib::getDFSLinkOrder(), getInstrBB(), getPostIncrementOperand(), handleArgs(), hasDirtyPred(), hoistValue(), llvm::SIInstrInfo::legalizeOperandsVOP3(), processLoadCommands(), llvm::ModuleSummaryIndex::propagateAttributes(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::readFuncProfiles(), relocationViaAlloca(), slpvectorizer::BoUpSLP::reorderBottomToTop(), sortLocalVars(), llvm::thinLTOFinalizeInModule(), thinLTOResolvePrevailingGUID(), llvm::updateVCallVisibilityInIndex(), llvm::updateVCallVisibilityInModule(), slpvectorizer::BoUpSLP::vectorizeTree(), and VisitGlobalVariableForEmission().

empty()

template<typename ValueT, typename MapTy, typename ValueInfoT>

Definition at line 86 of file DenseSet.h.

Referenced by addAssumptionsImpl(), llvm::lto::Config::addSaveTemps(), CheckLargerCands(), checkNumberingAndReplaceCommutative(), TransferTracker::clobberMloc(), llvm::computeDeadSymbolsAndUpdateIndirectCalls(), llvm::computeEHOnlyBlocks(), llvm::MCPseudoProbeDecoder::countRecords(), llvm::ThinLTOCodeGenerator::internalize(), llvm::orc::BlockFreqQuery::operator()(), ProcessThinLTOModule(), llvm::PHINode::removeIncomingValueIf(), llvm::objcopy::coff::Object::removeSections(), RemoveLoadsIntoFakeUses::run(), shouldSplit(), llvm::orc::SymbolsCouldNotBeRemoved::SymbolsCouldNotBeRemoved(), llvm::orc::SymbolsNotFound::SymbolsNotFound(), llvm::thinLTOFinalizeInModule(), llvm::orc::EPCDynamicLibrarySearchGenerator::tryToGenerate(), and llvm::orc::ExecutorResolutionGenerator::tryToGenerate().

end() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

end() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

erase() [1/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

erase() [2/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

erase() [3/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

find() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

find() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

find_as() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

Alternative version of find() which allows a different, and possibly less expensive, key type.

The DenseMapInfo is responsible for supplying methods getHashValue(LookupKeyT) and isEqual(LookupKeyT, KeyT) for each key type used.

Definition at line 190 of file DenseSet.h.

find_as() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

getMemorySize()

template<typename ValueT, typename MapTy, typename ValueInfoT>

insert() [1/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

Definition at line 202 of file DenseSet.h.

Referenced by addDefsUsesToList(), addDefsUsesToList(), llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::LiveVariables::addNewBlock(), addUsedSymbolToPreservedGUID(), llvm::DbgValueRangeTable::addVariable(), analyzeExitPHIsForOutputUses(), analyzeLoopUnrollCost(), llvm::DwarfDebug::beginModule(), llvm::buildModuleSummaryIndex(), buildOverlapMapAndRecordDeclares(), llvm::ModuloScheduleExpanderMVE::canApply(), canProveExitOnFirstIteration(), checkClobberSanity(), checkHoistValue(), CheckLargerCands(), checkNumberingAndReplace(), checkNumberingAndReplaceCommutative(), checkVariableImport(), TransferTracker::clobberMloc(), llvm::collectEphemeralRecipesForVPlan(), collectRegionsConstants(), llvm::IRSimilarity::IRSimilarityCandidate::compareCommutativeOperandMapping(), computeAliasSummary(), llvm::computeEHOnlyBlocks(), computeFunctionSummary(), computeGUIDPreservedSymbols(), computeVariableSummary(), llvm::SelectionDAG::copyExtraInfo(), costShuffleViaSplitting(), costShuffleViaVRegSplitting(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::IRSimilarity::IRSimilarityCandidate::createCanonicalRelationFrom(), llvm::deleteDeadLoop(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::DenseSetImpl(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::DenseSetImpl(), EliminateDuplicatePHINodesSetBasedImpl(), llvm::WebAssemblyAsmPrinter::emitDecls(), llvm::VETargetLowering::emitSjLjDispatchBlock(), llvm::DwarfDebug::endFunctionImpl(), llvm::sampleprof::FunctionSamples::findAllNames(), findBaseObject(), llvm::orc::SpeculateQuery::findCalles(), findConstants(), findCostForOutputBlocks(), findExtractedOutputToOverallOutputMapping(), llvm::sampleprof::FunctionSamples::findInlinedFunctions(), findOrCreatePHIInBlock(), getBaseType(), llvm::IRSimilarity::IRSimilarityCandidate::getBasicBlocks(), llvm::IRSimilarity::IRSimilarityCandidate::getBasicBlocks(), getBranchInsertPoint(), getCHRConditionValuesForRegion(), llvm::orc::JITDylib::getDFSLinkOrder(), getPostIncrementOperand(), getRegsUsedByPHIs(), slpvectorizer::BoUpSLP::getSpillCost(), llvm::AMDGPU::getTransitiveUsesOfLDS(), slpvectorizer::BoUpSLP::getTreeCost(), llvm::getVisibleToRegularObjVtableGUIDs(), getWaitStatesSince(), handleArgs(), llvm::DIExpression::hasAllLocationOps(), hasDuplicates(), hoistValue(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::insert(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::insert_range(), insertRelocationStores(), insertRematerializationStores(), insertTrivialPHIs(), llvm::SIInstrInfo::isOperandLegal(), isSaveReachableThroughClean(), llvm::SIInstrInfo::legalizeOperandsVOP3(), LLVMOrcMaterializationResponsibilityDelegate(), lowerBuildVectorViaDominantValues(), markAllReachable(), OptimizeNonTrivialIFuncs(), planContainsAdditionalSimplifications(), llvm::DroppedVariableStats::populateVarIDSetAndInlinedMap(), processLoadCommands(), propagateAttributesToRefs(), llvm::sampleprof::SampleProfileReader::read(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::readFuncProfiles(), reduceDbgValsBackwardScan(), remapIndices(), llvm::PHINode::removeIncomingValueIf(), slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), removeRedundantDbgInstrsUsingBackwardScan(), llvm::objcopy::coff::Object::removeSections(), removeUndefDbgAssignsFromEntryBlock(), slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::CtxProfAnalysis::run(), llvm::lto::LTO::run(), RemoveLoadsIntoFakeUses::run(), scanInlinedCode(), scanOneBB(), searchPredecessors(), llvm::InstructionSelect::selectMachineFunction(), sortLocalVars(), stripDeadDebugInfoImpl(), llvm::thinLTOFinalizeInModule(), llvm::thinLTOResolvePrevailingInIndex(), LLVMOrcLazyCallThroughManagerRef::toSymbolDependenceMap(), llvm::orc::EPCDynamicLibrarySearchGenerator::tryToGenerate(), llvm::orc::ExecutorResolutionGenerator::tryToGenerate(), undefInvalidDbgValues(), llvm::InstrProfWriter::validateRecord(), llvm::cas::ObjectStore::validateTree(), slpvectorizer::BoUpSLP::vectorizeTree(), llvm::GenericCycle< ContextT >::verifyCycle(), llvm::GenericCycleInfo< ContextT >::verifyCycleNest(), VisitGlobalVariableForEmission(), and willGenerateVectors().

insert() [2/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

insert() [3/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>

insert_as() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

Alternative version of insert that uses a different (and possibly less expensive) key type.

Definition at line 213 of file DenseSet.h.

insert_as() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>

template

insert_range()

template<typename ValueT, typename MapTy, typename ValueInfoT>

template<typename Range>

reserve()

template<typename ValueT, typename MapTy, typename ValueInfoT>

resize()

template<typename ValueT, typename MapTy, typename ValueInfoT>

Grow the DenseSet so that it has at least Size buckets.

Will not shrink the Size of the set.

Definition at line 92 of file DenseSet.h.

size()

template<typename ValueT, typename MapTy, typename ValueInfoT>

swap()

template<typename ValueT, typename MapTy, typename ValueInfoT>


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