[11u] RFR: 8257822: C2 crashes with SIGFPE due to a division that floats above its zero check
Doerr, Martin
martin.doerr at sap.com
Fri Mar 19 16:46:08 UTC 2021
Hi,
JDK-8257822 is backported to 11.0.12-oracle. I'd like to backport it for parity and push it together with the follow-up fixes (which apply cleanly on top of this one):
https://bugs.openjdk.java.net/browse/JDK-8258505
https://bugs.openjdk.java.net/browse/JDK-8259227
https://bugs.openjdk.java.net/browse/JDK-8260284
This one doesn't apply cleanly because of an unrelated context difference ("set_early_ctrl" has an additional parameter in 16). So it was trivial to resolve.
Bug:
https://bugs.openjdk.java.net/browse/JDK-8257822
Original change:
https://git.openjdk.java.net/jdk16/commit/ce36aeaa
11u backport:
http://cr.openjdk.java.net/~mdoerr/8257822_C2_SIGFPE_11u/webrev.00/
I couldn't get the new jtreg tests passing without removing the key "randomness" and the flag "-XX:StressSeed". I'd like to remove them from TestDivZeroWithSplitIf.java and TestDivZeroDominatedBy.java with JDK-8259227:
http://cr.openjdk.java.net/~mdoerr/8259227_C2_SIGFPE2_11u/webrev.00/
That one has applied cleanly, but I've removed these parts (also see below). Reason for doing it in that change is that the first 3 patches modify the same tests.
Please review.
Best regards,
Martin
diff -r 2150c70198e1 test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java
--- a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java Thu Jan 07 15:02:45 2021 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroDominatedBy.java Fri Mar 19 17:24:00 2021 +0100
@@ -24,12 +24,12 @@
/*
* @test
- * @key stress randomness
+ * @key stress
* @bug 8259227
* @summary Verify that zero check is executed before division/modulo operation.
* @requires vm.compiler2.enabled
* @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test
- * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:StressSeed=917280111 compiler.loopopts.TestDivZeroDominatedBy
+ * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroDominatedBy
* @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroDominatedBy::test
* -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroDominatedBy
*/
diff -r 2150c70198e1 test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java
--- a/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java Thu Jan 07 15:02:45 2021 +0000
+++ b/test/hotspot/jtreg/compiler/loopopts/TestDivZeroWithSplitIf.java Fri Mar 19 17:24:00 2021 +0100
@@ -24,12 +24,12 @@
/*
* @test
- * @key stress randomness
+ * @key stress
* @bug 8257822
* @summary Verify that zero check is executed before division/modulo operation.
* @requires vm.compiler2.enabled
* @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test
- * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM -XX:StressSeed=873732072 compiler.loopopts.TestDivZeroWithSplitIf
+ * -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroWithSplitIf
* @run main/othervm -Xcomp -XX:-TieredCompilation -XX:CompileOnly=compiler/loopopts/TestDivZeroWithSplitIf::test
* -XX:+UnlockDiagnosticVMOptions -XX:+StressGCM compiler.loopopts.TestDivZeroWithSplitIf
*/
More information about the jdk-updates-dev
mailing list