RFR: 8322692: ZGC: avoid over-unrolling due to hidden barrier size [v2]
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Mon Jan 15 09:01:14 UTC 2024
> 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
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17367/files
- new: https://git.openjdk.org/jdk/pull/17367/files/6390878f..f90046b1
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17367&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17367&range=00-01
Stats: 9 lines in 3 files changed: 0 ins; 0 del; 9 mod
Patch: https://git.openjdk.org/jdk/pull/17367.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17367/head:pull/17367
PR: https://git.openjdk.org/jdk/pull/17367
More information about the hotspot-gc-dev
mailing list