RFR: 8295110: RISC-V: Mark out relocations as incompressible [v7]
Xiaolin Zheng
xlinzheng at openjdk.org
Mon Oct 17 04:12:38 UTC 2022
On Fri, 14 Oct 2022 10:46:44 GMT, Xiaolin Zheng <xlinzheng at openjdk.org> wrote:
>> This patch marks all relocations incompressible as pre-discussions at [1] and converts instructions to their 2-byte compressible counterparts as much as possible when UseRVC is enabled.
>>
>> Chaining PR #10421.
>>
>> 1. Code size reduction rate: about ~17% now after this patch under RVC, meaning if there's a piece of code of 1000 bytes, it may shrink to 830 bytes when RVC is enabled. [2]
>> 2. Performance: conservatively no regressions observed. [3]
>>
>> The overloaded `relocate()` methods hide `IncompressibleRegion`s inside, to exclude instructions used at relocations from being compressed.
>>
>>
>> Having tested several times hotspot tier1~tier4; Testing another turn on board.
>>
>>
>>
>> [1] https://mail.openjdk.org/pipermail/riscv-port-dev/2022-September/000615.html
>> [2] https://mail.openjdk.org/pipermail/riscv-port-dev/2022-September/000633.html
>> [3] https://mail.openjdk.org/pipermail/riscv-port-dev/2022-October/000656.html
>
> Xiaolin Zheng has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits:
>
> - Merge remote-tracking branch 'jdk20/master' into riscv-rvc-checkin-second-half-part
> - Merge branch 'master' into riscv-rvc-checkin-second-half-part
> - Keep aligning int32_t style
> - remove a dummy line, and a simple polish by the way
> - swap the order
> - Change the style as to comments
> - [7] Blacklist mode
> - [6] RVC: IncompressibleRegions for relocations
Test results (new code for refactoring in this patch) on QEMU & my board in the several days look okay.
-------------
PR: https://git.openjdk.org/jdk/pull/10643
More information about the hotspot-dev
mailing list