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

Add missing checks for ConnectionGraph::can_reduce_cmp() call

    XMLWordPrintable

Details

    • b20

    Description

      In Leyden repo we start hitting next assert after merging JDK-8316991:

      # Internal Error (/workspace/open/src/hotspot/share/opto/node.hpp:407), pid=3216007, tid=3216030
      # assert(i < _max) failed: oob: i=2, _max=2

      Stack: [0x00007f20b011b000,0x00007f20b021b000], sp=0x00007f20b02157e0, free space=1001k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xbf5bb4] Node::in(unsigned int) const [clone .part.0]+0x24 (node.hpp:407)
      V [libjvm.so+0xbf69ea] ConnectionGraph::can_reduce_cmp(Node*, Node*) const+0x9a (node.hpp:407)
      V [libjvm.so+0xbf74a6] ConnectionGraph::can_reduce_check_users(Node*, unsigned int) const+0x996 (escape.cpp:578)
      V [libjvm.so+0xbfa481] ConnectionGraph::can_reduce_phi(PhiNode*) const+0xa1 (escape.cpp:622)
      V [libjvm.so+0xc1114f] ConnectionGraph::adjust_scalar_replaceable_state(JavaObjectNode*, Unique_Node_List&)+0x7bf (escape.cpp:2912)
      V [libjvm.so+0xc15a00] ConnectionGraph::compute_escape()+0x1e50 (escape.cpp:307)

      JDK-8316991 added new code which assumes that we always have sequence : IfNode->Bool->Cmp:
      https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/escape.cpp#L569
      which is not true in some cases. In the failed cases there is additional Opaque4 node between If and Bool nodes.

      Attachments

        Issue Links

          Activity

            People

              kvn Vladimir Kozlov
              kvn Vladimir Kozlov
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: