RFR [sh/8u]: Correct order between load, LRB and membar nodes

Aleksey Shipilev shade at redhat.com
Mon Oct 28 12:35:29 UTC 2019


On 10/28/19 1:30 PM, Roman Kennke wrote:
> A test failed after recent LRB backport which is caused by wrong
> ordering of load, LRB and trailing membar. Currently the membar feeds
> off the LRB, but it should really have the raw load as its input so that
> membars don't participate in the data flow analysis that we do in our
> LRB optimizations.
> 
> The fix is in Unsafe accessor. This mimics how it's already done for
> getfield (in parse3.cpp) and also in later releases.
> 
> Webrev:
> http://cr.openjdk.java.net/~rkennke/lrb-membars/webrev.00/

Looks fine.

 *) Why do we need "ld" variable here again?
  2779     Node* ld = load;

 *) Is the order w.r.t. pre_barrier okay? New patch exposes non-LRB-ed load to pre_barrier on
T_OBJECT path.

 *) Is it fine to LRB the result of ConvX2UL from T_ADDRESS path?

-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list