llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
26.77k stars 10.97k forks source link

Add support for PGO in Machine Outliner #96830

Open hiraditya opened 1 week ago

hiraditya commented 1 week ago

Machine Outliner(MO) gives a lot of code size wins but creates severe regressions in some cases. If we can use PGO in MO that'll enable many to use it at other optimization levels as well. This is not suggesting that we should add MO at other levels, it is only for projects that can enable MO separately.

hiraditya commented 1 week ago

cc: @kbeyls

hiraditya commented 1 week ago

Related outlining issues shared by Kristof:

https://issues.chromium.org/issues/40613619 https://github.com/llvm/llvm-project/issues/39065 https://bugs.llvm.org/show_bug.cgi?id=39526

And "add profiles guidance to outlining" was proposed as LLVM project to work in outreachy https://www.outreachy.org/outreachy-may-2022-internship-round/