[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