RFR (S) 8229416: Shenandoah: Demote or remove ShenandoahOptimize*Final optimizations
Roman Kennke
roman at kennke.org
Mon Aug 12 16:21:11 UTC 2019
> RFE:
> https://bugs.openjdk.java.net/browse/JDK-8229416
> https://cr.openjdk.java.net/~shade/8229416/webrev.01/
>
> There are three Shenandoah optimizations at the moment:
> ShenandoahOptimizeStaticFinals (enabled by default)
> ShenandoahOptimizeInstanceFinals (disabled by default)
> ShenandoahOptimizeStableFinals (disabled by default)
>
> The last two are known to break some programs, and they are definitely incorrect in
> post-LRB/post-nofwdptr world, where exposing the from-space object with unusual markword would wreck
> some havoc. These should be removed.
That is ok by me.
> The first optimization is eliminating barriers on constants, that are handled separately, and never
> get exposed as from-space objects. We should keep that optimization on, but to add future debugging,
> we would want to keep the flag as diagnostic.
I believe this optimization actually does nothing (interesting). C2
already optimizes access to static-finals to inlined constants, and we
eliminate barriers on inlined constants. We might want to check & verify
this, but I strongly suspect this optimization is actually a no-op (at
least in most/all interesting cases).
Roman
More information about the shenandoah-dev
mailing list