RFR: 8365926: RISC-V: Performance regression in renaissance (chi-square)

Robbin Ehn rehn at openjdk.org
Fri Aug 29 06:29:56 UTC 2025


Hey, please consider!

A bunch of info in JBS entry, please read that also.

I narrowed this issue down to the old jal optimization, making direct calls when in reach.
This patch restores them and removes this regression.

In essence we turn "jalr ra,0(t1)" into a "jal ra,<dest>" if reachable, and restore the jalr if a new destination is not reachable.

Please test on your hardware!


Chi Square (100 runs each, 10 fastest iterations of each run, P550)
JDK-23 (last version with trampoline calls)
Mean: 3189.5827
Standard Deviation: 284.6478

JDK-25
Mean: 3424.8905
Standard Deviation: 222.2208

Patch:
Mean: 3144.8535
Standard Deviation: 229.2577


No issues found in t1, running t2 also. Stress tested on vf2, bpi-f2, p550.

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

Commit messages:
 - Merge branch 'master' into 8365926
 - draft jal<->jalr

Changes: https://git.openjdk.org/jdk/pull/26944/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26944&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365926
  Stats: 85 lines in 3 files changed: 68 ins; 2 del; 15 mod
  Patch: https://git.openjdk.org/jdk/pull/26944.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26944/head:pull/26944

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


More information about the hotspot-compiler-dev mailing list