[llvm] [ADT] Move shrink_and_clear to DenseMapBase (NFC) (PR #165103)
Jakub Kuderski via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 25 08:23:18 PDT 2025
================
@@ -1168,6 +1146,20 @@ class SmallDenseMap
deallocate_buffer(OldRep.Buckets, sizeof(BucketT) * OldRep.NumBuckets,
alignof(BucketT));
}
+
+ std::pair<bool, unsigned> planShrinkAndClear() const {
+ unsigned NewNumBuckets = 0;
+ if (this->size()) {
+ NewNumBuckets = 1u << (Log2_32_Ceil(this->size()) + 1);
+ if (NewNumBuckets > InlineBuckets)
+ NewNumBuckets = std::max(64u, NewNumBuckets);
+ }
+ bool Reuse = Small ? NewNumBuckets <= InlineBuckets
+ : NewNumBuckets == getLargeRep()->NumBuckets;
+ if (Reuse)
+ return {false, 0}; // Reuse
----------------
kuhar wrote:
```suggestion
return {false, 0}; // Reuse.
```
https://github.com/llvm/llvm-project/pull/165103
More information about the llvm-commits
mailing list