summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/DenseMap.h
diff options
context:
space:
mode:
authorPete Cooper <peter_cooper@apple.com>2012-10-24 18:50:44 +0000
committerPete Cooper <peter_cooper@apple.com>2012-10-24 18:50:44 +0000
commit99112c6b193c54409e2a3a5ea76c3759d5c1244c (patch)
tree2c828811263f554c3e1349b8b881ac6cdfc7a3b4 /include/llvm/ADT/DenseMap.h
parentb52fb876171e3670e7307fda4459ca005d49d9f5 (diff)
downloadllvm-99112c6b193c54409e2a3a5ea76c3759d5c1244c.tar.gz
llvm-99112c6b193c54409e2a3a5ea76c3759d5c1244c.tar.bz2
llvm-99112c6b193c54409e2a3a5ea76c3759d5c1244c.tar.xz
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
Diffstat (limited to 'include/llvm/ADT/DenseMap.h')
-rw-r--r--include/llvm/ADT/DenseMap.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/include/llvm/ADT/DenseMap.h b/include/llvm/ADT/DenseMap.h
index ce07f8e9c5..ac4bdbd126 100644
--- a/include/llvm/ADT/DenseMap.h
+++ b/include/llvm/ADT/DenseMap.h
@@ -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)