RFR: 8332527: ZGC: generalize object cloning logic [v2]
Tobias Hartmann
thartmann at openjdk.org
Wed May 22 05:24:01 UTC 2024
On Tue, 21 May 2024 09:17:16 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:
>> 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).
>
> Roberto Castañeda Lozano has updated the pull request incrementally with one additional commit since the last revision:
>
> Applied Axel's suggestions
Why is `ac->is_clone_array()` known to be always false? And if so, why is there another check at line 433 of `ZBarrierSetC2::clone_at_expansion`?
-------------
PR Review: https://git.openjdk.org/jdk/pull/19311#pullrequestreview-2070120702
More information about the hotspot-compiler-dev
mailing list