[all-commits] [llvm/llvm-project] 717cc0: InlineFunction: Split inlining into predicate and ...
Matt Arsenault via All-commits
all-commits at lists.llvm.org
Thu Apr 3 00:25:06 PDT 2025
Branch: refs/heads/users/arsenm/inline-function/split-legality-predicate-and-impl
Home: https://github.com/llvm/llvm-project
Commit: 717cc01812cf7ec67226a1d28552eb272bde042c
https://github.com/llvm/llvm-project/commit/717cc01812cf7ec67226a1d28552eb272bde042c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-04-03 (Thu, 03 Apr 2025)
Changed paths:
M llvm/include/llvm/Analysis/InlineCost.h
M llvm/include/llvm/Transforms/Utils/Cloning.h
M llvm/lib/Transforms/Utils/InlineFunction.cpp
Log Message:
-----------
InlineFunction: Split inlining into predicate and apply functions
This is to support a new inline function reduction in llvm-reduce,
which should pre-filter callsites that are not eligible for inlining.
This code was mostly structured as a match and apply, with a few
exceptions. The ugliest piece is for propagating and verifying compatible
getGC and personalities. Also collection of EHPad and the convergence token
to use are now cached in InlineFunctionInfo.
I was initially confused by the split between the checks performed here
and isInlineViable, so better document how this system is supposed to work.
It turns out this split does make sense, in that isInlineViable checks
if it's possible based on the callee content and the ultimate inline
depended on the callsite context. I think more renames of these functions
would help, and isInlineViable should probably move out of InlineCost to be
with these transfoms.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list