RFR: keep read barrier on final field access

Aleksey Shipilev shade at redhat.com
Tue Oct 24 13:41:33 UTC 2017


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);
 }

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list