RFR: keep read barrier on final field access

Aleksey Shipilev shade at redhat.com
Tue Oct 24 13:43:48 UTC 2017


On 10/24/2017 03:41 PM, Aleksey Shipilev wrote:
> On 10/24/2017 03:31 PM, Roland Westrelin wrote:
>>
>>> Yes, I agree. Let's emit the read barriers for them today.
>>
>> Ok. So that's what we go with, right?
>>
>> http://cr.openjdk.java.net/~roland/shenandoah/rbonfinalinstancefield/webrev.02/
> 
> Yes, I think so!
> 
> Sorry, but this is still extremely hard to read:
> 
>  175   if (!((ShenandoahOptimizeStaticFinals && field->is_static() && field->is_final()) ||
>  176         (ShenandoahOptimizeInstanceFinals && !field->is_static() && field->is_final()) ||
>  177         (ShenandoahOptimizeStableFinals && field->is_stable()))) {
> 
> Suggestion:
> 
>  if ((field->is_final()  &&  field->is_static() && !ShenandoahOptimizeStaticFinals) ||
>      (field->is_final()  && !field->is_static() && !ShenandoahOptimizeInstanceFinals) ||
>      (field->is_stable()                        && !ShenandoahOptimizeStableFinals)) {
>    obj = shenandoah_read_barrier(obj);
>  }

Ah, this misses the barriers on non-final/non-stable fields, sorry. Let me try again.

-Aleksey



More information about the shenandoah-dev mailing list