RFR (sh/jdk8): Backport: JDK-8231086: Shenandoah: Stronger invariant for object-arraycopy
Roman Kennke
rkennke at redhat.com
Thu Feb 20 18:43:58 UTC 2020
This is the backport for the strong invariant for arraycopy to
shenandoah/jdk8. It includes the following changesets:
- JDK-8221848: Shenandoah: ArrayCopy post-barrier improvements
- JDK-8231086: Shenandoah: Stronger invariant for object-arraycopy
- JDK-8231410: Shenandoah: clone barrier should use base pointer
- JDK-8231447: Shenandoah: Compilation-time regression after JDK-8231086
- JDK-8231499: Shenandoah:
compiler/arraycopy/TestDefaultMethodArrayCloneDeoptC2 fails
- JDK-8232778: Shenandoah: SBSA::arraycopy_prologue checks wrong register
Much of it amounts to a rewrite in jdk8 land because missing/totally
different barrier story.
JDK-8221848 is only a small fragment of the original change (gc-state
flag changes in shenandoahHeap.cpp), most of it would have been removed
by JDK-8231086 and was not easy to do because lacking arraycopy barriers.
http://cr.openjdk.java.net/~rkennke/JDK-8231086-jdk8/webrev.01/
Testing: hotspot_gc_shenandoah x86_64, x86_32, aarch64, specjvm running
on interpreter, C1 and C2. Zhengyu confirmed on Windows.
Can you please carefully review it? This is a somewhat risky change for
a backport because it's so different.
Roman
More information about the shenandoah-dev
mailing list