RFR: 8311862: RISC-V: small improvements to slli [v3]

Ilya Gavrilin duke at openjdk.org
Fri Jul 14 07:32:49 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 |

Ilya Gavrilin has updated the pull request incrementally with one additional commit since the last revision:

  Revert changes related with slli_uw

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/14823/files
  - new: https://git.openjdk.org/jdk/pull/14823/files/2df17399..6a35ea6f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14823&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14823&range=01-02

  Stats: 17 lines in 4 files changed: 1 ins; 12 del; 4 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