[aarch64-port-dev ] Proposed patch for C2 volatile generation (resent)
Andrew Dinn
adinn at redhat.com
Wed Apr 1 15:45:25 UTC 2015
Here is a further update.
This time predicates needs_acquiring_load and needs-releasing_store are
fully implemented. That means we should now:
only generate an ldar<x> when we elide the membar acquire for a
volatile load
only generate an stlr<x> when we elide the membar release/volatile for
a volatile store
I have checked this for several inlined cases where acquire and release
membars are generated (e.g. Unsafe.getAndSetInt) and it correctly uses
ldr<x> and stlr<x> along with dmbs for those cases while still inserting
ldar<x> and stlr<x> for the volatile cases.
Next step is to add special case handling for the extra MemBarCPUOrder
added when an unsafe volatile read is inlined. I'll validate that
against netbeans before dealing with the if-then-else store pair which
arises with inlined unsafe volatile object writes.
regards,
Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Matt Parson (USA), Charlie Peters
(USA), Michael O'Neill (Ireland)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 7991.patch
Type: text/x-patch
Size: 30789 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/aarch64-port-dev/attachments/20150401/1a67f909/7991-0001.patch>
More information about the aarch64-port-dev
mailing list