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

Add missing checks for ConnectionGraph::can_reduce_cmp() call

XMLWordPrintable

    • b20

      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.

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

              Created:
              Updated:
              Resolved: