[llvm] r259915 - CallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"
Easwaran Raman via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 24 16:19:50 PST 2016
I'm curious about the cause of the size regression. The effect of r252595
is two-fold:
1. Inline zero-cost callees even if the threshold is negative or 0.
2. Inline positive-cost callees when they equal to the threshold (as
opposed to less than the threshold).
This change only reverts the effect 2 above. If that fixes the size
regression, is it the case that a lot of callees had cost equal to
threshold and the inlining decision got reversed? That could happen of
course, but I doubt that should cause a significant regression. I suspect
there are other subtle bugs in the code, so looking at specific instances
will be useful.
- Easwaran
On Fri, Feb 5, 2016 at 12:32 PM, Hans Wennborg via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: hans
> Date: Fri Feb 5 14:32:42 2016
> New Revision: 259915
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259915&view=rev
> Log:
> CallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"
>
> In r252595, I inadvertently changed the condition to "Cost <= Threshold",
> which caused a significant size regression in Chrome. This commit rectifies
> that.
>
> Modified:
> llvm/trunk/lib/Analysis/InlineCost.cpp
>
> Modified: llvm/trunk/lib/Analysis/InlineCost.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InlineCost.cpp?rev=259915&r1=259914&r2=259915&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Analysis/InlineCost.cpp (original)
> +++ llvm/trunk/lib/Analysis/InlineCost.cpp Fri Feb 5 14:32:42 2016
> @@ -1392,7 +1392,7 @@ bool CallAnalyzer::analyzeCall(CallSite
> else if (NumVectorInstructions <= NumInstructions / 2)
> Threshold -= (FiftyPercentVectorBonus - TenPercentVectorBonus);
>
> - return Cost <= std::max(0, Threshold);
> + return Cost < std::max(1, Threshold);
> }
>
> #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160224/09af2de6/attachment.html>
More information about the llvm-commits
mailing list