RFC 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect?

Aleksey Shipilev shade at redhat.com
Mon Feb 27 09:53:16 UTC 2017


Hi,

Seeing failures on new jcstress runs:
  http://openjdk.linaro.org/jdk9/jcstress-nightly-runs/2017/056/results/

These "opaque" tests should never fail. I eyeballed the test, and this is not a
test bug.

C1 does not have intrinsics for Opaque, and therefore it should delegate Opaque
ops to volatile via fallbacks in Unsafe.java. But now I read the C1
Unsafe.getObject handling, and my hair stand on end, because I think C1 {L,G}VN
does not treat volatile Unsafe ops any specially, while it probably should:
 https://bugs.openjdk.java.net/browse/JDK-8175887

Makes sense?

Thanks,
-Aleksey

P.S. Linaro CI seems misconfigured by always running with C1, so can't see if
that is C1 specific or not:
http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2017-February/004246.html

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170227/68bdc15c/signature.asc>


More information about the hotspot-compiler-dev mailing list