LLVM 22.0.0git
llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT > Class Template Reference

Base class for DenseSet and DenseSmallSet. More...

#include "llvm/ADT/DenseSet.h"

Inheritance diagram for llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >:
[legend]

Public Types

using key_type = ValueT
using value_type = ValueT
using size_type = unsigned
using iterator = DenseSetIterator<false>
using const_iterator = DenseSetIterator<true>

Public Member Functions

 DenseSetImpl (unsigned InitialReserve=0)
template<typename InputIt>
 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<class LookupKeyT>
iterator find_as (const LookupKeyT &Val)
 Alternative version of find() which allows a different, and possibly less expensive, key type.
template<class LookupKeyT>
const_iterator find_as (const LookupKeyT &Val) const
void erase (iterator I)
void erase (const_iterator CI)
std::pair< iterator, boolinsert (const ValueT &V)
std::pair< iterator, boolinsert (ValueT &&V)
template<typename LookupKeyT>
std::pair< iterator, boolinsert_as (const ValueT &V, const LookupKeyT &LookupKey)
 Alternative version of insert that uses a different (and possibly less expensive) key type.
template<typename LookupKeyT>
std::pair< iterator, boolinsert_as (ValueT &&V, const LookupKeyT &LookupKey)
template<typename InputIt>
void insert (InputIt I, InputIt E)
template<typename Range>
void insert_range (Range &&R)

Detailed Description

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<ValueT>>

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

Definition at line 56 of file DenseSet.h.

Member Typedef Documentation

◆ const_iterator

template<typename ValueT, typename MapTy, typename ValueInfoT>
using llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::const_iterator = DenseSetIterator<true>

Definition at line 155 of file DenseSet.h.

◆ iterator

template<typename ValueT, typename MapTy, typename ValueInfoT>
using llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::iterator = DenseSetIterator<false>

Definition at line 154 of file DenseSet.h.

◆ key_type

template<typename ValueT, typename MapTy, typename ValueInfoT>
using llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::key_type = ValueT

Definition at line 65 of file DenseSet.h.

◆ size_type

template<typename ValueT, typename MapTy, typename ValueInfoT>
using llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::size_type = unsigned

Definition at line 67 of file DenseSet.h.

◆ value_type

template<typename ValueT, typename MapTy, typename ValueInfoT>
using llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::value_type = ValueT

Definition at line 66 of file DenseSet.h.

Constructor & Destructor Documentation

◆ DenseSetImpl() [1/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>
llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::DenseSetImpl ( unsigned InitialReserve = 0)
inlineexplicit

Definition at line 69 of file DenseSet.h.

◆ DenseSetImpl() [2/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<typename InputIt>
llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::DenseSetImpl ( const InputIt & I,
const InputIt & E )
inline

Definition at line 72 of file DenseSet.h.

◆ DenseSetImpl() [3/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>
llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::DenseSetImpl ( std::initializer_list< ValueT > Elems)
inline

Definition at line 77 of file DenseSet.h.

◆ DenseSetImpl() [4/4]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<typename Range>
llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::DenseSetImpl ( llvm::from_range_t ,
Range && R )
inline

Definition at line 83 of file DenseSet.h.

Member Function Documentation

◆ begin() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin ( )
inline

◆ begin() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
const_iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin ( ) const
inline

Definition at line 160 of file DenseSet.h.

◆ clear()

◆ contains()

template<typename ValueT, typename MapTy, typename ValueInfoT>
bool llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains ( const_arg_type_t< ValueT > V) const
inlinenodiscard

Check if the set contains the given element.

Definition at line 169 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(), llvm::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(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::DIExpression::hasAllLocationOps(), llvm::FunctionImporter::importFunctions(), llvm::slpvectorizer::BoUpSLP::isAnyGathered(), isDataTypeToken(), processLoadCommands(), propagateAttributesToRefs(), llvm::PHINode::removeIncomingValueIf(), llvm::objcopy::coff::Object::removeSections(), removeUndefDbgAssignsFromEntryBlock(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceTargetsFromPHINode(), llvm::InstructionSelect::selectMachineFunction(), llvm::OutlinableRegion::splitCandidate(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and willGenerateVectors().

◆ count()

◆ empty()

◆ end() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::end ( )
inline

◆ end() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
const_iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::end ( ) const
inline

Definition at line 161 of file DenseSet.h.

◆ erase() [1/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>
bool llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase ( const ValueT & V)
inline

◆ erase() [2/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase ( const_iterator CI)
inline

Definition at line 192 of file DenseSet.h.

◆ erase() [3/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase ( iterator I)
inline

Definition at line 191 of file DenseSet.h.

◆ find() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::find ( const_arg_type_t< ValueT > V)
inline

◆ find() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
const_iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::find ( const_arg_type_t< ValueT > V) const
inline

Definition at line 164 of file DenseSet.h.

◆ find_as() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<class LookupKeyT>
iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::find_as ( const LookupKeyT & Val)
inline

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 183 of file DenseSet.h.

◆ find_as() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<class LookupKeyT>
const_iterator llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::find_as ( const LookupKeyT & Val) const
inline

Definition at line 187 of file DenseSet.h.

◆ getMemorySize()

template<typename ValueT, typename MapTy, typename ValueInfoT>
size_t llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::getMemorySize ( ) const
inline

Definition at line 88 of file DenseSet.h.

◆ insert() [1/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>
std::pair< iterator, bool > llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert ( const ValueT & V)
inline

Definition at line 194 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(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::AMDGPU::getTransitiveUsesOfLDS(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::getVisibleToRegularObjVtableGUIDs(), getWaitStatesSince(), handleArgs(), llvm::DIExpression::hasAllLocationOps(), hasDuplicates(), hasHazard(), 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(), planContainsAdditionalSimplifications(), llvm::DroppedVariableStats::populateVarIDSetAndInlinedMap(), processLoadCommands(), propagateAttributesToRefs(), llvm::jitlink::prune(), llvm::sampleprof::SampleProfileReader::read(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::readFuncProfiles(), reduceDbgValsBackwardScan(), remapIndices(), llvm::PHINode::removeIncomingValueIf(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), removeRedundantDbgInstrsUsingBackwardScan(), llvm::objcopy::coff::Object::removeSections(), removeUndefDbgAssignsFromEntryBlock(), llvm::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(), undefInvalidDbgValues(), llvm::InstrProfWriter::validateRecord(), llvm::cas::ObjectStore::validateTree(), llvm::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<typename InputIt>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert ( InputIt I,
InputIt E )
inline

Definition at line 215 of file DenseSet.h.

◆ insert() [3/3]

template<typename ValueT, typename MapTy, typename ValueInfoT>
std::pair< iterator, bool > llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert ( ValueT && V)
inline

Definition at line 198 of file DenseSet.h.

◆ insert_as() [1/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<typename LookupKeyT>
std::pair< iterator, bool > llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert_as ( const ValueT & V,
const LookupKeyT & LookupKey )
inline

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

Definition at line 205 of file DenseSet.h.

◆ insert_as() [2/2]

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<typename LookupKeyT>
std::pair< iterator, bool > llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert_as ( ValueT && V,
const LookupKeyT & LookupKey )
inline

Definition at line 210 of file DenseSet.h.

◆ insert_range()

template<typename ValueT, typename MapTy, typename ValueInfoT>
template<typename Range>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert_range ( Range && R)
inline

◆ reserve()

template<typename ValueT, typename MapTy, typename ValueInfoT>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::reserve ( size_t Size)
inline

Grow the DenseSet so that it can contain at least NumEntries items before resizing again.

Definition at line 96 of file DenseSet.h.

Referenced by EliminateDuplicatePHINodesSetBasedImpl().

◆ resize()

template<typename ValueT, typename MapTy, typename ValueInfoT>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::resize ( size_t Size)
inline

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()

◆ swap()

template<typename ValueT, typename MapTy, typename ValueInfoT>
void llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::swap ( DenseSetImpl< ValueT, MapTy, ValueInfoT > & RHS)
inline

Definition at line 102 of file DenseSet.h.


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