[RFC] Enable Partial Inliner by default

Hello,

I’d like to propose turning on the partial inliner (-enable-partial-inlining) by default.

We’ve seen small gains on SPEC2006/2017 runtimes as well as lnt compile-times with a 2nd stage bootstrap of LLVM. We also saw positive gains on our internal workloads.

Hi Graham, thanks for driving this. I assume the multi-region partial inliner you are working on will eventually replace the current single region partial-inliner and be turned on even without PGO. If that is the plan, is it better to wait until that work is more complete, or the multi-region support will only be used with profile feedback?

David

Hi David,

I think we should support multi-region outlining with and without PGO information at some point. However, the scope of the current patch (D38190) should be with PGO information only, as we haven’t come up with a viable heuristic to outline multiple regions without PGO data.

The current single region outlining (really, the ‘tail’ region of the function) seems to have some potential in various workloads, so I think it’s worthwhile to turn it on by default to expose the optimization to various platforms and get more feedback on modifications/improvements we can add in the future.

Cheers,

Graham Yiu
LLVM Compiler Development
IBM Toronto Software Lab
Office: (905) 413-4077 C2-707/8200/Markham
Email: gyiu@ca.ibm.com

graycol.gifXinliang David Li —11/03/2017 02:58:56 PM—Hi Graham, thanks for driving this. I assume the multi-region partial inliner you are working on wil