RFR: 8298189: Regression in SPECjvm2008-MonteCarlo for pre-Cascade Lake Intel processors
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Mon Apr 24 07:17:49 UTC 2023
The `mov + inc/dec -> lea` subset of the peephole rules introduced by [JDK-8283699](https://bugs.openjdk.org/browse/JDK-8283699) has been found to cause minor regressions for some common benchmarks on Intel microarchitectures earlier than Cascade Lake. This changeset limits their application to Intel Cascade Lake and microarchitectures with full ALU support for lea (`VM_Version::supports_fast_3op_lea()`), where these peephole rules have been confirmed to be beneficial. The adjustment speeds up SPECjvm2008's MonteCarlo benchmark by between 0.1% and 2.7% on pre-Cascade Lake microarchitectures (Haswell-DT, Coffee Lake-B) across different garbage collectors (G1, ZGC). It additionally yields a speedup of 2.1% on SPECjvm2008's Derby benchmark when using G1 on Coffee Lake-B.
Thanks to @ericcaspole for discussions and helping out with benchmarking.
#### Testing
##### Functionality
- tier1-5 (windows-x64, linux-x64, macosx-x64; release and debug mode).
- Checked that the expected combination of peephole rules is enabled for all microarchitectures supported by Intel's Software Development Emulator 9.0.
##### Performance
- Tested performance on a set of standard benchmark suites (DaCapo, SPECjbb2015, SPECjvm2008), different Intel microarchitectures (Haswell-DT, Coffee Lake-B, Cascade Lake, Ice Lake-SP) and operating systems (linux-x64, windows-x64, and macosx-x64). No significant change was observed besides the improvements mentioned above.
-------------
Commit messages:
- Run x86 mov + inc/dec -> lea peephole rules only on Cascade Lake or later
Changes: https://git.openjdk.org/jdk/pull/13605/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13605&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8298189
Stats: 23 lines in 3 files changed: 17 ins; 1 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/13605.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13605/head:pull/13605
PR: https://git.openjdk.org/jdk/pull/13605
More information about the hotspot-compiler-dev
mailing list