RFR: 8311862: RISC-V: small improvements to slli
Feilong Jiang
fjiang at openjdk.org
Wed Jul 12 06:41:55 UTC 2023
On Tue, 11 Jul 2023 09:02:39 GMT, Ilya Gavrilin <duke at openjdk.org> wrote:
> 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 |
Looks good, with one nit:
src/hotspot/cpu/riscv/macroAssembler_riscv.cpp line 4342:
> 4340: _slli_uw(Rd, Rs, shamt);
> 4341: } else {
> 4342: slli(Rd, Rs, shamt+32);
Suggestion:
slli(Rd, Rs, shamt + 32);
-------------
Marked as reviewed by fjiang (Author).
PR Review: https://git.openjdk.org/jdk/pull/14823#pullrequestreview-1525617190
PR Review Comment: https://git.openjdk.org/jdk/pull/14823#discussion_r1260670748
More information about the hotspot-dev
mailing list