RFR: 8301153: RISC-V: pipeline class for several instructions is not set correctly [v2]
Yadong Wang
yadongwang at openjdk.org
Tue Jan 31 06:23:58 UTC 2023
On Sat, 28 Jan 2023 03:14:51 GMT, Feilong Jiang <fjiang at openjdk.org> wrote:
>> Witness that some c2 instructions use the inappropriate ins_pipe, e.g.:
>>
>>
>> instruct MoveI2F_stack_reg(fRegF dst, stackSlotI src) %{
>>
>> match(Set dst (MoveI2F src));
>>
>> effect(DEF dst, USE src);
>>
>> ins_cost(LOAD_COST);
>>
>> format %{ "flw $dst, $src\t#@MoveI2F_stack_reg" %}
>>
>> ins_encode %{
>> __ flw(as_FloatRegister($dst$$reg), Address(sp, $src$$disp));
>> %}
>>
>> ins_pipe(pipe_class_memory);
>>
>> %}
>>
>>
>> We can use the more accurate pipe_class `fp_load_mem_s` instead.
>>
>> This PR also fixes the side effect of the flags register for two instructions, we should use/kill a flags register.
>>
>> Testing:
>>
>> - [x] Tier1~3 on Unmatched board with release build
>
> Feilong Jiang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
>
> - Merge branch 'openjdk:master' into fix_pipeclass
> - fix pipe_class
lgtm
-------------
Marked as reviewed by yadongwang (Author).
PR: https://git.openjdk.org/jdk/pull/12219
More information about the hotspot-compiler-dev
mailing list