RFR: 8257211: C2: Enable call devirtualization during post-parse phase [v3]

Vladimir Ivanov vlivanov at openjdk.java.net
Wed Dec 2 08:46:15 UTC 2020


On Wed, 2 Dec 2020 05:17:29 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> Is there nodes count limit checks during later inlining? I assume with this changes we will do more later inlining which may blow up nodes limit.

Late inlining already hits node limits regularly and `live_nodes() > LiveNodeCountInliningCutoff` is used to decide when to stop (see [Compile::inline_incrementally()](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/compile.cpp#L1907) for more details).

> src/hotspot/share/opto/callnode.cpp line 1053:
> 
>> 1051:     assert(IncrementalInlineMH, "required");
>> 1052:     assert(cg->call_node() == this, "mismatch");
>> 1053:     assert(cg->is_mh_late_inline(), "not virtual");
> 
> Why you are expecting only MH calls uses CallStaticJavaNode?

Only `LateInlineMH` and `LateInlineVirtual` generators link themselves to call nodes. The former uses `CallStaticJavaNode` and the latter uses `CallDynamicJavaNode`.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1550


More information about the hotspot-compiler-dev mailing list