[PATCH] D24338: [InlineCost] Remove CallPenalty and change MinSizeThreshold to 5

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 1 22:01:50 PDT 2016


On Tue, Nov 1, 2016 at 8:06 PM, Mehdi AMINI <mehdi.amini at apple.com> wrote:

> mehdi_amini added a comment.
>
> (Add inline the answer to David, so that there is the relevant context)
>
>
>
> ================
> Comment at: lib/Analysis/InlineCost.cpp:938
> -      if (!isa<InlineAsm>(CS.getCalledValue()))
> -        Cost += InlineConstants::CallPenalty;
>      }
> ----------------
> >>! In D24338, @davidxl wrote:
> > Do you mean parameter passing? That should be counted independently  by
> the instruction visitor.
>
> No, I don’t mean the parameters, the visitor account for one instruction
> per parameter just before this indeed.
> However a call has other extra-cost on top of a regular instruction, even
> without any argument: it splits live-ranges and may cause spills around it
> to preserve registers that aren't callee-saved.
>
> In this sense, it make sense that a call can "cost" more than a normal
> instruction.
>

yes, inlining can lead to increased register pressure leading to use of
caller save registers (and spills around new callsites). However I think
this should not be blindly applied -- better tied with register pressure
analysis.

David


>
>
> Repository:
>   rL LLVM
>
> https://reviews.llvm.org/D24338
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161101/35e4ea3b/attachment.html>


More information about the llvm-commits mailing list