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