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