[llvm] RFC: [ADT] Use a storage policy in DenseMap/SmallDenseMap (NFC) (PR #168255)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 16 16:29:13 PST 2025
================
@@ -518,43 +566,46 @@ class DenseMapBase : public DebugEpochBase {
return const_iterator::makeIterator(TheBucket, buckets(), *this);
}
- unsigned getNumEntries() const { return derived().getNumEntries(); }
+ unsigned getNumEntries() const { return Storage.getNumEntries(); }
- void setNumEntries(unsigned Num) { derived().setNumEntries(Num); }
+ void setNumEntries(unsigned Num) { Storage.setNumEntries(Num); }
void incrementNumEntries() { setNumEntries(getNumEntries() + 1); }
void decrementNumEntries() { setNumEntries(getNumEntries() - 1); }
- unsigned getNumTombstones() const { return derived().getNumTombstones(); }
+ unsigned getNumTombstones() const { return Storage.getNumTombstones(); }
- void setNumTombstones(unsigned Num) { derived().setNumTombstones(Num); }
+ void setNumTombstones(unsigned Num) { Storage.setNumTombstones(Num); }
void incrementNumTombstones() { setNumTombstones(getNumTombstones() + 1); }
void decrementNumTombstones() { setNumTombstones(getNumTombstones() - 1); }
- const BucketT *getBuckets() const { return derived().getBuckets(); }
+ const BucketT *getBuckets() const { return Storage.getBuckets(); }
- BucketT *getBuckets() { return derived().getBuckets(); }
+ BucketT *getBuckets() { return Storage.getBuckets(); }
- unsigned getNumBuckets() const { return derived().getNumBuckets(); }
-
- BucketT *getBucketsEnd() { return getBuckets() + getNumBuckets(); }
-
- const BucketT *getBucketsEnd() const {
- return getBuckets() + getNumBuckets();
- }
+ unsigned getNumBuckets() const { return Storage.getNumBuckets(); }
iterator_range<BucketT *> buckets() {
- return llvm::make_range(getBuckets(), getBucketsEnd());
+ return {getBuckets(), getBuckets() + getNumBuckets()};
}
iterator_range<const BucketT *> buckets() const {
- return llvm::make_range(getBuckets(), getBucketsEnd());
+ return {getBuckets(), getBuckets() + getNumBuckets()};
}
- void grow(unsigned AtLeast) { derived().grow(AtLeast); }
+ void grow(unsigned AtLeast) {
+ AtLeast = Storage.computeNumBuckets(AtLeast);
----------------
kazutakahirata wrote:
Fixed in this draft PR also.
https://github.com/llvm/llvm-project/pull/168255
More information about the llvm-commits
mailing list