RFR: 8311862: RISC-V: small improvements to slli
    Ilya Gavrilin 
    duke at openjdk.org
       
    Tue Jul 11 09:10:17 UTC 2023
    
    
  
Please review this small change for slli and slli.uw
slli change allows to replace slli Rd, Rs, 0 with addi Rd, Rs, 0 (and no operation emited if Rd == Rs)
addi with 0 has higher chances to be just a register renaming and not utilise ALU at all
We have observed small positive effect on hifive (and no change on thead).
Also this patch changes slli.uw and allows it to be used without additional check for UseZba, also providing fallback when Zba is not available
testing: tier1 and tier2 on hifive, also hotspot/jtreg/compiler/intrinsics/string tests on Qemu with UseZba
performance on hifive, before:
|              Benchmark              | Mode | Cnt |   Score  |   |  Error  | Units |
|:-----------------------------------:|:----:|:---:|:--------:|:-:|:-------:|:-----:|
| StringIndexOf.advancedWithShortSub1 | avgt |  25 | 4035.143 | ± | 191.262 | ns/op |
| StringIndexOf.advancedWithShortSub2 | avgt |  25 | 1145.807 | ± |  14.610 | ns/op |
with patch:
|              Benchmark              | Mode | Cnt |   Score  |   |  Error  | Units |
|:-----------------------------------:|:----:|:---:|:--------:|:-:|:-------:|:-----:|
| StringIndexOf.advancedWithShortSub1 | avgt |  25 | 3613.943 | ± | 178.153 | ns/op |
| StringIndexOf.advancedWithShortSub2 | avgt |  25 | 923.169 | ± |  47.123| ns/op |
-------------
Commit messages:
 - initial commit
Changes: https://git.openjdk.org/jdk/pull/14823/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14823&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8311862
  Stats: 31 lines in 4 files changed: 24 ins; 1 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/14823.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14823/head:pull/14823
PR: https://git.openjdk.org/jdk/pull/14823
    
    
More information about the hotspot-dev
mailing list