diff mbox

[AArch64] Wire up Cortex-A57 rtx costs

Message ID 52EA5830.8020006@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov Jan. 30, 2014, 1:48 p.m. UTC
Hi all,

This patch wires up the aarch64 backend to use the Cortex-A57 rtx costs table 
that is proposed at
http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01954.html

It also sets the generic tuning to use the Cortex-A57 costs since they are more 
sensible for aarch64 systems than the generic ones that were originally written 
with aarch32 code generation in mind.

Tested aarch64-none-elf on a model.

Ok for trunk once the prerequisite goes in?

Thanks,
Kyrill

2014-01-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
     tuning struct.
     (cortex-a57.cortex-a53): Likewise.
     * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.

Comments

Marcus Shawcroft Feb. 10, 2014, 9:55 a.m. UTC | #1
On 30 January 2014 13:48, Kyrill Tkachov <kyrylo.tkachov@arm.com> wrote:
> Hi all,
>
> This patch wires up the aarch64 backend to use the Cortex-A57 rtx costs
> table that is proposed at
> http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01954.html

OK if release manager agrees.

/Marcus
Marcus Shawcroft Feb. 11, 2014, 3:03 p.m. UTC | #2
On 10 February 2014 09:55, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote:
> On 30 January 2014 13:48, Kyrill Tkachov <kyrylo.tkachov@arm.com> wrote:
>> Hi all,
>>
>> This patch wires up the aarch64 backend to use the Cortex-A57 rtx costs
>> table that is proposed at
>> http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01954.html
>
> OK if release manager agrees.
>
> /Marcus

Jakub, are you OK with us taking this patch in stage4 ?

This patch builds on the ARM patch
http://gcc.gnu.org/ml/gcc-patches/2014-02/msg00403.html and like the
ARM patch it is none default tuning.

/Marcus
Jakub Jelinek Feb. 11, 2014, 3:17 p.m. UTC | #3
On Tue, Feb 11, 2014 at 03:03:32PM +0000, Marcus Shawcroft wrote:
> On 10 February 2014 09:55, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote:
> > On 30 January 2014 13:48, Kyrill Tkachov <kyrylo.tkachov@arm.com> wrote:
> >> Hi all,
> >>
> >> This patch wires up the aarch64 backend to use the Cortex-A57 rtx costs
> >> table that is proposed at
> >> http://gcc.gnu.org/ml/gcc-patches/2014-01/msg01954.html
> >
> > OK if release manager agrees.
> >
> > /Marcus
> 
> Jakub, are you OK with us taking this patch in stage4 ?
> 
> This patch builds on the ARM patch
> http://gcc.gnu.org/ml/gcc-patches/2014-02/msg00403.html and like the
> ARM patch it is none default tuning.

Ok.

	Jakub
diff mbox

Patch

commit 780da554b322ab1c54cc662849950adb1181cacb
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date:   Fri Jan 24 11:36:02 2014 +0000

    [AArch64] Wire up A57 costs

diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index a41d7d9..4db63d6 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -35,8 +35,8 @@ 
 /* V8 Architecture Processors.  */
 
 AARCH64_CORE("cortex-a53",  cortexa53, cortexa53, 8,  AARCH64_FL_FPSIMD, cortexa53)
-AARCH64_CORE("cortex-a57",  cortexa15, cortexa15, 8,  AARCH64_FL_FPSIMD, generic)
+AARCH64_CORE("cortex-a57",  cortexa15, cortexa15, 8,  AARCH64_FL_FPSIMD, cortexa57)
 
 /* V8 big.LITTLE implementations.  */
 
-AARCH64_CORE("cortex-a57.cortex-a53",  cortexa57cortexa53, cortexa53, 8,  AARCH64_FL_FPSIMD, generic)
+AARCH64_CORE("cortex-a57.cortex-a53",  cortexa57cortexa53, cortexa53, 8,  AARCH64_FL_FPSIMD, cortexa57)
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5867f75..aca4366 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -235,6 +235,16 @@  static const struct tune_params cortexa53_tunings =
   NAMED_PARAM (issue_rate, 2)
 };
 
+static const struct tune_params cortexa57_tunings =
+{
+  &cortexa57_extra_costs,
+  &generic_addrcost_table,
+  &generic_regmove_cost,
+  &generic_vector_cost,
+  NAMED_PARAM (memmov_cost, 4),
+  NAMED_PARAM (issue_rate, 3)
+};
+
 /* A processor implementing AArch64.  */
 struct processor
 {