RFR: 8332527: ZGC: generalize object cloning logic

Roberto Castañeda Lozano rcastanedalo at openjdk.org
Tue May 21 04:23:13 UTC 2024


This changeset generalize the logic to produce a runtime call to clone a class instance so that it can be shared by other collectors adopting the late barrier expansion model (including G1 in the near future, see [JEP 475](https://openjdk.org/jeps/475)). The changeset moves the logic from `ZBarrierSetC2` to the GC-shared `BarrierSetC2` class and adds support for 32-bits platforms.

#### Testing

- tier1-3 (windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64; release and debug mode).
- tier4-7 (linux-x64, linux-aarch64; release and debug mode; ZGC tests only).
- `compiler/arraycopy` tests (linux-x86-debug) with [an additional patch](https://github.com/openjdk/jdk/commit/ddcf777894e740b8e6ddbbf8821e82a173c23ef4) that implements cloning of large class instances with a runtime clone call rather than arraycopy when using G1 (to exercise the generalized logic on a 32-bits platform).

-------------

Commit messages:
 - Generalize logic to produce a runtime call that clones a class instance

Changes: https://git.openjdk.org/jdk/pull/19311/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19311&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332527
  Stats: 97 lines in 3 files changed: 55 ins; 41 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/19311.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19311/head:pull/19311

PR: https://git.openjdk.org/jdk/pull/19311


More information about the hotspot-gc-dev mailing list