Improve DenseMap checks for power of 2 growth. Thanks for the tip Jakob

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166609 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Pete Cooper 2012-10-24 18:50:44 +00:00
parent b52fb87617
commit 99112c6b19

View File

@ -600,8 +600,7 @@ public:
unsigned OldNumBuckets = NumBuckets;
BucketT *OldBuckets = Buckets;
AtLeast = isPowerOf2_32(AtLeast) ? AtLeast : NextPowerOf2(AtLeast);
allocateBuckets(std::max<unsigned>(64, AtLeast));
allocateBuckets(std::max<unsigned>(64, NextPowerOf2(AtLeast-1)));
assert(Buckets);
if (!OldBuckets) {
this->BaseT::initEmpty();
@ -827,10 +826,8 @@ public:
}
void grow(unsigned AtLeast) {
if (AtLeast >= InlineBuckets) {
AtLeast = isPowerOf2_32(AtLeast) ? AtLeast : NextPowerOf2(AtLeast);
AtLeast = std::max<unsigned>(64, AtLeast);
}
if (AtLeast >= InlineBuckets)
AtLeast = std::max<unsigned>(64, NextPowerOf2(AtLeast-1));
if (Small) {
if (AtLeast < InlineBuckets)