LLVM 22.0.0git
|
#include "llvm/ADT/DenseMap.h"
Inherits llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >.
Public Member Functions | |
DenseMap (unsigned InitialReserve=0) | |
Create a DenseMap with an optional InitialReserve that guarantee that this number of elements can be inserted in the map without grow() | |
DenseMap (const DenseMap &other) | |
DenseMap (DenseMap &&other) | |
template<typename InputIt > | |
DenseMap (const InputIt &I, const InputIt &E) | |
template<typename RangeT > | |
DenseMap (llvm::from_range_t, const RangeT &Range) | |
DenseMap (std::initializer_list< typename BaseT::value_type > Vals) | |
~DenseMap () | |
void | swap (DenseMap &RHS) |
DenseMap & | operator= (const DenseMap &other) |
DenseMap & | operator= (DenseMap &&other) |
void | copyFrom (const DenseMap &other) |
void | grow (unsigned AtLeast) |
void | shrink_and_clear () |
![]() | |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
auto | keys () |
auto | values () |
auto | keys () const |
auto | values () const |
bool | empty () const |
unsigned | size () const |
void | reserve (size_type NumEntries) |
Grow the densemap so that it can contain at least NumEntries items before resizing again. | |
void | clear () |
bool | contains (const_arg_type_t< KeyT > Val) const |
Return true if the specified key is in the map, false otherwise. | |
size_type | count (const_arg_type_t< KeyT > Val) const |
Return 1 if the specified key is in the map, 0 otherwise. | |
iterator | find (const_arg_type_t< KeyT > Val) |
const_iterator | find (const_arg_type_t< KeyT > Val) const |
template<class LookupKeyT > | |
iterator | find_as (const LookupKeyT &Val) |
Alternate version of find() which allows a different, and possibly less expensive, key type. | |
template<class LookupKeyT > | |
const_iterator | find_as (const LookupKeyT &Val) const |
ValueT | lookup (const_arg_type_t< KeyT > Val) const |
lookup - Return the entry for the specified key, or a default constructed value if no such entry exists. | |
template<typename U = std::remove_cv_t<ValueT>> | |
ValueT | lookup_or (const_arg_type_t< KeyT > Val, U &&Default) const |
const ValueT & | at (const_arg_type_t< KeyT > Val) const |
at - Return the entry for the specified key, or abort if no such entry exists. | |
std::pair< iterator, bool > | insert (const std::pair< KeyT, ValueT > &KV) |
std::pair< iterator, bool > | insert (std::pair< KeyT, ValueT > &&KV) |
template<typename... Ts> | |
std::pair< iterator, bool > | try_emplace (KeyT &&Key, Ts &&...Args) |
template<typename... Ts> | |
std::pair< iterator, bool > | try_emplace (const KeyT &Key, Ts &&...Args) |
template<typename LookupKeyT > | |
std::pair< iterator, bool > | insert_as (std::pair< KeyT, ValueT > &&KV, const LookupKeyT &Val) |
Alternate version of insert() which allows a different, and possibly less expensive, key type. | |
template<typename InputIt > | |
void | insert (InputIt I, InputIt E) |
insert - Range insertion of pairs. | |
template<typename Range > | |
void | insert_range (Range &&R) |
Inserts range of 'std::pair<KeyT, ValueT>' values into the map. | |
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) |
template<typename... Ts> | |
std::pair< iterator, bool > | emplace_or_assign (const KeyT &Key, Ts &&...Args) |
template<typename... Ts> | |
std::pair< iterator, bool > | emplace_or_assign (KeyT &&Key, Ts &&...Args) |
bool | erase (const KeyT &Val) |
void | erase (iterator I) |
ValueT & | operator[] (const KeyT &Key) |
ValueT & | operator[] (KeyT &&Key) |
bool | isPointerIntoBucketsArray (const void *Ptr) const |
isPointerIntoBucketsArray - Return true if the specified pointer points somewhere into the DenseMap's array of buckets (i.e. | |
const void * | getPointerIntoBucketsArray () const |
getPointerIntoBucketsArray() - Return an opaque pointer into the buckets array. | |
size_t | getMemorySize () const |
Return the approximate size (in bytes) of the actual map. | |
![]() | |
void | incrementEpoch () |
Friends | |
class | DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT > |
Additional Inherited Members | |
![]() | |
using | size_type = unsigned |
using | key_type = KeyT |
using | mapped_type = ValueT |
using | value_type = BucketT |
using | iterator = DenseMapIterator< KeyT, ValueT, KeyInfoT, BucketT > |
using | const_iterator = DenseMapIterator< KeyT, ValueT, KeyInfoT, BucketT, true > |
![]() | |
DenseMapBase ()=default | |
void | destroyAll () |
void | initEmpty () |
unsigned | getMinBucketToReserveForEntries (unsigned NumEntries) |
Returns the number of buckets to allocate to ensure that the DenseMap can accommodate NumEntries without need to grow(). | |
void | moveFromOldBuckets (iterator_range< BucketT * > OldBuckets) |
template<typename OtherBaseT > | |
void | copyFrom (const DenseMapBase< OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT > &other) |
![]() | |
static unsigned | getHashValue (const KeyT &Val) |
template<typename LookupKeyT > | |
static unsigned | getHashValue (const LookupKeyT &Val) |
static const KeyT | getEmptyKey () |
static const KeyT | getTombstoneKey () |
Definition at line 729 of file DenseMap.h.
|
inlineexplicit |
Create a DenseMap with an optional InitialReserve
that guarantee that this number of elements can be inserted in the map without grow()
Definition at line 745 of file DenseMap.h.
|
inline |
Definition at line 747 of file DenseMap.h.
References llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::copyFrom().
|
inline |
Definition at line 752 of file DenseMap.h.
References llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::swap().
|
inline |
Definition at line 757 of file DenseMap.h.
References E, I, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert().
|
inline |
Definition at line 763 of file DenseMap.h.
|
inline |
Definition at line 766 of file DenseMap.h.
|
inline |
Definition at line 769 of file DenseMap.h.
References llvm::deallocate_buffer(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::destroyAll().
|
inline |
Definition at line 797 of file DenseMap.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::copyFrom(), llvm::deallocate_buffer(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::destroyAll().
Referenced by llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::DenseMap(), and llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::operator=().
|
inline |
Definition at line 808 of file DenseMap.h.
References assert(), llvm::deallocate_buffer(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::initEmpty(), llvm::make_range(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::moveFromOldBuckets(), and llvm::NextPowerOf2().
|
inline |
Definition at line 783 of file DenseMap.h.
References llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::copyFrom().
|
inline |
Definition at line 789 of file DenseMap.h.
References llvm::deallocate_buffer(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::destroyAll(), and llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::swap().
|
inline |
Definition at line 828 of file DenseMap.h.
References llvm::deallocate_buffer(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::destroyAll(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::initEmpty(), and llvm::Log2_32_Ceil().
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cleanupDataAfterClonning(), and llvm::AssumptionCacheTracker::releaseMemory().
|
inline |
Definition at line 774 of file DenseMap.h.
References llvm::DebugEpochBase::incrementEpoch(), RHS, and std::swap().
Referenced by checkNumberingAndReplaceCommutative(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::DenseMap(), and llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::operator=().
|
friend |
Definition at line 689 of file DenseMap.h.