-
Enhancement
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11-shenandoah, 13, 14
-
b10
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.
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.
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.
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.
- relates to
-
JDK-8229419 Shenandoah: Cleanup LRB strength selector code
-
- Resolved
-