-
Bug
-
Resolution: Unresolved
-
P4
-
21
In src/hotspot/share/opto/chaitin.cpp PhaseChaitin::Register_Allocate
we have the following bailout.
C->record_method_not_compilable("failed spill-split-recycle sanity check");
In my testing forJDK-8303951, I added an assert, and it did not fail anywhere but in the test
test/hotspot/jtreg/compiler/regalloc/TestC2IntPressure.java
This test was added inJDK-8268858 by [~jzhu].
But that test is supposed to check that such a bailout does not happen, or at least it checks that we compile some method that used to lead to the bailout.
Please investigate why this bailout is there, and why we hit it.
Please add an assert before the bailout, if that is possible. I wanted to add it forJDK-8303951, but because of this issue here, I cannot yet do it.
I reproduced it like this: add assert before bailout. Then I ran:
~/Documents/jtreg/bin/jtreg -va -s -jdk:/home/emanuel/Documents/fork3-jdk/build/linux-x64-slowdebug/jdk -javaoptions:"-server -Xcomp" -J-Djavatest.maxOutputSize=1000000 /home/emanuel/Documents/fork3-jdk/open/test/hotspot/jtreg/compiler/regalloc/TestC2IntPressure.java
[~jzhu] ran it without the assert, and saw that there were multiple methods with this bailout.
Update:
I also got the assert hit with this test:
jdk/internal/vm/Continuation/Fuzz.java#preserve-fp
And extra flags: -Xcomp -XX:+CreateCoredumpOnCrash -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:+TieredCompilation
we have the following bailout.
C->record_method_not_compilable("failed spill-split-recycle sanity check");
In my testing for
test/hotspot/jtreg/compiler/regalloc/TestC2IntPressure.java
This test was added in
But that test is supposed to check that such a bailout does not happen, or at least it checks that we compile some method that used to lead to the bailout.
Please investigate why this bailout is there, and why we hit it.
Please add an assert before the bailout, if that is possible. I wanted to add it for
I reproduced it like this: add assert before bailout. Then I ran:
~/Documents/jtreg/bin/jtreg -va -s -jdk:/home/emanuel/Documents/fork3-jdk/build/linux-x64-slowdebug/jdk -javaoptions:"-server -Xcomp" -J-Djavatest.maxOutputSize=1000000 /home/emanuel/Documents/fork3-jdk/open/test/hotspot/jtreg/compiler/regalloc/TestC2IntPressure.java
[~jzhu] ran it without the assert, and saw that there were multiple methods with this bailout.
Update:
I also got the assert hit with this test:
jdk/internal/vm/Continuation/Fuzz.java#preserve-fp
And extra flags: -Xcomp -XX:+CreateCoredumpOnCrash -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:+TieredCompilation
- relates to
-
JDK-8303951 Add asserts before record_method_not_compilable where possible
- Resolved
-
JDK-8268858 Determine register pressure automatically by the number of available registers for allocation
- Closed