RFR: 8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'

Damon Fenacci dfenacci at openjdk.org
Wed Mar 12 07:57:52 UTC 2025


On Tue, 11 Mar 2025 22:55:42 GMT, Dean Long <dlong at openjdk.org> wrote:

>>> Adding to @dean-long's questions, I was wondering how we can get to a 9.97582e+36 value (since it is a runtime ubsan issue): is this a result of successive rounding-ups or there is perhaps an upstream issue?
>> 
>> That's a good question. I could add a bit of tracing or asserts to find out more about this.
>> It seems this is an aarch64 related thing because on (Linux) x86_64/ppc64le  I never observed this.
>> Do you think those high values are not expected ?
>
> Also, to compute `from_pct`, we end up multiplying and then dividing by the same value `b->_freq`, which cancel out and simplify to `100 * b->succ_prob(j)`.  Furthermore, succ_prob() should always return a value between 0.0 and 1.0, so the real problem is probably only `to_pct` and very small values of `target->_freq`.

> Do you think those high values are not expected ?

Sorry, my mistake. As @dean-long pointed out they are to be expected with very small values of `target->_freq`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23962#discussion_r1990884638


More information about the hotspot-compiler-dev mailing list