[llvm] 26dd427 - [NFC][Inliner] Simplify clamping in addCost

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 3 14:54:46 PDT 2022


Author: Vitaly Buka
Date: 2022-08-03T14:54:37-07:00
New Revision: 26dd42705c2af0b8f6e5d6cdb32c9bd5ed9524eb

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

LOG: [NFC][Inliner] Simplify clamping in addCost

Added: 
    

Modified: 
    llvm/lib/Analysis/InlineCost.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp
index d0a33dd596c83..ee0cb7f05251e 100644
--- a/llvm/lib/Analysis/InlineCost.cpp
+++ b/llvm/lib/Analysis/InlineCost.cpp
@@ -42,6 +42,7 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FormattedStream.h"
 #include "llvm/Support/raw_ostream.h"
+#include <climits>
 #include <limits>
 
 using namespace llvm;
@@ -502,7 +503,6 @@ int64_t getExpectedNumberOfCompare(int NumCaseCluster) {
 /// FIXME: if it is necessary to derive from InlineCostCallAnalyzer, note
 /// the FIXME in onLoweredCall, when instantiating an InlineCostCallAnalyzer
 class InlineCostCallAnalyzer final : public CallAnalyzer {
-  const int CostUpperBound = INT_MAX - InlineConstants::InstrCost - 1;
   const bool ComputeFullInlineCost;
   int LoadEliminationCost = 0;
   /// Bonus to be applied when percentage of vector instructions in callee is
@@ -579,9 +579,9 @@ class InlineCostCallAnalyzer final : public CallAnalyzer {
                                         BlockFrequencyInfo *CallerBFI);
 
   /// Handle a capped 'int' increment for Cost.
-  void addCost(int64_t Inc, int64_t UpperBound = INT_MAX) {
-    assert(UpperBound > 0 && UpperBound <= INT_MAX && "invalid upper bound");
-    Cost = std::min<int>(UpperBound, Cost + Inc);
+  void addCost(int64_t Inc) {
+    Inc = std::max<int64_t>(std::min<int64_t>(INT_MAX, Inc), INT_MIN);
+    Cost = std::max<int64_t>(std::min<int64_t>(INT_MAX, Inc + Cost), INT_MIN);
   }
 
   void onDisableSROA(AllocaInst *Arg) override {
@@ -662,7 +662,7 @@ class InlineCostCallAnalyzer final : public CallAnalyzer {
           static_cast<int64_t>(JumpTableSize) * InlineConstants::InstrCost +
           4 * InlineConstants::InstrCost;
 
-      addCost(JTCost, static_cast<int64_t>(CostUpperBound));
+      addCost(JTCost);
       return;
     }
 
@@ -677,7 +677,7 @@ class InlineCostCallAnalyzer final : public CallAnalyzer {
     int64_t SwitchCost =
         ExpectedNumberOfCompare * 2 * InlineConstants::InstrCost;
 
-    addCost(SwitchCost, static_cast<int64_t>(CostUpperBound));
+    addCost(SwitchCost);
   }
   void onMissedSimplification() override {
     addCost(InlineConstants::InstrCost);


        


More information about the llvm-commits mailing list