Withdrawn: 8325681: C2 inliner rejects to inline a deeper callee because the methoddata of caller is immature.
duke
duke at openjdk.org
Thu May 9 03:35:58 UTC 2024
On Thu, 22 Feb 2024 05:37:26 GMT, Xin Liu <xliu at openjdk.org> wrote:
> This patch uses the methoddata of a method no matter it is mature or not to initialize `ciCallProfile`. Previously, C2 drops premature methoddata and leaves _count field of ciCallProfile -1. This leads C2 refuses to inline the callsite because its frequency is too low(-1 < MinInlineFrequencyRatio).
>
> In the given example, we observes that baz was not inlined because of 'low call site frequency'. This is wrong because its real frequency is 10% > MinInlineFrequencyRatio.
>
>
> 60 13 b 4 UnderProfiledSubprocedure::foo (9 bytes)
> @ 5 UnderProfiledSubprocedure::bar (6 bytes) inline (hot)
> @ 1 UnderProfiledSubprocedure::baz (19 bytes) failed to inline: low call site frequency
This pull request has been closed without being integrated.
-------------
PR: https://git.openjdk.org/jdk/pull/17957
More information about the hotspot-compiler-dev
mailing list