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

Aleksey Shipilev shade at redhat.com
Mon Oct 28 12:44:13 UTC 2019


On 10/28/19 1:39 PM, Roman Kennke wrote:
>>> 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;
> 
> This is so that we can push the LRBed value, but keep the non-LRB value
> for the membar-path.

Ah. It is weird to see membar not using LRB value...

>>  *) Is the order w.r.t. pre_barrier okay? New patch exposes non-LRB-ed load to pre_barrier on
>> T_OBJECT path.
> 
> The pre-barrier is only applied on stores, the LRB only on loads.

No, pre-barrier is not only for loads, see the T_OBJECT branch in the case right before new LRB
placement. I think that's a special case for reading Reference.referent.

>>  *) Is it fine to LRB the result of ConvX2UL from T_ADDRESS path?
> 
> I think so, the LRB is only applied on T_OBJECT and T_ARRAY.

Right. Disregard this comment.


-- 
Thanks,
-Aleksey



More information about the shenandoah-dev mailing list