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

Graham Yiu via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 3 12:54:28 PDT 2017



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.

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      C2-707/8200/Markham
Email: gyiu at ca.ibm.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/18c2b6f6/attachment.html>


More information about the llvm-dev mailing list