Integrated: 8322692: ZGC: avoid over-unrolling due to hidden barrier size

Roberto Castañeda Lozano rcastanedalo at openjdk.org
Wed Jan 17 07:53:11 UTC 2024


On Thu, 11 Jan 2024 08:47:41 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%.

This pull request has now been integrated.

Changeset: bf666bc0
Author:    Roberto Castañeda Lozano <rcastanedalo at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/bf666bc0c7ead0c5520f21f8e8cfac15323f5b50
Stats:     112 lines in 7 files changed: 109 ins; 0 del; 3 mod

8322692: ZGC: avoid over-unrolling due to hidden barrier size

Reviewed-by: eosterlund, kvn

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

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


More information about the hotspot-compiler-dev mailing list