RFR: keep read barrier on final field access

Roland Westrelin rwestrel at redhat.com
Mon Oct 23 14:12:39 UTC 2017


> *) String.value and String.coder are effectively stable, see UseImplicitStableValues. Should

String.value only?

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

So test for ShenandoahOptimizeStableFinals || ShenandoahOptimizeInstanceFinals?

> *) ...in fact, should ShenandoahOptimizeStableFinals default to "false"?

It's probably safer, indeed. I'll make it false by default.

> *) It seems this description applies to ShenandoahOptimizeInstanceFinals too?
>
>  47           "Turn it off for maximum compatibility with reflection or JNI "   \
>  48           "code that manipulates final fields."                             \
>  49           "Defaults to true. ")                                             \

I'll duplicate that part for ShenandoahOptimizeInstanceFinals. I suppose
we can drop "Defaults to true. "

Roland.


More information about the shenandoah-dev mailing list