[llvm] [Support] Make getMaxValue and getMinValue constexpr variables (NFC) (PR #161480)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 30 22:49:53 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-support
Author: Kazu Hirata (kazutakahirata)
<details>
<summary>Changes</summary>
This patch makes getMaxValue and getMinValue constexpr variables and
"inlines" the calls to getMaxValue and getMinValue.
We could probably make InstructionCost constexpr also, but that's left
for another day.
---
Full diff: https://github.com/llvm/llvm-project/pull/161480.diff
1 Files Affected:
- (modified) llvm/include/llvm/Support/InstructionCost.h (+10-8)
``````````diff
diff --git a/llvm/include/llvm/Support/InstructionCost.h b/llvm/include/llvm/Support/InstructionCost.h
index ab1c8ebc8c95e..616b772a6e898 100644
--- a/llvm/include/llvm/Support/InstructionCost.h
+++ b/llvm/include/llvm/Support/InstructionCost.h
@@ -59,8 +59,10 @@ class InstructionCost {
State = Invalid;
}
- static CostType getMaxValue() { return std::numeric_limits<CostType>::max(); }
- static CostType getMinValue() { return std::numeric_limits<CostType>::min(); }
+ static inline constexpr CostType MaxValue =
+ std::numeric_limits<CostType>::max();
+ static inline constexpr CostType MinValue =
+ std::numeric_limits<CostType>::min();
public:
// A default constructed InstructionCost is a valid zero cost
@@ -69,8 +71,8 @@ class InstructionCost {
InstructionCost(CostState) = delete;
InstructionCost(CostType Val) : Value(Val), State(Valid) {}
- static InstructionCost getMax() { return getMaxValue(); }
- static InstructionCost getMin() { return getMinValue(); }
+ static InstructionCost getMax() { return MaxValue; }
+ static InstructionCost getMin() { return MinValue; }
static InstructionCost getInvalid(CostType Val = 0) {
InstructionCost Tmp(Val);
Tmp.setInvalid();
@@ -102,7 +104,7 @@ class InstructionCost {
// Saturating addition.
InstructionCost::CostType Result;
if (AddOverflow(Value, RHS.Value, Result))
- Result = RHS.Value > 0 ? getMaxValue() : getMinValue();
+ Result = RHS.Value > 0 ? MaxValue : MinValue;
Value = Result;
return *this;
@@ -120,7 +122,7 @@ class InstructionCost {
// Saturating subtract.
InstructionCost::CostType Result;
if (SubOverflow(Value, RHS.Value, Result))
- Result = RHS.Value > 0 ? getMinValue() : getMaxValue();
+ Result = RHS.Value > 0 ? MinValue : MaxValue;
Value = Result;
return *this;
}
@@ -138,9 +140,9 @@ class InstructionCost {
InstructionCost::CostType Result;
if (MulOverflow(Value, RHS.Value, Result)) {
if ((Value > 0 && RHS.Value > 0) || (Value < 0 && RHS.Value < 0))
- Result = getMaxValue();
+ Result = MaxValue;
else
- Result = getMinValue();
+ Result = MinValue;
}
Value = Result;
``````````
</details>
https://github.com/llvm/llvm-project/pull/161480
More information about the llvm-commits
mailing list