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

Tobias Hartmann thartmann at openjdk.java.net
Thu Oct 14 09:47:13 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.

Looks good. Just wondering, why does IGVN not update the type of the Phi accordingly?

Please re-enable the test, I've just disabled it with https://github.com/openjdk/valhalla/commit/68265657bf1901965fafba3c258d39d202e1941a#diff-4d835d6d5e9844534a306405cf02e01b816b80a13a2e911d2f37fd38ecb2ac69R4123

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

Marked as reviewed by thartmann (Committer).

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



More information about the valhalla-dev mailing list