[NFC][Inliner] Simplify clamping in addCost

This commit is contained in:
Vitaly Buka 2022-08-01 19:53:09 -07:00
parent 84e9194828
commit 26dd42705c
1 changed files with 6 additions and 6 deletions

View File

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