[PATCH] D138602: [WIP] Alwaysinliner time explosion with new pass manager
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 8 14:37:36 PST 2022
aeubanks added a comment.
ah I think I've found the issue
to accommodate another weird recursion + alwaysinline case, we added https://reviews.llvm.org/D86988 (later modified by https://reviews.llvm.org/D91567). that ended up running a round of alwaysinline before the normal inliner pass. with this case of mutually recursive alwaysinline functions, one round of inlining seems ok, but two rounds blows up. `-mandatory-inlining-first=0` makes compile times reasonable in your reduced test case by disabling that feature
I never liked D86988 <https://reviews.llvm.org/D86988>, but it works around other abuses of alwaysinline
the alternative to D86988 <https://reviews.llvm.org/D86988> I considered at the time, which would probably resolve this case, was to visit alwaysinline calls before normal calls, rather than running two rounds of inlining
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