[llvm-commits] [llvm] r166609 - /llvm/trunk/include/llvm/ADT/DenseMap.h

Pete Cooper peter_cooper at apple.com
Wed Oct 24 11:50:44 PDT 2012


Author: pete
Date: Wed Oct 24 13:50:44 2012
New Revision: 166609

URL: http://llvm.org/viewvc/llvm-project?rev=166609&view=rev
Log:
Improve DenseMap checks for power of 2 growth.  Thanks for the tip Jakob

Modified:
    llvm/trunk/include/llvm/ADT/DenseMap.h

Modified: llvm/trunk/include/llvm/ADT/DenseMap.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/DenseMap.h?rev=166609&r1=166608&r2=166609&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/DenseMap.h (original)
+++ llvm/trunk/include/llvm/ADT/DenseMap.h Wed Oct 24 13:50:44 2012
@@ -600,8 +600,7 @@
     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 @@
   }
 
   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)





More information about the llvm-commits mailing list