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

Teresa Johnson via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 3 14:00:04 PDT 2017


On Tue, Oct 3, 2017 at 1:55 PM, Easwaran Raman <eraman at google.com> wrote:

>
>
> 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.
>

Thanks for the clarification. (But essentially there should be no
difference between the profile info in the IR in the compile step vs the
link aka ThinLTO backend steps - the inliner in both cases is working off
the same profile info in the IR)

>
>
>> 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
>>
>>
>


-- 
Teresa Johnson |  Software Engineer |  tejohnson at google.com |  408-460-2413
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/e1eb4dc8/attachment-0001.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/e1eb4dc8/attachment-0001.gif>


More information about the llvm-dev mailing list