@@ -454,28 +454,28 @@ class DenseMapBase : public DebugEpochBase {
454454 return NextPowerOf2 (NumEntries * 4 / 3 + 1 );
455455 }
456456
457- void moveFromOldBuckets (BucketT *OldBucketsBegin, BucketT *OldBucketsEnd ) {
457+ void moveFromOldBuckets (iterator_range< BucketT *> OldBuckets ) {
458458 initEmpty ();
459459
460460 // Insert all the old elements.
461461 const KeyT EmptyKey = getEmptyKey ();
462462 const KeyT TombstoneKey = getTombstoneKey ();
463- for (BucketT *B = OldBucketsBegin, *E = OldBucketsEnd; B != E; ++B ) {
464- if (!KeyInfoT::isEqual (B-> getFirst (), EmptyKey) &&
465- !KeyInfoT::isEqual (B-> getFirst (), TombstoneKey)) {
463+ for (BucketT &B : OldBuckets ) {
464+ if (!KeyInfoT::isEqual (B. getFirst (), EmptyKey) &&
465+ !KeyInfoT::isEqual (B. getFirst (), TombstoneKey)) {
466466 // Insert the key/value into the new table.
467467 BucketT *DestBucket;
468- bool FoundVal = LookupBucketFor (B-> getFirst (), DestBucket);
468+ bool FoundVal = LookupBucketFor (B. getFirst (), DestBucket);
469469 (void )FoundVal; // silence warning.
470470 assert (!FoundVal && " Key already in new map?" );
471- DestBucket->getFirst () = std::move (B-> getFirst ());
472- ::new (&DestBucket->getSecond ()) ValueT (std::move (B-> getSecond ()));
471+ DestBucket->getFirst () = std::move (B. getFirst ());
472+ ::new (&DestBucket->getSecond ()) ValueT (std::move (B. getSecond ()));
473473 incrementNumEntries ();
474474
475475 // Free the value.
476- B-> getSecond ().~ValueT ();
476+ B. getSecond ().~ValueT ();
477477 }
478- B-> getFirst ().~KeyT ();
478+ B. getFirst ().~KeyT ();
479479 }
480480 }
481481
@@ -867,7 +867,8 @@ class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
867867 return ;
868868 }
869869
870- this ->moveFromOldBuckets (OldBuckets, OldBuckets + OldNumBuckets);
870+ this ->moveFromOldBuckets (
871+ llvm::make_range (OldBuckets, OldBuckets + OldNumBuckets));
871872
872873 // Free the old table.
873874 deallocate_buffer (OldBuckets, sizeof (BucketT) * OldNumBuckets,
@@ -952,6 +953,9 @@ class SmallDenseMap
952953 struct LargeRep {
953954 BucketT *Buckets;
954955 unsigned NumBuckets;
956+ iterator_range<BucketT *> buckets () {
957+ return llvm::make_range (Buckets, Buckets + NumBuckets);
958+ }
955959 };
956960
957961 // / A "union" of an inline bucket array and the struct representing
@@ -1129,7 +1133,7 @@ class SmallDenseMap
11291133 Small = false ;
11301134 new (getLargeRep ()) LargeRep (allocateBuckets (AtLeast));
11311135 }
1132- this ->moveFromOldBuckets (TmpBegin, TmpEnd);
1136+ this ->moveFromOldBuckets (llvm::make_range ( TmpBegin, TmpEnd) );
11331137 return ;
11341138 }
11351139
@@ -1141,8 +1145,7 @@ class SmallDenseMap
11411145 new (getLargeRep ()) LargeRep (allocateBuckets (AtLeast));
11421146 }
11431147
1144- this ->moveFromOldBuckets (OldRep.Buckets ,
1145- OldRep.Buckets + OldRep.NumBuckets );
1148+ this ->moveFromOldBuckets (OldRep.buckets ());
11461149
11471150 // Free the old table.
11481151 deallocate_buffer (OldRep.Buckets , sizeof (BucketT) * OldRep.NumBuckets ,
0 commit comments