Skip to content

Commit bab468f

Browse files
int6MaskRay
authored andcommitted
[llvm][ADT] Remove duplicate code in llvm::StringMapImpl::RehashTable
Remove duplicate code in llvm::StringMapImpl::RehashTable, near StringMap.cpp:229 ``` if (!NewTableArray[NewBucket]) { NewTableArray[FullHash & (NewSize - 1)] = Bucket; NewHashArray[FullHash & (NewSize - 1)] = FullHash; if (I == BucketNo) NewBucketNo = NewBucket; continue; } ``` Reviewed By: MaskRay, dexonsmith Differential Revision: https://reviews.llvm.org/D121726
1 parent a603f56 commit bab468f

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

llvm/lib/Support/StringMap.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -226,23 +226,16 @@ unsigned StringMapImpl::RehashTable(unsigned BucketNo) {
226226
for (unsigned I = 0, E = NumBuckets; I != E; ++I) {
227227
StringMapEntryBase *Bucket = TheTable[I];
228228
if (Bucket && Bucket != getTombstoneVal()) {
229-
// Fast case, bucket available.
229+
// If the bucket is not available, probe for a spot.
230230
unsigned FullHash = HashTable[I];
231231
unsigned NewBucket = FullHash & (NewSize - 1);
232-
if (!NewTableArray[NewBucket]) {
233-
NewTableArray[FullHash & (NewSize - 1)] = Bucket;
234-
NewHashArray[FullHash & (NewSize - 1)] = FullHash;
235-
if (I == BucketNo)
236-
NewBucketNo = NewBucket;
237-
continue;
232+
if (NewTableArray[NewBucket]) {
233+
unsigned ProbeSize = 1;
234+
do {
235+
NewBucket = (NewBucket + ProbeSize++) & (NewSize - 1);
236+
} while (NewTableArray[NewBucket]);
238237
}
239238

240-
// Otherwise probe for a spot.
241-
unsigned ProbeSize = 1;
242-
do {
243-
NewBucket = (NewBucket + ProbeSize++) & (NewSize - 1);
244-
} while (NewTableArray[NewBucket]);
245-
246239
// Finally found a slot. Fill it in.
247240
NewTableArray[NewBucket] = Bucket;
248241
NewHashArray[NewBucket] = FullHash;

0 commit comments

Comments
 (0)