-
Enhancement
-
Resolution: Withdrawn
-
P4
-
8-shenandoah, 11-shenandoah, 12, 13
-
generic
-
generic
Currently, object arraycopies requires up to 3 scans of the array:
1. Pre-barrier scans the dst array for SATB
2. Actual copy (using blit transfer)
3. Post-barrier scans the dst array again to update any from-space refs to to-space
This can be folded into a single loop which does the above per-element, and ensures to-space invariant before actually storing the object into the dst array. The latter would help other code that currently needs to deal with (temporary) from-space refs in arrays. SeeJDK-8222766.
1. Pre-barrier scans the dst array for SATB
2. Actual copy (using blit transfer)
3. Post-barrier scans the dst array again to update any from-space refs to to-space
This can be folded into a single loop which does the above per-element, and ensures to-space invariant before actually storing the object into the dst array. The latter would help other code that currently needs to deal with (temporary) from-space refs in arrays. See
- is blocked by
-
JDK-8223240 Extend arraycopy stub GC interface to allow GC replacement of the whole loop
- Closed
- relates to
-
JDK-8222537 Avoid fetching _klass twice in TypeArrayOop::size()
- Closed
-
JDK-8223244 Fix usage of ARRAYCOPY_DISJOINT decorator
- Resolved