|
LLVM 24.0.0git
|
Classes | |
| class | DenseMapStorage |
| class | SmallDenseMapStorage |
| struct | StorageRep |
Typedefs | |
| using | UsedT = uint32_t |
| using | BucketHasher = unsigned (*)(const void *Key) |
| Hashes the key, at offset 0 in a bucket. | |
Functions | |
| template<typename BucketT> | |
| void | relocateBucket (BucketT *Dst, BucketT *Src) |
| constexpr size_t | usedWords (size_t N) |
| bool | used (const UsedT *U, size_t I) |
| void | setUsed (UsedT *U, size_t I) |
| void | unsetUsed (UsedT *U, size_t I) |
| void | clearUsed (UsedT *U, unsigned Num) |
| template<typename Fn> | |
| LLVM_ATTRIBUTE_ALWAYS_INLINE void | forEachUsed (const UsedT *U, unsigned N, Fn Func) |
| template<typename BucketT> | |
| constexpr size_t | allocAlign () |
| size_t | allocBytes (size_t BucketSize, unsigned Num) |
| template<typename BucketT> | |
| size_t | allocBytes (unsigned Num) |
| UsedT * | usedFor (void *Buckets, size_t BucketSize, unsigned Num) |
| template<typename KeyT, typename KeyInfoT> | |
| constexpr BucketHasher | hasherFor () |
| LLVM_ABI void | rehashRelocatable (void *Dst, UsedT *DstUsed, unsigned DstNumBuckets, const void *Src, const UsedT *SrcUsed, unsigned SrcNumBuckets, size_t BucketSize, BucketHasher Hasher) |
Rehash the live buckets of Src into the empty Dst, which must have room for all of them. | |
| LLVM_ABI void * | growRelocatable (void *OldBuckets, const UsedT *OldUsed, unsigned OldNumBuckets, unsigned NewNumBuckets, size_t BucketSize, size_t Align, BucketHasher Hasher, bool FreeOld) |
Allocate a table of NewNumBuckets buckets and rehash the OldNumBuckets buckets at OldBuckets into it, freeing them if FreeOld. | |
| uint64_t | mix (uint64_t x) |
Variables | |
| template<typename BucketT> | |
| constexpr bool | isRelocatableBucket |
| template<typename KeyT, typename KeyInfoT, typename = void> | |
| constexpr bool | hashesPointerValue = false |
| template<typename T> | |
| constexpr bool | hashesPointerValue< T *, DenseMapInfo< T * >, std::enable_if_t< std::is_same_v< typename DenseMapInfo< T * >::PointerValueHash, DenseMapInfo< T * > > > > |
| using llvm::densemap::detail::BucketHasher = unsigned (*)(const void *Key) |
Hashes the key, at offset 0 in a bucket.
Null asks the out-of-line rehash loop in DenseMap.cpp to inline the pointer hash.
Definition at line 165 of file DenseMap.h.
Definition at line 108 of file DenseMap.h.
|
constexpr |
Definition at line 147 of file DenseMap.h.
Referenced by llvm::densemap::detail::DenseMapStorage< BucketT >::allocateBuckets(), llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::allocateBuckets(), llvm::densemap::detail::DenseMapStorage< BucketT >::deallocateBuckets(), llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::deallocateBuckets(), llvm::densemap::detail::DenseMapStorage< BucketT >::grow(), and llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::grow().
Definition at line 150 of file DenseMap.h.
References usedWords().
Referenced by llvm::densemap::detail::DenseMapStorage< BucketT >::allocateBuckets(), llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::allocateBuckets(), allocBytes(), llvm::densemap::detail::DenseMapStorage< BucketT >::deallocateBuckets(), llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::deallocateBuckets(), llvm::DenseMapBase< densemap::detail::DenseMapStorage< BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::getMemorySize(), and growRelocatable().
Definition at line 153 of file DenseMap.h.
References allocBytes().
Definition at line 124 of file DenseMap.h.
References usedWords().
Referenced by llvm::DenseMapBase< densemap::detail::DenseMapStorage< BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::grow(), and growRelocatable().
| LLVM_ATTRIBUTE_ALWAYS_INLINE void llvm::densemap::detail::forEachUsed | ( | const UsedT * | U, |
| unsigned | N, | ||
| Fn | Func ) |
Definition at line 132 of file DenseMap.h.
References llvm::countr_zero(), LLVM_ATTRIBUTE_ALWAYS_INLINE, N, and usedWords().
Referenced by rehashLoop().
| void * llvm::densemap::detail::growRelocatable | ( | void * | OldBuckets, |
| const UsedT * | OldUsed, | ||
| unsigned | OldNumBuckets, | ||
| unsigned | NewNumBuckets, | ||
| size_t | BucketSize, | ||
| size_t | Align, | ||
| BucketHasher | Hasher, | ||
| bool | FreeOld ) |
Allocate a table of NewNumBuckets buckets and rehash the OldNumBuckets buckets at OldBuckets into it, freeing them if FreeOld.
Definition at line 85 of file DenseMap.cpp.
References llvm::allocate_buffer(), allocBytes(), clearUsed(), llvm::deallocate_buffer(), rehashRelocatable(), and usedFor().
Referenced by llvm::densemap::detail::DenseMapStorage< BucketT >::grow(), and llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::grow().
|
constexpr |
Definition at line 182 of file DenseMap.h.
References hashesPointerValue, and llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key.
Definition at line 29 of file DenseMapInfo.h.
References uint64_t.
Referenced by llvm::detail::combineHashValue(), llvm::DenseMapInfo< T * >::getHashValue(), and llvm::DenseMapInfo< T, std::enable_if_t< std::is_integral_v< T > > >::getHashValue().
| void llvm::densemap::detail::rehashRelocatable | ( | void * | Dst, |
| UsedT * | DstUsed, | ||
| unsigned | DstNumBuckets, | ||
| const void * | Src, | ||
| const UsedT * | SrcUsed, | ||
| unsigned | SrcNumBuckets, | ||
| size_t | BucketSize, | ||
| BucketHasher | Hasher ) |
Rehash the live buckets of Src into the empty Dst, which must have room for all of them.
Definition at line 71 of file DenseMap.cpp.
References rehashBySize().
Referenced by llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::grow(), and growRelocatable().
| void llvm::densemap::detail::relocateBucket | ( | BucketT * | Dst, |
| BucketT * | Src ) |
Definition at line 99 of file DenseMap.h.
Referenced by llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::swap().
Definition at line 121 of file DenseMap.h.
References I.
Referenced by llvm::DenseMapBase< densemap::detail::DenseMapStorage< BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::remove_if().
Definition at line 117 of file DenseMap.h.
References I.
Referenced by rehashLoop(), llvm::DenseMapBase< densemap::detail::DenseMapStorage< BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::remove_if(), and llvm::densemap::detail::SmallDenseMapStorage< BucketT, InlineBuckets >::swap().
Definition at line 156 of file DenseMap.h.
References assert().
Referenced by growRelocatable(), and llvm::densemap::detail::DenseMapStorage< BucketT >::setStorage().
Definition at line 111 of file DenseMap.h.
References assert(), llvm::isPowerOf2_64(), and N.
Referenced by allocBytes(), clearUsed(), and forEachUsed().
|
inlineconstexpr |
Definition at line 173 of file DenseMap.h.
Referenced by hasherFor().
|
inlineconstexpr |
Definition at line 175 of file DenseMap.h.
|
inlineconstexpr |
Definition at line 94 of file DenseMap.h.