RFR: 8322692: ZGC: avoid over-unrolling due to hidden barrier size
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Fri Jan 12 10:56: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.5% fewer bytes per compiled bytecode for the `fop` and `luindex` DaCapo benchmarks) and has no overall significant performance effect.
-------------
Commit messages:
- Take into account late barrier size estimation in C2 unrolling heuristics
Changes: https://git.openjdk.org/jdk/pull/17367/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17367&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8322692
Stats: 110 lines in 7 files changed: 109 ins; 0 del; 1 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