[lworld] RFR: 8274972: [lworld] TestLWorld.test151() fails with IR verification errors [v2]
Tobias Hartmann
thartmann at openjdk.java.net
Mon Oct 18 06:03:23 UTC 2021
On Fri, 15 Oct 2021 10:26:37 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.
>
> Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>
> - revised fix
> - Merge branch 'lworld' into JDK-8274972
> - fix
Looks good to me. Please file a bug for enabling the assert.
-------------
Marked as reviewed by thartmann (Committer).
PR: https://git.openjdk.java.net/valhalla/pull/563
More information about the valhalla-dev
mailing list