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?
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.
LLVM Compiler Development
IBM Toronto Software Lab
Office: (905) 413-4077 C2-707/8200/Markham
Xinliang 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