JDK 11 | JDK 17 | JDK 20 | JDK 21 |
---|---|---|---|
11.0.20-oracleFixed | 17.0.8-oracleFixed | 20.0.2Fixed | 21 b05Fixed |
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
JDK-8248552 added bailout code when trying to split DivI/ModI nodes without zero check (control is NULL) through an iv phi which has an input that contains zero in its type range. However, the fix is not complete in two regards: 1) We could have an "iv phi -> X -> DivI/ModI" chain where we want to split X and DivI/ModI through the iv phi. In this case, we first split X and create a new phi to merge the newly created nodes for X. When splitting the DivI/ModI node afterwards, the bailout code finds the newly created phi as divisor input which is not the iv phi and we do not bail out. We should change that. 2) Since JDK-8256655, we also optimize iv phis of long counted loops. The earlier added bailout code, however, only handles int divisions/modulo. We should extend the bailout code to additionally handle DivL/ModL.
|