RFR: 8330853: Add missing checks for ConnectionGraph::can_reduce_cmp() call [v2]
Vladimir Kozlov
kvn at openjdk.org
Tue Apr 23 16:14:38 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.
Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:
Remove redundant opcode check
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18916/files
- new: https://git.openjdk.org/jdk/pull/18916/files/943fda52..6c19152f
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18916&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18916&range=00-01
Stats: 2 lines in 1 file changed: 0 ins; 1 del; 1 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