[PATCH] D86988: [Inliner] Run always-inliner in inliner-wrapper
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 15 12:32:00 PDT 2020
aeubanks added a comment.
In D86988#2273210 <https://reviews.llvm.org/D86988#2273210>, @davidxl wrote:
> What is the compile time implication?
AlwaysInlinerPass looks at every function in the module and skips any without the alwaysinline function attribute, so I imagine it shouldn't be too bad in the typical case of no always_inline functions.
+nikic, is there any way to set off a job at http://llvm-compile-time-tracker.com/ with this patched in?
> The key issue here is handling of recursive calls. With this change, it is also possible to suppress more always_inline which can happen without this change. For instance in your example, if 'a' is also marked with always_inline, then not allowing b to be inlined into 'a' will enable 'a' to be inlined into its other callers. With this change, it is suppressed.
As long as the always_inline call graph is a DAG this should work, otherwise always_inline can't always be respected no matter what order things are inlined, right? Taking care of the DAG always_inline call graph case seems fairly important.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86988/new/
https://reviews.llvm.org/D86988
More information about the llvm-commits
mailing list