diff options
Diffstat (limited to 'llvm/lib/Analysis/InlineCost.cpp')
-rw-r--r-- | llvm/lib/Analysis/InlineCost.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp index d3b2930d7ea..549d3a97ec0 100644 --- a/llvm/lib/Analysis/InlineCost.cpp +++ b/llvm/lib/Analysis/InlineCost.cpp @@ -612,11 +612,14 @@ void CallAnalyzer::updateThreshold(CallSite CS, Function &Callee) { return; } - // If -inline-threshold is not given, listen to the optsize and minsize - // attributes when they would decrease the threshold. Function *Caller = CS.getCaller(); - - if (!(DefaultInlineThreshold.getNumOccurrences() > 0)) { + if (DefaultInlineThreshold.getNumOccurrences() > 0) { + // Explicitly specified -inline-threhold overrides the threshold passed to + // CallAnalyzer's constructor. + Threshold = DefaultInlineThreshold; + } else { + // If -inline-threshold is not given, listen to the optsize and minsize + // attributes when they would decrease the threshold. if (Caller->optForMinSize() && OptMinSizeThreshold < Threshold) Threshold = OptMinSizeThreshold; else if (Caller->optForSize() && OptSizeThreshold < Threshold) |