The replace_parallel_iv() function crashes in a specific edge case. Not sure if the crash happens on platforms other than x86, but the result of a division operation can not be represented.
Small test case below, run with -XX:-TieredCompilation -XX:-BackgroundCompilation for reproduction.
Contribution forthcoming shortly with proposed fix.
public class TestImpossibleIV {
static private void testMethod() {
int sum = 0;
// A unit count-down loop which has an induction variable with
// MIN_VALUE stride.
for (int i = 100000; i >= 0; i--) {
sum += Integer.MIN_VALUE;
}
}
public static void main(String[] args) {
testMethod();
}
}