JDK-8241900 : Loop unswitching may cause dependence on null check to be lost
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:8,11,14,15
Priority:P2
Status:Closed
Resolution:Fixed
CPU:generic
Submitted:2020-03-31
Updated:2022-11-03
Resolved:2020-04-08
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Commandline:
TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC" make CONF=linux-aarch64-server-fastdebug run-test TEST=java/util/NavigableMap/LockStep.java
Always reproducible.
Comments
[~dskantz] The test uses the -XX:+StressGCM -XX:+StressLCM arguments. It's randomized so maybe you want to run in a loop and see if it fails when run a lot of times. I'm not aware of failure with 8.
28-10-2022
Hi [~roland]. I'd like to backport this to fix another issue (https://bugs.openjdk.org/browse/JDK-8288190). However I can't observe either test fail on 8. Do you recall if there was a test failure on 8 for this one?
(Also considering including just the test from this one : https://bugs.openjdk.org/browse/JDK-8229496 , but could not reproduce a failure there either)
Best, Daniel
28-10-2022
Fix request (13u)
I'd like to have it in 13u as well. The patch applies cleanly.
09-06-2020
Fix Request (14u)
This fixes the C2 bug. Patch applies cleanly to 14u, passes tier{1,2} with and without Shenandoah. New regression test does *not* fail without the product fix and still passes with it. I believe this is still good to have in 14u, it also matches what is done in 11u.
01-06-2020
jdk11 backport request
I would like to have the patch in openjdk11 as well (issue is present there too, and for parity with 11.0.8_oracle). The patch applies cleanly.
29-04-2020
URL: https://hg.openjdk.java.net/jdk/jdk/rev/49f0ff816424
User: roland
Date: 2020-04-08 08:06:33 +0000
08-04-2020
ILW = Crash in C2 compiled code due to incorrect loop unswitching optimization, reproducible with test, disable loop unswitching = HMM = P2
06-04-2020
Note this is not shenandoah or aarch64 specific even though we've hit with shenandoah on aarch64.