[PATCH] D138602: [WIP] Alwaysinliner time explosion with new pass manager
Davide Italiano via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 23 14:35:43 PST 2022
davide added a comment.
Hi @aeubanks -- admittedly I haven't touched the inliner in a very long time so I might be wrong here, but my understanding is that alwaysinline trumps the cost multiplier (that's why the previous patch is not enough).
To answer your question: most of this code is something that clients don't control (e.g. sometimes it's library code).
It took me a long time to even understand why the inliner went bananas. The old pass manager didn't really have this behavior, so clients internally upgrading the compilers get caught by surprise. To the best of my understanding, Rust and others hit this behavior too.
I concur with you that we should try respecting `always_inline` -- although in this case it seems to hit a pathological behavior.
If we don't want to take this patch "as-is", maybe a good tradeoff is that of having a `cl:opt`? WDYT?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138602/new/
https://reviews.llvm.org/D138602
More information about the llvm-commits
mailing list