RFR: 8352963: [REDO] Missing late inline cleanup causes compiler/vectorapi/VectorLogicalOpIdentityTest.java IR failure
Vladimir Ivanov
vlivanov at openjdk.org
Fri Apr 4 19:31:48 UTC 2025
On Thu, 3 Apr 2025 06:46:23 GMT, Damon Fenacci <dfenacci at openjdk.org> wrote:
> This PR is a REDO of [JDK-8302459](https://bugs.openjdk.org/browse/JDK-8302459) ([PR](https://github.com/openjdk/jdk/pull/21682), [backout](https://bugs.openjdk.org/browse/JDK-8352965) triggered by a failing internal test).
>
> There was an issue with `CallGenerator::for_method_handle_call` that could delay late inlining by creating a "generic" `LateInlineCallGenerator` instead of a more specific `LateInlineMHCallGenerator`:
> https://github.com/openjdk/jdk/blob/74df384a9870431efb184158bba032c79c35356e/src/hotspot/share/opto/callGenerator.cpp#L991
> While running IGVN this could be misinterpreted as non-MH late-inline
> https://github.com/openjdk/jdk/blob/c282fb9add32f1fac8174ca84b1b68a869d2578d/src/hotspot/share/opto/callnode.cpp#L1088-L1091
> eventually triggering `assert(!cg->method()->is_method_handle_intrinsic(), "required");`
>
> The fix involves creating a `LateInlineMHCallGenerator` instead. Here is what changed from the backed out PR:
> https://github.com/openjdk/jdk/blob/c282fb9add32f1fac8174ca84b1b68a869d2578d/src/hotspot/share/opto/callGenerator.cpp#L991-L995
>
> ### Testing
>
> Tier 1-4 (windows-x64, linux-x64/aarch64, and macosx-x64/aarch64; release and debug mode)
src/hotspot/share/opto/callGenerator.cpp line 994:
> 992: CallGenerator::for_mh_late_inline(caller, callee, input_not_const);
> 993: } else {
> 994: CallGenerator::for_late_inline(callee, cg);
Would `-XX:-IncrementalInlineMH` hit the very same assertion? Should we simply require `IncrementalInlineMH` to delay inlining instead?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24402#discussion_r2029330281
More information about the hotspot-compiler-dev
mailing list