Integrated: 8301153: RISC-V: pipeline class for several instructions is not set correctly

Feilong Jiang fjiang at openjdk.org
Tue Jan 31 07:32:05 UTC 2023


On Thu, 26 Jan 2023 13:47:12 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

This pull request has now been integrated.

Changeset: 9cc0171e
Author:    Feilong Jiang <fjiang at openjdk.org>
Committer: Fei Yang <fyang at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/9cc0171ed51eef0deb63fe3a5923bae9cf0f5ff0
Stats:     20 lines in 1 file changed: 1 ins; 0 del; 19 mod

8301153: RISC-V: pipeline class for several instructions is not set correctly

Reviewed-by: fyang, yadongwang

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

PR: https://git.openjdk.org/jdk/pull/12219


More information about the hotspot-compiler-dev mailing list