[llvm] 515660d - [Support] Make getMaxValue and getMinValue constexpr variables (NFC) (#161480)

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 1 08:59:54 PDT 2025


Author: Kazu Hirata
Date: 2025-10-01T08:59:49-07:00
New Revision: 515660d843b04d62eed816e9fb191f31af805e4b

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

LOG: [Support] Make getMaxValue and getMinValue constexpr variables (NFC) (#161480)

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.

Added: 
    

Modified: 
    llvm/include/llvm/Support/InstructionCost.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Support/InstructionCost.h b/llvm/include/llvm/Support/InstructionCost.h
index ab1c8ebc8c95e..507c16666b958 100644
--- a/llvm/include/llvm/Support/InstructionCost.h
+++ b/llvm/include/llvm/Support/InstructionCost.h
@@ -59,8 +59,8 @@ class InstructionCost {
       State = Invalid;
   }
 
-  static CostType getMaxValue() { return std::numeric_limits<CostType>::max(); }
-  static CostType getMinValue() { return std::numeric_limits<CostType>::min(); }
+  static constexpr CostType MaxValue = std::numeric_limits<CostType>::max();
+  static constexpr CostType MinValue = std::numeric_limits<CostType>::min();
 
 public:
   // A default constructed InstructionCost is a valid zero cost
@@ -69,8 +69,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 +102,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 +120,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 +138,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;


        


More information about the llvm-commits mailing list