[llvm-dev] PGO information at LTO/thinLTO link step

Easwaran Raman via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 3 13:55:25 PDT 2017


On Tue, Oct 3, 2017 at 1:46 PM, Teresa Johnson via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

>
>
> On Tue, Oct 3, 2017 at 1:38 PM, Graham Yiu <gyiu at ca.ibm.com> wrote:
>
>> Hi Teresa,
>>
>> Actually, enabling the new pass manager manually seems to have solved
>> this issue, so this problem is only valid for the old pass manager.
>>
>
> It should not be an issue in the old PM either - the callsite hotness is
> passed via IR.
>
More precisely, the function entry counts are passed via IR. With the old
PM,  we don't have callsite hotness information, but callee's entry count
is used to boost the threshold.


> As David mentioned, the new PM inliner does a better job of updating call
> hotness after inlining, but it should be there (some things might look
> hotter than then should, which seems to be the opposite of the problem you
> are hitting). Can you send me a reproducer with the old PM?
>
> Teresa
>
>>
>>
>> Thanks,
>>
>> Graham Yiu
>> LLVM Compiler Development
>> IBM Toronto Software Lab
>> Office: (905) 413-4077 C2-707/8200/Markham
>> Email: gyiu at ca.ibm.com
>>
>> [image: Inactive hide details for Teresa Johnson ---10/03/2017 04:18:17
>> PM---On Tue, Oct 3, 2017 at 12:54 PM, Graham Yiu via llvm-dev <]Teresa
>> Johnson ---10/03/2017 04:18:17 PM---On Tue, Oct 3, 2017 at 12:54 PM, Graham
>> Yiu via llvm-dev < llvm-dev at lists.llvm.org> wrote:
>>
>> From: Teresa Johnson <tejohnson at google.com>
>> To: Graham Yiu <gyiu at ca.ibm.com>
>> Cc: llvm-dev <llvm-dev at lists.llvm.org>
>> Date: 10/03/2017 04:18 PM
>> Subject: Re: [llvm-dev] PGO information at LTO/thinLTO link step
>> ------------------------------
>>
>>
>>
>>
>>
>> On Tue, Oct 3, 2017 at 12:54 PM, Graham Yiu via llvm-dev <
>> *llvm-dev at lists.llvm.org* <llvm-dev at lists.llvm.org>> wrote:
>>
>>    Hello,
>>
>>    My team and I noticed that callsite hotness information is not
>>    preserved from compile to link step with LTO/thinLTO enabled. As a result,
>>    the link step inlining pass remains conservative when inlining callsites
>>    known to be hot (ie. without the 'HotCallSiteThreshold' which is set at
>>    3000 by default). There are likely many cross-module inlining opportunities
>>    lost this way, and diminishes the benefit of using LTO/thinLTO+PGO together.
>>
>>
>>
>> The callsite hotness is passed via the IR, so it should be there in the
>> LTO/ThinLTO backends (during the link step). Can you provide a reproducer
>> where that isn't happening?
>> Teresa
>>
>>
>>
>>    In general, does LLVM pass profiling information through the IR to
>>    the link step other than branch probabilities and function entry counts? If
>>    not, are there plans to do so in the future? For inlining specifically,
>>    perhaps we can mark callsites with hot/cold attributes during compile step
>>    to ensure LTO inlining will give appropriate threshold bonuses/penalties.
>>
>>    Any thoughts/insights/comments would be appreciated.
>>
>>    Cheers,
>>
>>    Graham Yiu
>>    LLVM Compiler Development
>>    IBM Toronto Software Lab
>>    Office: *(905) 413-4077* <(905)%20413-4077> C2-707/8200/Markham
>>    Email: *gyiu at ca.ibm.com* <gyiu at ca.ibm.com>
>>
>>    _______________________________________________
>>    LLVM Developers mailing list
>> *llvm-dev at lists.llvm.org* <llvm-dev at lists.llvm.org>
>> *http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev*
>>    <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwMFaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=4ST7e3kMd0GTi3w9ByK5Cw&m=843dScatsnrNnnksXYIg_bhjifer5nLwDpeZvFGhfsY&s=ophNPzRTV6yMQdp3RxwwiV4szFjf6F8lnEyy9Y5paxw&e=>
>>
>>
>>
>>
>> --
>> Teresa Johnson |  Software Engineer |  *tejohnson at google.com*
>> <tejohnson at google.com> |  408-460-2413 <(408)%20460-2413>
>>
>>
>>
>
>
> --
> Teresa Johnson |  Software Engineer |  tejohnson at google.com |
> 408-460-2413 <(408)%20460-2413>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/3a64b9eb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/3a64b9eb/attachment.gif>


More information about the llvm-dev mailing list