> 
> Thanks for the review. I have updated the patch based on the comments
> with some other minor changes. Bootstrapped and regression tested on
> aarch64-none-linux-gnu with no-new regressions. Is this OK for trunk?
> 
> 
> Thanks,
> Kugan
> 
> 
> gcc/ChangeLog:
> 
> 2015-04-24  Kugan Vivekanandarajah  <kug...@linaro.org>
>           Jim Wilson  <jim.wil...@linaro.org>
> 
>       * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
>       new  fields loadv and storev.
>       * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
>       Initialize loadv and storev.
>       * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
>       (cortexa53_extra_costs): Likewise.
>       (cortexa57_extra_costs): Likewise.
>       (xgene1_extra_costs): Likewise.
>       * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
>       rtx_costs.
> 

Due to the struct mem_cost_table update for aarch64, arm cost tables
also need to be updated. Please find the patch that does this.
Regression tested on arm-none-linux-gnu with no-new regressions. Is this
OK for trunk?

Thanks,
Kugan

gcc/ChangeLog:

2015-04-25  Kugan Vivekanandarajah  <kug...@linaro.org>

        * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
         storev.
        (cortexa8_extra_costs): Likewise.
        (cortexa5_extra_costs): Likewise.
        (cortexa7_extra_costs): Likewise.
        (cortexa12_extra_costs): Likewise.
        (cortexa15_extra_costs): Likewise.
        (v7m_extra_costs): Likewise.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 6826c78..d43239a 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -1027,7 +1027,9 @@ const struct cpu_cost_table cortexa9_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (1), /* storef.  */
     COSTS_N_INSNS (1), /* stored.  */
-    COSTS_N_INSNS (1)  /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1128,7 +1130,9 @@ const struct cpu_cost_table cortexa8_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (1), /* storef.  */
     COSTS_N_INSNS (1), /* stored.  */
-    COSTS_N_INSNS (1)  /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1230,7 +1234,9 @@ const struct cpu_cost_table cortexa5_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (2), /* storef.  */
     COSTS_N_INSNS (2), /* stored.  */
-    COSTS_N_INSNS (1)  /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1333,7 +1339,9 @@ const struct cpu_cost_table cortexa7_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (2), /* storef.  */
     COSTS_N_INSNS (2), /* stored.  */
-    COSTS_N_INSNS (1)  /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1434,7 +1442,9 @@ const struct cpu_cost_table cortexa12_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (2), /* storef.  */
     COSTS_N_INSNS (2), /* stored.  */
-    0                  /* store_unaligned.  */
+    0,                 /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1535,7 +1545,9 @@ const struct cpu_cost_table cortexa15_extra_costs =
     2,                 /* stm_regs_per_insn_subsequent.  */
     0,                 /* storef.  */
     0,                 /* stored.  */
-    0                  /* store_unaligned.  */
+    0,                 /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */
@@ -1636,7 +1648,9 @@ const struct cpu_cost_table v7m_extra_costs =
     1,                 /* stm_regs_per_insn_subsequent.  */
     COSTS_N_INSNS (2), /* storef.  */
     COSTS_N_INSNS (3), /* stored.  */
-    COSTS_N_INSNS (1)  /* store_unaligned.  */
+    COSTS_N_INSNS (1),  /* store_unaligned.  */
+    COSTS_N_INSNS (1), /* loadv.  */
+    COSTS_N_INSNS (1)  /* storev.  */
   },
   {
     /* FP SFmode */

Reply via email to