[llvm-dev] PGO information at LTO/thinLTO link step
Teresa Johnson via llvm-dev
llvm-dev at lists.llvm.org
Tue Oct 3 14:15:43 PDT 2017
On Tue, Oct 3, 2017 at 2:10 PM, Graham Yiu <gyiu at ca.ibm.com> wrote:
> Thanks Easwaran. This is what we've observed as well, where the old PM
> inliner was only looking hot/cold callee information, which have
> signficantly smaller boosts/penalties compared to callsite information.
>
> Teresa, do you know if there is some documentation/video/presentation on
> how PGO information is represented in LLVM and what information is passed
> via the IR? I'm finding some difficulty in getting the big picture via the
> code.
>
The documentation I am aware of is in the Language Ref and a subpage linked
from here:
https://llvm.org/docs/LangRef.html#prof-metadata
If that doesn't help let me know and I can point you to someone who would
know (if I can't answer it myself).
Teresa
>
>
> 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 05:00:11
> PM---On Tue, Oct 3, 2017 at 1:55 PM, Easwaran Raman <eraman at goo]Teresa
> Johnson ---10/03/2017 05:00:11 PM---On Tue, Oct 3, 2017 at 1:55 PM,
> Easwaran Raman <eraman at google.com> wrote: >
>
> From: Teresa Johnson <tejohnson at google.com>
> To: Easwaran Raman <eraman at google.com>
> Cc: Graham Yiu <gyiu at ca.ibm.com>, llvm-dev <llvm-dev at lists.llvm.org>
> Date: 10/03/2017 05:00 PM
>
> Subject: Re: [llvm-dev] PGO information at LTO/thinLTO link step
> ------------------------------
>
>
>
>
>
> On Tue, Oct 3, 2017 at 1:55 PM, Easwaran Raman <*eraman at google.com*
> <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* <llvm-dev at lists.llvm.org>> wrote:
>
>
> On Tue, Oct 3, 2017 at 1:38 PM, Graham Yiu <*gyiu at ca.ibm.com*
> <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* <(905)%20413-4077> C2-707/8200/Markham
> Email: *gyiu at ca.ibm.com* <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*
> <llvm-dev at lists.llvm.org>> wrote:
>
> From: Teresa Johnson <*tejohnson at google.com* <tejohnson at google.com>>
> To: Graham Yiu <*gyiu at ca.ibm.com* <gyiu at ca.ibm.com>>
> Cc: llvm-dev <*llvm-dev at lists.llvm.org* <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*
> <tejohnson at google.com> | *408-460-2413* <(408)%20460-2413>
> _______________________________________________
> 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=38hnZvEzFyovf0wgsdGGbzKq028feXdugel47ntZ4Lo&s=SfjVDeS9ryb7NpC-k_7Igt-khIsUZXWe76rgwPv3aVA&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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/67d3f433/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/67d3f433/attachment.gif>
More information about the llvm-dev
mailing list