This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/4] [aarch64/arm] Updating the cost table for xgene1.


On 12/11/2018 19:14, Christoph Muellner wrote:
> *** gcc/ChangeLog ***
> 
> 2018-xx-xx  Christoph Muellner  <christoph.muellner@theobroma-systems.com>
> 
> 	* config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table
> 	for Xgene1.

OK.

R.

> ---
>  gcc/config/arm/aarch-cost-tables.h | 88 +++++++++++++++++++-------------------
>  1 file changed, 44 insertions(+), 44 deletions(-)
> 
> diff --git a/gcc/config/arm/aarch-cost-tables.h b/gcc/config/arm/aarch-cost-tables.h
> index 0bd93ba..2a28347 100644
> --- a/gcc/config/arm/aarch-cost-tables.h
> +++ b/gcc/config/arm/aarch-cost-tables.h
> @@ -440,26 +440,26 @@ const struct cpu_cost_table xgene1_extra_costs =
>    {
>      0,                 /* arith.  */
>      0,                 /* logical.  */
> -    0,                 /* shift.  */
> +    COSTS_N_INSNS (1), /* shift.  */
>      COSTS_N_INSNS (1), /* shift_reg.  */
> -    COSTS_N_INSNS (1), /* arith_shift.  */
> -    COSTS_N_INSNS (1), /* arith_shift_reg.  */
> -    COSTS_N_INSNS (1), /* log_shift.  */
> -    COSTS_N_INSNS (1), /* log_shift_reg.  */
> -    COSTS_N_INSNS (1), /* extend.  */
> -    0,                 /* extend_arithm.  */
> -    COSTS_N_INSNS (1), /* bfi.  */
> -    COSTS_N_INSNS (1), /* bfx.  */
> +    COSTS_N_INSNS (2), /* arith_shift.  */
> +    COSTS_N_INSNS (2), /* arith_shift_reg.  */
> +    COSTS_N_INSNS (2), /* log_shift.  */
> +    COSTS_N_INSNS (2), /* log_shift_reg.  */
> +    0,                 /* extend.  */
> +    COSTS_N_INSNS (1), /* extend_arithm.  */
> +    0,                 /* bfi.  */
> +    0,                 /* bfx.  */
>      0,                 /* clz.  */
> -    COSTS_N_INSNS (1), /* rev.  */
> +    0,                 /* rev.  */
>      0,                 /* non_exec.  */
>      true               /* non_exec_costs_exec.  */
>    },
>    {
>      /* MULT SImode */
>      {
> -      COSTS_N_INSNS (4),       /* simple.  */
> -      COSTS_N_INSNS (4),       /* flag_setting.  */
> +      COSTS_N_INSNS (3),       /* simple.  */
> +      COSTS_N_INSNS (3),       /* flag_setting.  */
>        COSTS_N_INSNS (4),       /* extend.  */
>        COSTS_N_INSNS (4),       /* add.  */
>        COSTS_N_INSNS (4),       /* extend_add.  */
> @@ -467,8 +467,8 @@ const struct cpu_cost_table xgene1_extra_costs =
>      },
>      /* MULT DImode */
>      {
> -      COSTS_N_INSNS (5),       /* simple.  */
> -      0,                       /* flag_setting (N/A).  */
> +      COSTS_N_INSNS (4),       /* simple.  */
> +      COSTS_N_INSNS (4),       /* flag_setting (N/A).  */
>        COSTS_N_INSNS (5),       /* extend.  */
>        COSTS_N_INSNS (5),       /* add.  */
>        COSTS_N_INSNS (5),       /* extend_add.  */
> @@ -477,55 +477,55 @@ const struct cpu_cost_table xgene1_extra_costs =
>    },
>    /* LD/ST */
>    {
> -    COSTS_N_INSNS (5),         /* load.  */
> -    COSTS_N_INSNS (6),         /* load_sign_extend.  */
> -    COSTS_N_INSNS (5),         /* ldrd.  */
> +    COSTS_N_INSNS (4),         /* load.  */
> +    COSTS_N_INSNS (5),         /* load_sign_extend.  */
> +    COSTS_N_INSNS (4),         /* ldrd.  */
>      COSTS_N_INSNS (5),         /* ldm_1st.  */
>      1,                         /* ldm_regs_per_insn_1st.  */
>      1,                         /* ldm_regs_per_insn_subsequent.  */
> -    COSTS_N_INSNS (10),        /* loadf.  */
> -    COSTS_N_INSNS (10),        /* loadd.  */
> -    COSTS_N_INSNS (5),         /* load_unaligned.  */
> +    COSTS_N_INSNS (9),         /* loadf.  */
> +    COSTS_N_INSNS (9),         /* loadd.  */
> +    0,                         /* load_unaligned.  */
>      0,                         /* store.  */
>      0,                         /* strd.  */
>      0,                         /* stm_1st.  */
>      1,                         /* stm_regs_per_insn_1st.  */
>      1,                         /* stm_regs_per_insn_subsequent.  */
> -    0,                         /* storef.  */
> -    0,                         /* stored.  */
> +    COSTS_N_INSNS (3),         /* storef.  */
> +    COSTS_N_INSNS (3),         /* stored.  */
>      0,                         /* store_unaligned.  */
> -    COSTS_N_INSNS (1),         /* loadv.  */
> -    COSTS_N_INSNS (1)          /* storev.  */
> +    COSTS_N_INSNS (9),         /* loadv.  */
> +    COSTS_N_INSNS (3)          /* storev.  */
>    },
>    {
>      /* FP SFmode */
>      {
> -      COSTS_N_INSNS (23),      /* div.  */
> -      COSTS_N_INSNS (5),       /* mult.  */
> -      COSTS_N_INSNS (5),       /* mult_addsub. */
> -      COSTS_N_INSNS (5),       /* fma.  */
> -      COSTS_N_INSNS (5),       /* addsub.  */
> -      COSTS_N_INSNS (2),       /* fpconst. */
> -      COSTS_N_INSNS (3),       /* neg.  */
> -      COSTS_N_INSNS (2),       /* compare.  */
> -      COSTS_N_INSNS (6),       /* widen.  */
> -      COSTS_N_INSNS (6),       /* narrow.  */
> +      COSTS_N_INSNS (22),      /* div.  */
> +      COSTS_N_INSNS (4),       /* mult.  */
> +      COSTS_N_INSNS (4),       /* mult_addsub. */
> +      COSTS_N_INSNS (4),       /* fma.  */
> +      COSTS_N_INSNS (4),       /* addsub.  */
> +      COSTS_N_INSNS (1),       /* fpconst. */
> +      COSTS_N_INSNS (4),       /* neg.  */
> +      COSTS_N_INSNS (9),       /* compare.  */
> +      COSTS_N_INSNS (4),       /* widen.  */
> +      COSTS_N_INSNS (4),       /* narrow.  */
>        COSTS_N_INSNS (4),       /* toint.  */
>        COSTS_N_INSNS (4),       /* fromint.  */
>        COSTS_N_INSNS (4)        /* roundint.  */
>      },
>      /* FP DFmode */
>      {
> -      COSTS_N_INSNS (29),      /* div.  */
> -      COSTS_N_INSNS (5),       /* mult.  */
> -      COSTS_N_INSNS (5),       /* mult_addsub.  */
> -      COSTS_N_INSNS (5),       /* fma.  */
> -      COSTS_N_INSNS (5),       /* addsub.  */
> -      COSTS_N_INSNS (3),       /* fpconst.  */
> -      COSTS_N_INSNS (3),       /* neg.  */
> -      COSTS_N_INSNS (2),       /* compare.  */
> -      COSTS_N_INSNS (6),       /* widen.  */
> -      COSTS_N_INSNS (6),       /* narrow.  */
> +      COSTS_N_INSNS (27),      /* div.  */
> +      COSTS_N_INSNS (4),       /* mult.  */
> +      COSTS_N_INSNS (4),       /* mult_addsub.  */
> +      COSTS_N_INSNS (4),       /* fma.  */
> +      COSTS_N_INSNS (4),       /* addsub.  */
> +      COSTS_N_INSNS (1),       /* fpconst.  */
> +      COSTS_N_INSNS (4),       /* neg.  */
> +      COSTS_N_INSNS (9),       /* compare.  */
> +      COSTS_N_INSNS (4),       /* widen.  */
> +      COSTS_N_INSNS (4),       /* narrow.  */
>        COSTS_N_INSNS (4),       /* toint.  */
>        COSTS_N_INSNS (4),       /* fromint.  */
>        COSTS_N_INSNS (4)        /* roundint.  */
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]