RFR: Expand LRB after compare-and-swap in C2 not in assembler

Roman Kennke rkennke at redhat.com
Thu Feb 21 17:55:34 UTC 2019


>> This removes one TODO-item from the LRB patch and moves the LRB from
>> assembler into C2 ideal graph. It should also fix one failure we've seen
>> in CI, which complained about missing LRB after CAE.
>>
>> http://cr.openjdk.java.net/~rkennke/lrb-cae/webrev.00/
> 
> Looks good to me.
> 
> So, expansion just works when you put ShenandoahLoadReferenceBarrierNode in the graph?

Before the patch, it was expanded by the
ShenandoahCompareAndExchangeP|NNode, in assembly, and otherwise
invisible to C2. Now the LRB is part of the ideal graph.

Thinking more about it, this might actually have been a bug too: we
replace ShCompareAndExchange with just CompareAndExchange on NULL input
for cmpval, in which case we'd lack the LRB.

Roman



More information about the shenandoah-dev mailing list