[PATCH] D23386: Make more fields of InlineParams optional.

Easwaran Raman via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 10 21:06:03 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL278312: Make more fields of InlineParams Optional. (authored by eraman).

Changed prior to commit:
  https://reviews.llvm.org/D23386?vs=67634&id=67650#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D23386

Files:
  llvm/trunk/include/llvm/Analysis/InlineCost.h
  llvm/trunk/lib/Analysis/InlineCost.cpp

Index: llvm/trunk/lib/Analysis/InlineCost.cpp
===================================================================
--- llvm/trunk/lib/Analysis/InlineCost.cpp
+++ llvm/trunk/lib/Analysis/InlineCost.cpp
@@ -624,6 +624,11 @@
     return B ? std::min(A, B.getValue()) : A;
   };
 
+  // return max(A, B) if B is valid.
+  auto MaxIfValid = [](int A, Optional<int> B) {
+    return B ? std::max(A, B.getValue()) : A;
+  };
+
   // Use the OptMinSizeThreshold or OptSizeThreshold knob if they are available
   // and reduce the threshold if the caller has the necessary attribute.
   if (Caller->optForMinSize())
@@ -644,11 +649,10 @@
   bool InlineHint = Callee.hasFnAttribute(Attribute::InlineHint) ||
                     PSI->isHotFunction(&Callee);
   if (InlineHint && !Caller->optForMinSize())
-    Threshold = std::max(Threshold, Params.HintThreshold);
+    Threshold = MaxIfValid(Threshold, Params.HintThreshold);
 
-  if (HotCallsite && HotCallSiteThreshold > Threshold &&
-      !Caller->optForMinSize())
-    Threshold = std::max(Threshold, Params.HotCallSiteThreshold);
+  if (HotCallsite && !Caller->optForMinSize())
+    Threshold = MaxIfValid(Threshold, Params.HotCallSiteThreshold);
 
   bool ColdCallee = PSI->isColdFunction(&Callee);
   // For cold callees, use the ColdThreshold knob if it is available and reduces
Index: llvm/trunk/include/llvm/Analysis/InlineCost.h
===================================================================
--- llvm/trunk/include/llvm/Analysis/InlineCost.h
+++ llvm/trunk/include/llvm/Analysis/InlineCost.h
@@ -124,7 +124,7 @@
   int DefaultThreshold;
 
   /// Threshold to use for callees with inline hint.
-  int HintThreshold;
+  Optional<int> HintThreshold;
 
   /// Threshold to use for cold callees.
   Optional<int> ColdThreshold;
@@ -136,7 +136,7 @@
   Optional<int> OptMinSizeThreshold;
 
   /// Threshold to use when the callsite is considered hot.
-  int HotCallSiteThreshold;
+  Optional<int> HotCallSiteThreshold;
 };
 
 /// Generate the parameters to tune the inline cost analysis based only on the


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23386.67650.patch
Type: text/x-patch
Size: 2055 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160811/6f1bef84/attachment.bin>


More information about the llvm-commits mailing list