C1 crash in LinearScan::eliminate_spill_moves

Eirik Bjørsnøs eirbjo at gmail.com
Wed Feb 10 14:24:39 UTC 2021


> Does a negative vreg_number make any sense here?
>

c1_LIR.hpp:673 does the following:

(index << LIR_OprDesc::data_shift)

LIR_OprDesc::data_shift is 14 in this case and index is 131073. The left
shift results in an integer overflow where the result is -2147467264.

Having no idea what this function actually does, I'm not sure where to
proceed debugging from here. (My C++ skills are that of a four-year)

What does the index represent anyway? Some kind of virtual register? Why
would there be 131073 indexes? Seems a tad excessive?

Eirik.


More information about the hotspot-compiler-dev mailing list