Instead of ensuring the proper read- or write-invariant at obj and primitive store-sites, we can ensure strong invariant at object load sites. This would simplify lots of code, make optimizations much simpler and improve overall performance.
JDK-8222838Shenandoah: SEGV on accessing cset bitmap for NULL ptr
JDK-8222786Shenandoah get_barrier_strength should accept all shapes of (Weak)CAS reference barriers
JDK-8222129Shenandoah: Missing CompareAndSwapP/N case in get_barrier_strength()