-
Bug
-
Resolution: Fixed
-
P2
-
11, 12
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8221575 | 12.0.2 | Dmitry Cherepanov | P2 | Closed | Fixed | b02 |
JDK-8286280 | 11.0.17-oracle | Tobias Hartmann | P2 | Closed | Fixed | b01 |
JDK-8221975 | 11.0.4 | Dmitry Cherepanov | P2 | Resolved | Fixed | b01 |
JDK-8221737 | 11.0.3 | Dmitry Cherepanov | P2 | Resolved | Fixed | b06 |
Test case for this issue:
public class app {
public static void main(String[] args) {
Integer cnt = 100;
if (args.length > 0) {
cnt = Integer.parseInt(args[0]);
}
for (int i = 0; i < cnt; i++) {
test(4558828911L,
4294967296L);
}
}
private static void test(long one, long two) {
while (true) {
if (one >= two) {
break;
}
}
}
}
OPTS="-XX:+PrintCompilation -XX:CompileOnly=app.test -XX:CompileCommand=quiet"
$JAVA_HOME/bin/java $OPTS app 10000
The issue is specific to 32-bit where C1 generated code enters infinite loop.
public class app {
public static void main(String[] args) {
Integer cnt = 100;
if (args.length > 0) {
cnt = Integer.parseInt(args[0]);
}
for (int i = 0; i < cnt; i++) {
test(4558828911L,
4294967296L);
}
}
private static void test(long one, long two) {
while (true) {
if (one >= two) {
break;
}
}
}
}
OPTS="-XX:+PrintCompilation -XX:CompileOnly=app.test -XX:CompileCommand=quiet"
$JAVA_HOME/bin/java $OPTS app 10000
The issue is specific to 32-bit where C1 generated code enters infinite loop.
- backported by
-
JDK-8221737 HotSpot C1 issue with comparing long numbers on x86 32-bit
- Resolved
-
JDK-8221975 HotSpot C1 issue with comparing long numbers on x86 32-bit
- Resolved
-
JDK-8221575 HotSpot C1 issue with comparing long numbers on x86 32-bit
- Closed
-
JDK-8286280 HotSpot C1 issue with comparing long numbers on x86 32-bit
- Closed
- relates to
-
JDK-8201447 C1 does backedge profiling incorrectly
- Resolved