Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8274972

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: repo-valhalla
    • Fix Version/s: repo-valhalla
    • Component/s: hotspot
    • Labels:

      Description

      The test failure is caused by this:
      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's new code with the upcoming merge. receiver should be not null (it's a InlineTypePtrNode) I think but that type is lost on the way. The InlineTypePtrNode is created when pushed down through Phis. The oop input of that InlineTypePtrNode is a Phi. That Phi is not created with type NotNull. It's actually a chain of Phis with all non Phi inputs NotNull but because it's a loop, IGVN doesn't prove that the Phis are NotNull.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              roland Roland Westrelin
              Reporter:
              roland Roland Westrelin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: