mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[Inlining] Set inline-deferral-scale to 2.
Summary: This patch sets inline-deferral-scale to 2. Both internal and SPEC benchmarking show that 2 is the best number among -1, 2, 3, and 4. inline-deferral-scale SPECint2006 ------------------------------------------------------------ -1 38.0 (the default without this patch) 2 38.5 3 38.1 4 38.1 With the new default number, shouldBeDeferred returns true if: TotalCost < IC.getCost() * 2 where TotalCost is TotalSecondaryCost + IC.getCost() * NumCallerUsers. If TotalCost >= 0 and NumCallerUsers >= 2, then TotalCost >= IC.getCost() * 2, so shouldBeDeferred returns true only when NumCallerUsers is 1. Now, if TotalSecondaryCost < 0, which can happen if InlineConstants::LastCallToStaticBonus, a huge number, has been subtracted from TotalSecondaryCost, then TotalCost may be negative. In this case, shouldBeDeferred may return true even when NumCallerUsers >= 2. Reviewers: davidxl, nikic Reviewed By: davidxl Subscribers: xbolva00, hiraditya, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80229
This commit is contained in:
parent
f3c871d855
commit
dbf4c4b77e
@ -45,7 +45,7 @@ static cl::opt<bool>
|
||||
static cl::opt<int>
|
||||
InlineDeferralScale("inline-deferral-scale",
|
||||
cl::desc("Scale to limit the cost of inline deferral"),
|
||||
cl::init(-1), cl::Hidden);
|
||||
cl::init(2), cl::Hidden);
|
||||
|
||||
namespace {
|
||||
class DefaultInlineAdvice : public InlineAdvice {
|
||||
|
Loading…
Reference in New Issue
Block a user