[llvm-dev] Current PGO status

Xinliang David Li via llvm-dev
Mon, 05 Feb 2018 06:38:41 -0000

On Sun, Feb 4, 2018 at 9:59 PM, Victor Leschuk <vleschuk at
accesssoftek.com>
wrote:

> Hello David!
>
> I have recently started acquaintance with PGO in LLVM/clang and found
> your e-mail thread:
> http://lists.llvm.org/pipermail/llvm-dev/2016-May/099395.html . Here you
> posted a nice list of optimizations that use profiling and of those
> which could be using but don't. However that thread is about 2 years
> old. Could you please kindly let me know if there were any significant
> changes in this area since that time?
>


Yes, there were quite some changes since then. Here are some of the new
features:

* LLVM IR based PGO -- this is designed to maximize program performance.
The option to turn it on is -fprofile-generate/-fprofile-use
* value profiling support in PGO -- currently support indirect call target
profiling and memcpy/memset size profiling and optimizations
* Profile data is made available for inliner to use (enabled only for the
new pass manager: -fexperimental-new-pass-manager)
* Profile aware LICM is available -- implemented via a profile driven code
sinking pass
* Partial inlining is made profile aware;  Graham Yu also added support for
multiple region function outlining (with PGO)
* BB layout heuristics are tuned with PGO
* hotness driven function layout optimization

There are pending work in the following area:
* profile aware loop vectorization, etc
* control heigh reduction optimization (Hiroshi is working on this)

ThinLTO also works well with PGO.

Hope this helps.

David

>* What I can tell you is that there are many missing ones (that can benefit
*from profile): such as profile aware LICM (patch pending), speculative PRE,
loop unrolling, loop peeling, auto vectorization, inlining, function
splitting, function layout, function outlinling,  profile driven size
optimization, induction variable optimization/strength reduction, stringOp
specialization/optimization/inlining, switch peeling/lowering etc. The
biggest profile user today include ralloc, BB layout, ifcvt, shrinkwrapping
etc, but there should be rooms to be improvement there too.



> Thanks in advance!
>
> --
> Best Regards,
>
> Victor Leschuk | Software Engineer | Access Softek
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20180204/c920c66b/attachment.html>