[9] RFR(S): 8036851: volatile double accesses are not explicitly atomic in C2
Christian Thalinger
christian.thalinger at oracle.com
Fri May 2 19:23:46 UTC 2014
src/share/vm/opto/memnode.hpp:
+ #ifndef PRODUCT
+ virtual void dump_spec(outputStream *st) const {
+ LoadNode::dump_spec(st);
+ if (_require_atomic_access) st->print(" Atomic!");
+ }
+ #endif
Indent is wrong.
Otherwise this looks good.
On May 2, 2014, at 2:15 AM, Tobias Hartmann <tobias.hartmann at oracle.com> wrote:
> Hi,
>
> please review the following patch for bug 8036851.
>
> Problem
> Volatile double accesses are not treated different from normal accesses in the C2 compiler with respect to atomicity because on x86 and sparc double accesses were always atomic. However, this may not be case on other architectures. On an architecture where there are atomic and non-atomic double accesses, we would have to implement all accesses to be atomic, because the C2 compiler does not distinguish between the two cases.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8036851
>
> Solution
> The C2 structure is adapted to distinguish between volatile and non-volatile double accesses.
> Webrev: http://cr.openjdk.java.net/~anoll/8036851/webrev.00/
>
> Tests
> JPRT
>
> Thanks,
> Tobias
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140502/046e34b4/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list