|
LLVM 24.0.0git
|
This class implements a map that also provides access to all stored values in a deterministic order. More...
#include "llvm/ADT/MapVector.h"
Inherited by llvm::SmallMapVector< Value *, SmallVector< Instruction *, 2 >, 8 >, and llvm::SmallMapVector< Instruction *, std::unique_ptr< RematNode >, 8 >.
Public Types | |
| using | key_type = KeyT |
| using | value_type = typename VectorType::value_type |
| using | size_type = typename VectorType::size_type |
| using | iterator = typename VectorType::iterator |
| using | const_iterator = typename VectorType::const_iterator |
| using | reverse_iterator = typename VectorType::reverse_iterator |
| using | const_reverse_iterator = typename VectorType::const_reverse_iterator |
Public Member Functions | |
| VectorType | takeVector () |
| Clear the MapVector and return the underlying vector. | |
| ArrayRef< value_type > | getArrayRef () const |
| Returns an array reference of the underlying vector. | |
| size_type | size () const |
| void | reserve (size_type NumEntries) |
Grow the MapVector so that it can contain at least NumEntries items before resizing again. | |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| bool | empty () const |
| std::pair< KeyT, ValueT > & | front () |
| const std::pair< KeyT, ValueT > & | front () const |
| std::pair< KeyT, ValueT > & | back () |
| const std::pair< KeyT, ValueT > & | back () const |
| void | clear () |
| void | swap (MapVector &RHS) |
| ValueT & | operator[] (const KeyT &Key) |
| auto | keys () |
| auto | keys () const |
| auto | values () |
| auto | values () const |
| ValueT | lookup (const KeyT &Key) const |
| template<typename... Ts> | |
| std::pair< iterator, bool > | try_emplace (const KeyT &Key, Ts &&...Args) |
| template<typename... Ts> | |
| std::pair< iterator, bool > | try_emplace (KeyT &&Key, Ts &&...Args) |
| std::pair< iterator, bool > | insert (const std::pair< KeyT, ValueT > &KV) |
| std::pair< iterator, bool > | insert (std::pair< KeyT, ValueT > &&KV) |
| template<typename V> | |
| std::pair< iterator, bool > | insert_or_assign (const KeyT &Key, V &&Val) |
| template<typename V> | |
| std::pair< iterator, bool > | insert_or_assign (KeyT &&Key, V &&Val) |
| bool | contains (const KeyT &Key) const |
| size_type | count (const KeyT &Key) const |
| iterator | find (const KeyT &Key) |
| const_iterator | find (const KeyT &Key) const |
| ValueT & | at (const KeyT &Key) |
| at - Return the entry for the specified key, or abort if no such entry exists. | |
| const ValueT & | at (const KeyT &Key) const |
| at - Return the entry for the specified key, or abort if no such entry exists. | |
| void | pop_back () |
| Remove the last element from the vector. | |
| VectorType::iterator | erase (typename VectorType::iterator Iterator) |
| Remove the element given by Iterator. | |
| size_type | erase (const KeyT &Key) |
| Remove all elements with the key value Key. | |
| template<class Predicate> | |
| void | remove_if (Predicate Pred) |
| Remove the elements that match the predicate. | |
| size_t | getMemorySize () const |
| Return the approximate size (in bytes) of the data structure. | |
| template<class Function> | |
| void | remove_if (Function Pred) |
This class implements a map that also provides access to all stored values in a deterministic order.
The values are kept in a SmallVector<*, 0> and the mapping is done with DenseMap from Keys to indexes in that vector.
Definition at line 39 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::const_iterator = typename VectorType::const_iterator |
Definition at line 46 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::const_reverse_iterator = typename VectorType::const_reverse_iterator |
Definition at line 48 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::iterator = typename VectorType::iterator |
Definition at line 45 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::key_type = KeyT |
Definition at line 41 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::reverse_iterator = typename VectorType::reverse_iterator |
Definition at line 47 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::size_type = typename VectorType::size_type |
Definition at line 43 of file MapVector.h.
| using llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::value_type = typename VectorType::value_type |
Definition at line 42 of file MapVector.h.
|
inlinenodiscard |
at - Return the entry for the specified key, or abort if no such entry exists.
Definition at line 177 of file MapVector.h.
|
inlinenodiscard |
at - Return the entry for the specified key, or abort if no such entry exists.
Definition at line 185 of file MapVector.h.
|
inlinenodiscard |
Definition at line 86 of file MapVector.h.
|
inlinenodiscard |
Definition at line 87 of file MapVector.h.
|
inlinenodiscard |
Definition at line 68 of file MapVector.h.
Referenced by interpretValues(), llvm::UnrollLoop(), and llvm::writeIndex().
|
inlinenodiscard |
Definition at line 69 of file MapVector.h.
|
inline |
Definition at line 91 of file MapVector.h.
Referenced by interpretValues(), llvm::LoopInfoBase< BlockT, LoopT >::recompute(), llvm::writeMemProfFrameArray(), and llvm::writeMemProfRecords().
|
inlinenodiscard |
Definition at line 149 of file MapVector.h.
Referenced by llvm::CollectorMetadataAnalysis::AnalysisInfoMixin< CollectorMetadataAnalysis >, llvm::MapVector< StringRef, HashData >::count(), llvm::AMDGPU::getTransitiveUsesOfLDSForLowering(), llvm::SelectionDAGBuilder::shouldKeepJumpConditionsTogether(), and llvm::UnrollLoop().
|
inlinenodiscard |
Definition at line 153 of file MapVector.h.
Referenced by llvm::checkDebugInfoMetadata(), llvm::collectDebugInfoMetadata(), and findBasePointer().
|
inlinenodiscard |
Definition at line 80 of file MapVector.h.
Referenced by llvm::InstrProfWriter::addMemProfData(), llvm::InterleavedAccessInfo::analyzeInterleaving(), computeGEPToVectorIndex(), createCfiAliasesMetadata(), llvm::VPlanTransforms::createPartialReductions(), foldCondBranchOnValueKnownInPredecessorImpl(), getEpilogueTailLowering(), getSalvageOpsForGEP(), interpretNextInstr(), and llvm::writeIndex().
|
inlinenodiscard |
Definition at line 70 of file MapVector.h.
Referenced by llvm::MapVector< StringRef, HashData >::at(), llvm::MapVector< StringRef, HashData >::at(), checkFunctions(), checkVars(), computeBaseDerivedRelocateMap(), llvm::MapVector< StringRef, HashData >::contains(), llvm::VPlanTransforms::createHeaderPhiRecipes(), llvm::MapVector< StringRef, HashData >::erase(), findBasePointer(), getOrCreateFPFastMathDefaultInfoVec(), getOrCreateFPFastMathDefaultInfoVec(), llvm::insertDebugValuesForPHIs(), interpretValues(), llvm::MapVector< StringRef, HashData >::lookup(), llvm::sampleprof::SampleRecord::serialize(), llvm::sampleprof::serializeTypeMap(), llvm::lto::thinBackend(), and llvm::UnrollLoop().
|
inlinenodiscard |
Definition at line 71 of file MapVector.h.
|
inline |
Remove all elements with the key value Key.
Returns the number of elements removed.
Definition at line 234 of file MapVector.h.
|
inline |
Remove the element given by Iterator.
Returns an iterator to the element following the one which was removed, which may be end().
Definition at line 211 of file MapVector.h.
Referenced by collectCallSiteParameters(), llvm::MapVector< StringRef, HashData >::erase(), and interpretValues().
|
inlinenodiscard |
Definition at line 157 of file MapVector.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::MapVector< StringRef, HashData >::at(), llvm::MapVector< StringRef, HashData >::at(), checkFunctions(), checkVars(), computeBaseDerivedRelocateMap(), llvm::MapVector< StringRef, HashData >::contains(), llvm::VPlanTransforms::createHeaderPhiRecipes(), llvm::MapVector< StringRef, HashData >::erase(), findBasePointer(), getOrCreateFPFastMathDefaultInfoVec(), getOrCreateFPFastMathDefaultInfoVec(), llvm::insertDebugValuesForPHIs(), llvm::MapVector< StringRef, HashData >::lookup(), llvm::sampleprof::SampleRecord::serialize(), llvm::sampleprof::serializeTypeMap(), llvm::lto::thinBackend(), and llvm::UnrollLoop().
|
inlinenodiscard |
Definition at line 166 of file MapVector.h.
|
inlinenodiscard |
Definition at line 82 of file MapVector.h.
Referenced by computeGEPToVectorIndex(), parseJumpTable(), shouldConvertToRelLookupTable(), and tryToRecognizeTableBasedPatterns().
|
inlinenodiscard |
Definition at line 83 of file MapVector.h.
|
inlinenodiscard |
Returns an array reference of the underlying vector.
Definition at line 57 of file MapVector.h.
|
inlinenodiscard |
Return the approximate size (in bytes) of the data structure.
This is just the raw memory used by MapVector. If entries are pointers to objects, the size of the referenced objects are not included.
Definition at line 252 of file MapVector.h.
|
inline |
Definition at line 127 of file MapVector.h.
Referenced by addAllTypesFromDWP(), addAllTypesFromTypesSection(), llvm::checkDebugInfoMetadata(), collectCallSiteParameters(), llvm::collectDebugInfoMetadata(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), llvm::GEPOperator::collectOffset(), computeBaseDerivedRelocateMap(), findBasePointer(), foldCondBranchOnValueKnownInPredecessorImpl(), llvm::insertDebugValuesForPHIs(), and llvm::write().
|
inline |
Definition at line 130 of file MapVector.h.
|
inline |
Definition at line 135 of file MapVector.h.
|
inline |
Definition at line 142 of file MapVector.h.
|
inlinenodiscard |
Definition at line 105 of file MapVector.h.
Referenced by addFullyUnrolledInstructionsToIgnore().
|
inlinenodiscard |
Definition at line 106 of file MapVector.h.
|
inlinenodiscard |
Definition at line 111 of file MapVector.h.
Referenced by checkConstLocationCompatible(), createMergedFunction(), llvm::VPlanTransforms::modelGeneratedMainLoopBlocks(), llvm::LoopInfoBase< BlockT, LoopT >::recompute(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().
|
inline |
Definition at line 101 of file MapVector.h.
|
inline |
Remove the last element from the vector.
Definition at line 192 of file MapVector.h.
|
inlinenodiscard |
Definition at line 73 of file MapVector.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving().
|
inlinenodiscard |
Definition at line 74 of file MapVector.h.
| void llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::remove_if | ( | Function | Pred | ) |
Definition at line 313 of file MapVector.h.
| void llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::remove_if | ( | Predicate | Pred | ) |
Remove the elements that match the predicate.
Erase all elements that match Pred in a single pass. Takes linear time.
|
inlinenodiscard |
Definition at line 77 of file MapVector.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving().
|
inlinenodiscard |
Definition at line 78 of file MapVector.h.
|
inline |
Grow the MapVector so that it can contain at least NumEntries items before resizing again.
Definition at line 63 of file MapVector.h.
Referenced by combineWeightsByHashing().
|
inlinenodiscard |
Definition at line 59 of file MapVector.h.
Referenced by llvm::OpenMPIRBuilder::applySimd(), llvm::calculateRegisterUsageForPlan(), slpvectorizer::BoUpSLP::canVersionForRuntimeChecks(), checkConstLocationCompatible(), llvm::collectDebugInfoMetadata(), collectOffsets(), combineWeightsByHashing(), computeGEPToVectorIndex(), findBasePointer(), parseJumpTable(), llvm::AArch64TTIImpl::preferTailFoldingOverEpilogue(), promotConstantsInFunction(), shouldConvertToRelLookupTable(), tryToRecognizeTableBasedPatterns(), llvm::UnrollLoop(), llvm::writeIndex(), and llvm::writeMemProfFrameArray().
|
inline |
Definition at line 96 of file MapVector.h.
|
inlinenodiscard |
Clear the MapVector and return the underlying vector.
Definition at line 51 of file MapVector.h.
Referenced by computeFunctionSummary().
|
inline |
Definition at line 119 of file MapVector.h.
Referenced by slpvectorizer::BoUpSLP::canVersionForRuntimeChecks(), collectInstructionDeps(), llvm::VPlanTransforms::createPartialReductions(), llvm::coro::doRematerializations(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::MapVector< StringRef, HashData >::insert_or_assign(), llvm::MapVector< StringRef, HashData >::insert_or_assign(), and llvm::SelectionDAGBuilder::shouldKeepJumpConditionsTogether().
|
inline |
Definition at line 123 of file MapVector.h.
|
inlinenodiscard |
Definition at line 107 of file MapVector.h.
|
inlinenodiscard |
Definition at line 108 of file MapVector.h.