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