On Thu, Jun 23, 2016 at 02:45:21PM +0530, Virendra Pathak wrote:
> Hi gcc-patches group,
> 
> Please find the patch for adding rtx_costs routine for vulcan cpu.
> 
> Tested with compiling cross aarch64-linux-gcc , bootstrapped native
> aarch64-unknown-linux-gnu
> and make check (gcc). No new regression failure is added by this patch.
> 
> Kindly review and merge the patch to trunk, if the patch is okay.
> Thanks.

This is OK, but I have the same question for you as I had for the
qdf24xx tuning that Jim proposed, so I won't commit it yet...

> gcc/ChangeLog:
> 
> Virendra Pathak  <virendra.pat...@broadcom.com>
> 
>         * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
>         * config/aarch64/aarch64-cost-tables.h
>         (vulcan_extra_costs): New variable.
>         * config/aarch64/aarch64.c
>         (vulcan_addrcost_table): Likewise.
>         (vulcan_regmove_cost): Likewise.
>         (vulcan_vector_cost): Likewise.
>         (vulcan_branch_cost): Likewise.
>         (vulcan_tunings): Likewise.


>
> +  {
> +    /* FP SFmode */
> +    {
> +      COSTS_N_INSNS (16),    /* Div.  */
> +      COSTS_N_INSNS (6),     /* Mult.  */
> +      COSTS_N_INSNS (6),     /* Mult_addsub. */
> +      COSTS_N_INSNS (6),     /* Fma.  */
> +      COSTS_N_INSNS (6),     /* Addsub.  */
> +      COSTS_N_INSNS (5),     /* Fpconst. */
> +      COSTS_N_INSNS (5),     /* Neg.  */
> +      COSTS_N_INSNS (5),     /* Compare.  */
> +      COSTS_N_INSNS (7),     /* Widen.  */
> +      COSTS_N_INSNS (7),     /* Narrow.  */
> +      COSTS_N_INSNS (7),     /* Toint.  */
> +      COSTS_N_INSNS (7),     /* Fromint.  */
> +      COSTS_N_INSNS (7)      /* Roundint.  */
> +    },
> +    /* FP DFmode */
> +    {
> +      COSTS_N_INSNS (23),    /* Div.  */
> +      COSTS_N_INSNS (6),     /* Mult.  */
> +      COSTS_N_INSNS (6),     /* Mult_addsub.  */
> +      COSTS_N_INSNS (6),     /* Fma.  */
> +      COSTS_N_INSNS (6),     /* Addsub.  */
> +      COSTS_N_INSNS (5),     /* Fpconst.  */
> +      COSTS_N_INSNS (5),     /* Neg.  */
> +      COSTS_N_INSNS (5),     /* Compare.  */
> +      COSTS_N_INSNS (7),     /* Widen.  */
> +      COSTS_N_INSNS (7),     /* Narrow.  */
> +      COSTS_N_INSNS (7),     /* Toint.  */
> +      COSTS_N_INSNS (7),     /* Fromint.  */
> +      COSTS_N_INSNS (7)      /* Roundint.  */
> +    }

Recently ( https://gcc.gnu.org/ml/gcc-patches/2016-06/msg00251.html ,
 https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01418.html ), I changed the
Cortex-A57 and Cortex-A53 cost tables to make the cost of a floating-point
operation relative to the cost of a floating-point move. This gave some
code generation benefits, particularly around conditional execution and
generation of constants.

Did you see those patches, and did you consider whether there would be a
benefit to doing the same for Vulcan?

Thanks,
James

Reply via email to