RFR: 8298189: Regression in SPECjvm2008-MonteCarlo for pre-Cascade Lake Intel processors
Tobias Hartmann
thartmann at openjdk.org
Mon Apr 24 09:19:45 UTC 2023
On Mon, 24 Apr 2023 06:05:21 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:
> 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.
Good job in nailing this down! The fix looks reasonable to me.
-------------
Marked as reviewed by thartmann (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/13605#pullrequestreview-1397530117
More information about the hotspot-compiler-dev
mailing list