Hi James,

> Did you see those patches, and did you consider whether there would be a
> benefit to doing the same for Vulcan?
No. I have not studied those patches yet. Currently I am working on
adding vulcan scheduler as a next patch.
Kindly advise on the following:
Could this patch be merged now (assuming you are okay),
and I will update vulcan costs based on your patch later (after vulcan
scheduler)?

Thanks for your time.

with regards,
Virendra Pathak


On Wed, Jun 29, 2016 at 4:11 PM, James Greenhalgh
<james.greenha...@arm.com> wrote:
> 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