RFR: 8322692: ZGC: avoid over-unrolling due to hidden barrier size [v2]

Erik Österlund eosterlund at openjdk.org
Tue Jan 16 10:07:22 UTC 2024


On Mon, 15 Jan 2024 09:01:14 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

>> This changeset refines the C2 loop unrolling heuristic by including an estimation of the final size of (Generational) ZGC barriers in the loop size computation. These are not exposed in C2's intermediate representation and thus currently ignored by the heuristic, which can lead to over-unrolling.
>> 
>> #### Testing
>> 
>> - tier1-5, stress test, fuzzing (windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64).
>> - tier6-9 (windows-x64, linux-x64, linux-aarch64, macosx-x64, macosx-aarch64, ZGC-specific tests only).
>> 
>> #### Performance and code size evaluation
>> 
>> - DaCapo, SPECjvm2008, SPECjbb2015 (linux-x64 with `-XX:+UseZGC -XX:+ZGenerational`). The changeset reduces slightly the size of the C2-generated code (around 0.3% fewer bytes per compiled bytecode for the DaCapo `fop` benchmark) and speeds up SPECjvm2008's `Serial` by around 4%.
>
> Roberto Castañeda Lozano has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Update copyright years
>  - Exclude size of slow path from estimation

Looks good. Thanks for fixing!

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

Marked as reviewed by eosterlund (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17367#pullrequestreview-1822961423


More information about the hotspot-compiler-dev mailing list