[llvm] 5dff1ad - [ADT] Use a range-based for loop in DenseMap.h (NFC) (#152438)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 7 07:22:32 PDT 2025
Author: Kazu Hirata
Date: 2025-08-07T07:22:29-07:00
New Revision: 5dff1ad3a3570f0f5a154590ce43b107dc6c3994
URL: https://github.com/llvm/llvm-project/commit/5dff1ad3a3570f0f5a154590ce43b107dc6c3994
DIFF: https://github.com/llvm/llvm-project/commit/5dff1ad3a3570f0f5a154590ce43b107dc6c3994.diff
LOG: [ADT] Use a range-based for loop in DenseMap.h (NFC) (#152438)
This patch teaches moveFromOldBuckets to take an iterator_range so
that it can use a range-based for loop.
Added:
Modified:
llvm/include/llvm/ADT/DenseMap.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/ADT/DenseMap.h b/llvm/include/llvm/ADT/DenseMap.h
index ea5eac4cc63f0..1f2721322e34a 100644
--- a/llvm/include/llvm/ADT/DenseMap.h
+++ b/llvm/include/llvm/ADT/DenseMap.h
@@ -454,28 +454,28 @@ class DenseMapBase : public DebugEpochBase {
return NextPowerOf2(NumEntries * 4 / 3 + 1);
}
- void moveFromOldBuckets(BucketT *OldBucketsBegin, BucketT *OldBucketsEnd) {
+ void moveFromOldBuckets(iterator_range<BucketT *> OldBuckets) {
initEmpty();
// Insert all the old elements.
const KeyT EmptyKey = getEmptyKey();
const KeyT TombstoneKey = getTombstoneKey();
- for (BucketT *B = OldBucketsBegin, *E = OldBucketsEnd; B != E; ++B) {
- if (!KeyInfoT::isEqual(B->getFirst(), EmptyKey) &&
- !KeyInfoT::isEqual(B->getFirst(), TombstoneKey)) {
+ for (BucketT &B : OldBuckets) {
+ if (!KeyInfoT::isEqual(B.getFirst(), EmptyKey) &&
+ !KeyInfoT::isEqual(B.getFirst(), TombstoneKey)) {
// Insert the key/value into the new table.
BucketT *DestBucket;
- bool FoundVal = LookupBucketFor(B->getFirst(), DestBucket);
+ bool FoundVal = LookupBucketFor(B.getFirst(), DestBucket);
(void)FoundVal; // silence warning.
assert(!FoundVal && "Key already in new map?");
- DestBucket->getFirst() = std::move(B->getFirst());
- ::new (&DestBucket->getSecond()) ValueT(std::move(B->getSecond()));
+ DestBucket->getFirst() = std::move(B.getFirst());
+ ::new (&DestBucket->getSecond()) ValueT(std::move(B.getSecond()));
incrementNumEntries();
// Free the value.
- B->getSecond().~ValueT();
+ B.getSecond().~ValueT();
}
- B->getFirst().~KeyT();
+ B.getFirst().~KeyT();
}
}
@@ -867,7 +867,8 @@ class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
return;
}
- this->moveFromOldBuckets(OldBuckets, OldBuckets + OldNumBuckets);
+ this->moveFromOldBuckets(
+ llvm::make_range(OldBuckets, OldBuckets + OldNumBuckets));
// Free the old table.
deallocate_buffer(OldBuckets, sizeof(BucketT) * OldNumBuckets,
@@ -952,6 +953,9 @@ class SmallDenseMap
struct LargeRep {
BucketT *Buckets;
unsigned NumBuckets;
+ iterator_range<BucketT *> buckets() {
+ return llvm::make_range(Buckets, Buckets + NumBuckets);
+ }
};
/// A "union" of an inline bucket array and the struct representing
@@ -1129,7 +1133,7 @@ class SmallDenseMap
Small = false;
new (getLargeRep()) LargeRep(allocateBuckets(AtLeast));
}
- this->moveFromOldBuckets(TmpBegin, TmpEnd);
+ this->moveFromOldBuckets(llvm::make_range(TmpBegin, TmpEnd));
return;
}
@@ -1141,8 +1145,7 @@ class SmallDenseMap
new (getLargeRep()) LargeRep(allocateBuckets(AtLeast));
}
- this->moveFromOldBuckets(OldRep.Buckets,
- OldRep.Buckets + OldRep.NumBuckets);
+ this->moveFromOldBuckets(OldRep.buckets());
// Free the old table.
deallocate_buffer(OldRep.Buckets, sizeof(BucketT) * OldRep.NumBuckets,
More information about the llvm-commits
mailing list