RFR: 8365926: RISC-V: Performance regression in renaissance (chi-square) [v2]
    Hamlin Li 
    mli at openjdk.org
       
    Mon Sep  1 10:06:44 UTC 2025
    
    
  
On Mon, 1 Sep 2025 08:56:25 GMT, Robbin Ehn <rehn at openjdk.org> wrote:
>> 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-f3, p550.
>
> Robbin Ehn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge branch 'master' into 8365926
>  - Spelling
>  - Merge branch 'master' into 8365926
>  - draft jal<->jalr
Nice fix! Thanks!
Got some questions.
src/hotspot/cpu/riscv/nativeInst_riscv.cpp line 110:
> 108:   // We changed instruction stream
> 109:   if (mt_safe) {
> 110:     OrderAccess::release();
If we have relese here, do we still need the release in `set_stub_address_destination_at`?
src/hotspot/cpu/riscv/nativeInst_riscv.cpp line 111:
> 109:   if (mt_safe) {
> 110:     OrderAccess::release();
> 111:     ICache::invalidate_range(jal_pc, NativeInstruction::instruction_size);
should `jal_pc` be `instruction_address()`?
-------------
PR Review: https://git.openjdk.org/jdk/pull/26944#pullrequestreview-3173008459
PR Review Comment: https://git.openjdk.org/jdk/pull/26944#discussion_r2313495692
PR Review Comment: https://git.openjdk.org/jdk/pull/26944#discussion_r2313495802
    
    
More information about the hotspot-compiler-dev
mailing list