RFR: 8330853: Add missing checks for ConnectionGraph::can_reduce_cmp() call [v3]

Vladimir Kozlov kvn at openjdk.org
Wed Apr 24 18:31:41 UTC 2024


> In Leyden testing CI we start hitting assert:
> 
> 
> # 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)
> 
> 
> [JDK-8316991](https://bugs.openjdk.org/browse/JDK-8316991) added new code which assumes that we always have sequence : IfNode->Bool->Cmp: [escape.cpp#L569](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/escape.cpp#L569)
> which is not true in some cases. In failed cases there is additional Opaque4 node between If and Bool nodes.
> 
> The fix is to add missing checks for If, Bool and Cmp nodes.
> 
> The fix is verified in Leyden CI testing. The failure happens only with special C2 mode compilation in Leyden.
> Running our regular tier1-3,stress,xcomp too.

Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:

  Put nodes dump under flag

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/18916/files
  - new: https://git.openjdk.org/jdk/pull/18916/files/6c19152f..acbfa8ea

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18916&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18916&range=01-02

  Stats: 12 lines in 1 file changed: 8 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/18916.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18916/head:pull/18916

PR: https://git.openjdk.org/jdk/pull/18916


More information about the hotspot-compiler-dev mailing list