RFR: 8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
Dean Long
dlong at openjdk.org
Thu Mar 20 19:28:08 UTC 2025
On Thu, 20 Mar 2025 17:56:36 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:
>> Could the problem be inconsistent use of non_connector_successor? Isn't there some logic which forces deopt blocks to have low frequencies? It it's only setting the non_connector_successor frequency then you'd get inconsistent results if you didn't use non_connector_successor for examining successors. Maybe it should be adjusting the frequency of all blocks leading to the non_connector_successor?
>
>> There may be a bug in frequency propagation.
>
> I haven't looked at these failures but could it have to do with irreducible loops? This is a known reason of frequency propagation inaccuracy in C2, see [JDK-8258895](https://bugs.openjdk.org/browse/JDK-8258895).
@robcasloz , that could be it, but I'm not enough of an expert. It seems to be this loop:
https://github.com/openjdk/jdk/blob/56038fb5a156568cce2e80f5db18b10ad61c06e4/test/jdk/java/foreign/TestHandshake.java#L104
and the block gets detected as empty and moved to the end by PhaseCFG::remove_empty_blocks(). Roberto, do you have time to help look at this?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23962#discussion_r2006312398
More information about the hotspot-compiler-dev
mailing list