RFR: keep read barrier on final field access

Aleksey Shipilev shade at redhat.com
Mon Oct 23 15:32:41 UTC 2017


On 10/23/2017 04:12 PM, Roland Westrelin wrote:
> 
>> *) String.value and String.coder are effectively stable, see UseImplicitStableValues. Should
> 
> String.value only?

I am probably confusing myself here. String.coder is treated specially along with other String
fields via ciField::trust_static_non_final_fields. String.value is being explicitly casted in
GraphKit to stable array to give the array contents stable properties?

>> GraphKit::load_String_* use ShenandoahOptimizeStableFinals then? Or, we are concerned with the same
>> bug as we see originally?
> 
> So test for ShenandoahOptimizeStableFinals || ShenandoahOptimizeInstanceFinals?

Hm. No, maybe the original ShenandoahOptimizeInstanceFinals is good, since it is not explicitly stable.

Thanks,
-Aleksey






More information about the shenandoah-dev mailing list