RFR: 8330853: Add missing checks for ConnectionGraph::can_reduce_cmp() call
Vladimir Kozlov
kvn at openjdk.org
Tue Apr 23 15:53:28 UTC 2024
On Tue, 23 Apr 2024 14:36:36 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> 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.
linux-x86 failed to upload results but tests passed:
2024-04-23T15:24:09.6443002Z TEST TOTAL PASS FAIL ERROR
2024-04-23T15:24:09.6443822Z jtreg:test/hotspot/jtreg:tier1_gc 312 312 0 0
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18916#issuecomment-2072793761
More information about the hotspot-compiler-dev
mailing list