RFR: Fix C2 intrinsics barriers
Aleksey Shipilev
shade at redhat.com
Thu Sep 13 12:11:53 UTC 2018
On 09/13/2018 02:08 PM, Roman Kennke wrote:
> The latest merge threw off some intrinsics:
> - one arraycopy requires write- instead of read-barrier (upstream bug,
> but needs to be fixed ASAP, will also fix upstream)
> - two other instances seem to require explicit barriers even though
> make_unsafe_addr() should already insert them. Possible that the
> verifier is too strict here. Re-inserted those explicit barriers with
> comment. We should check what's up there
>
> http://cr.openjdk.java.net/~rkennke/fix-instrinsics-barriers/webrev.00/
Looks good to me.
It is probably better to cluster access_resolve blocks together, and new-line
them, so we know what the comment is about. Like this:
// TODO: We shouldn't strictly need explicit barriers here because
// make_unsafe_address() would insert them? However, it blows up
// jmh-specjvm with -XX:+ShenandoahVerifyOptoBarriers.
src_ptr = access_resolve(src_ptr, ACCESS_READ);
dst_ptr = access_resolve(dst_ptr, ACCESS_WRITE);
Node* src = make_unsafe_address(src_ptr, src_off, false);
Node* dst = make_unsafe_address(dst_ptr, dst_off, true);
Do this before the push.
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list