[PATCH] D23386: Make more fields of InlineParams optional.
Easwaran Raman via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 10 17:13:51 PDT 2016
eraman created this revision.
eraman added a reviewer: davidxl.
eraman added subscribers: chandlerc, llvm-commits.
InlineHintThreshold and HotCallsiteThreshold are now optional. Also fixes a superfluous comparison while applying hot callsite threshold. NFC.
https://reviews.llvm.org/D23386
Files:
include/llvm/Analysis/InlineCost.h
lib/Analysis/InlineCost.cpp
Index: lib/Analysis/InlineCost.cpp
===================================================================
--- lib/Analysis/InlineCost.cpp
+++ 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: include/llvm/Analysis/InlineCost.h
===================================================================
--- include/llvm/Analysis/InlineCost.h
+++ 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.67634.patch
Type: text/x-patch
Size: 1989 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160811/c740377a/attachment.bin>
More information about the llvm-commits
mailing list