RFR: 8365926: RISC-V: Performance regression in renaissance (chi-square) [v2]
Fei Yang
fyang at openjdk.org
Tue Sep 2 02:08:49 UTC 2025
On Mon, 1 Sep 2025 14:42:47 GMT, Robbin Ehn <rehn at openjdk.org> wrote:
>> 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()`?
>
> We have:
>
> auipc // instruction_address() # Never changed
> ld // instruction_address() + NativeInstruction::instruction_size # Never changed
> jal(r) // instruction_address() + 2 * NativeInstruction::instruction_size (jal_pc) # jal<->jalr
>
> We only change the instruction at "instruction_address() + 2 * NativeInstruction::instruction_size".
>
> Note that jal_pos and jal_pc means a "jump and link instruction", not specifically jal or jalr.
>
> Make sense?
Maybe we can give it a new name to avoid possible confusion? `jmp_pc` or simply `pc`?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26944#discussion_r2314762084
More information about the hotspot-compiler-dev
mailing list