mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-22 10:33:23 +00:00
Change DenseMap to use a power of 2 growth if one is given instead of the next power of 2. This was causing DenseMaps to grow 4x instead of 2x. I'll keep an eye on the buildbots as this could impact performance
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166493 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fbaf206f47
commit
2430973fb6
@ -420,7 +420,7 @@ private:
|
||||
NumBuckets = getNumBuckets();
|
||||
}
|
||||
if (NumBuckets-(NewNumEntries+getNumTombstones()) <= NumBuckets/8) {
|
||||
this->grow(NumBuckets);
|
||||
this->grow(NumBuckets * 2);
|
||||
LookupBucketFor(Key, TheBucket);
|
||||
}
|
||||
assert(TheBucket);
|
||||
@ -600,7 +600,8 @@ public:
|
||||
unsigned OldNumBuckets = NumBuckets;
|
||||
BucketT *OldBuckets = Buckets;
|
||||
|
||||
allocateBuckets(std::max<unsigned>(64, NextPowerOf2(AtLeast)));
|
||||
AtLeast = isPowerOf2_32(AtLeast) ? AtLeast : NextPowerOf2(AtLeast);
|
||||
allocateBuckets(std::max<unsigned>(64, AtLeast));
|
||||
assert(Buckets);
|
||||
if (!OldBuckets) {
|
||||
this->BaseT::initEmpty();
|
||||
@ -826,8 +827,10 @@ public:
|
||||
}
|
||||
|
||||
void grow(unsigned AtLeast) {
|
||||
if (AtLeast >= InlineBuckets)
|
||||
AtLeast = std::max<unsigned>(64, NextPowerOf2(AtLeast));
|
||||
if (AtLeast >= InlineBuckets) {
|
||||
AtLeast = isPowerOf2_32(AtLeast) ? AtLeast : NextPowerOf2(AtLeast);
|
||||
AtLeast = std::max<unsigned>(64, AtLeast);
|
||||
}
|
||||
|
||||
if (Small) {
|
||||
if (AtLeast < InlineBuckets)
|
||||
|
Loading…
x
Reference in New Issue
Block a user