[llvm] bfe63ed - Revert "[llvm] Use llvm::bit_ceil (NFC)"

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 00:55:54 PST 2023


Author: Nikita Popov
Date: 2023-01-30T09:55:45+01:00
New Revision: bfe63ed1fe922f0b7366eeda44649954c9631e24

URL: https://github.com/llvm/llvm-project/commit/bfe63ed1fe922f0b7366eeda44649954c9631e24
DIFF: https://github.com/llvm/llvm-project/commit/bfe63ed1fe922f0b7366eeda44649954c9631e24.diff

LOG: Revert "[llvm] Use llvm::bit_ceil (NFC)"

This reverts commit 54971c8a39e8b682e7a042eee33f94a8283d8305.

This causes a compile-time regression. bit_ceil should probably
not be used in performance-critical code.

Added: 
    

Modified: 
    llvm/include/llvm/ADT/DenseMap.h
    llvm/lib/Transforms/Utils/SimplifyCFG.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/ADT/DenseMap.h b/llvm/include/llvm/ADT/DenseMap.h
index f88d722a0dada..9da6f479c4277 100644
--- a/llvm/include/llvm/ADT/DenseMap.h
+++ b/llvm/include/llvm/ADT/DenseMap.h
@@ -803,7 +803,7 @@ class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
     unsigned OldNumBuckets = NumBuckets;
     BucketT *OldBuckets = Buckets;
 
-    allocateBuckets(llvm::bit_ceil(std::max(64u, AtLeast)));
+    allocateBuckets(std::max<unsigned>(64, static_cast<unsigned>(NextPowerOf2(AtLeast-1))));
     assert(Buckets);
     if (!OldBuckets) {
       this->BaseT::initEmpty();
@@ -1042,7 +1042,7 @@ class SmallDenseMap
 
   void grow(unsigned AtLeast) {
     if (AtLeast > InlineBuckets)
-      AtLeast = llvm::bit_ceil(std::max(64u, AtLeast));
+      AtLeast = std::max<unsigned>(64, NextPowerOf2(AtLeast-1));
 
     if (Small) {
       // First move the inline buckets into a temporary storage.

diff  --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index e6d9b265dab9b..372a6698ce8ac 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -6552,7 +6552,7 @@ static bool SwitchToLookupTable(SwitchInst *SI, IRBuilder<> &Builder,
 
     // Make the mask's bitwidth at least 8-bit and a power-of-2 to avoid
     // unnecessary illegal types.
-    uint64_t TableSizePowOf2 = llvm::bit_ceil(std::max<uint64_t>(8, TableSize));
+    uint64_t TableSizePowOf2 = NextPowerOf2(std::max(7ULL, TableSize - 1ULL));
     APInt MaskInt(TableSizePowOf2, 0);
     APInt One(TableSizePowOf2, 1);
     // Build bitmask; fill in a 1 bit for every case.


        


More information about the llvm-commits mailing list