[lworld] RFR: 8274972: [lworld] TestLWorld.test151() fails with IR verification errors

Tobias Hartmann thartmann at openjdk.java.net
Thu Oct 14 10:04:05 UTC 2021


On Thu, 14 Oct 2021 08:59:04 GMT, Roland Westrelin <roland at openjdk.org> wrote:

> The test failure is caused by this check:
> bool LateInlineVirtualCallGenerator::do_late_inline_check(Compile* C, JVMState* jvms) {
>   // Method handle linker case is handled in CallDynamicJavaNode::Ideal().
>   // Unless inlining is performed, _override_symbolic_info bit will be set in DirectCallGenerator::generate().
>   // Implicit receiver null checks introduce problems when exception states are combined.
>   Node* receiver = jvms->map()->argument(jvms, 0);
>   const Type* recv_type = C->initial_gvn()->type(receiver);
>   if (recv_type->maybe_null()) {
>     return false;
>   }
>   
> That code came with the recent merge. receiver should be not null
> (it's a InlineTypePtrNode) but it's not. The InlineTypePtrNode is
> created when pushed down through Phis. The fix I propose is to set the
> type of the phi that's the Oop input to InlineTypeBase to non null
> when it's created if it's observed that all InlineTypeBase nodes
> encountered when following Phi inputs are non null.

Ah, right. Makes sense.

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

PR: https://git.openjdk.java.net/valhalla/pull/563



More information about the valhalla-dev mailing list