arm.c: Tune the max_cond_insns/branch_cost for Cortex-M7.
authorHale Wang <hale.wang@arm.com>
Wed, 14 Jan 2015 11:15:30 +0000 (11:15 +0000)
committerHale Wang <halewang@gcc.gnu.org>
Wed, 14 Jan 2015 11:15:30 +0000 (11:15 +0000)
2015-01-14  Hale Wang  <hale.wang@arm.com>

* config/arm/arm.c: Tune the max_cond_insns/branch_cost for
Cortex-M7.

From-SVN: r219589

gcc/ChangeLog
gcc/config/arm/arm.c

index c852337d88978d0b046e96e8c420f81b2e159ef1..96ef507517b6f4efb34e02661574557f60330694 100644 (file)
@@ -1,3 +1,8 @@
+2015-01-14  Hale Wang  <hale.wang@arm.com>
+
+       * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
+       Cortex-M7.
+
 2015-01-14  Richard Biener  <rguenther@suse.de>
 
        PR lto/64415
index 1a92753d52fa97c37c6df0122fd43fd36f6957b4..1a1901179122beba8c2b986e248dc98348e7c437 100644 (file)
@@ -294,6 +294,7 @@ static unsigned int arm_autovectorize_vector_sizes (void);
 static int arm_default_branch_cost (bool, bool);
 static int arm_cortex_a5_branch_cost (bool, bool);
 static int arm_cortex_m_branch_cost (bool, bool);
+static int arm_cortex_m7_branch_cost (bool, bool);
 
 static bool arm_vectorize_vec_perm_const_ok (machine_mode vmode,
                                             const unsigned char *sel);
@@ -2001,10 +2002,10 @@ const struct tune_params arm_cortex_m7_tune =
   &v7m_extra_costs,
   NULL,                                                /* Sched adj cost.  */
   0,                                           /* Constant limit.  */
-  0,                                           /* Max cond insns.  */
+  1,                                           /* Max cond insns.  */
   ARM_PREFETCH_NOT_BENEFICIAL,
   true,                                                /* Prefer constant pool.  */
-  arm_cortex_m_branch_cost,
+  arm_cortex_m7_branch_cost,
   false,                                       /* Prefer LDRD/STRD.  */
   {true, true},                                        /* Prefer non short circuit.  */
   &arm_default_vec_cost,                        /* Vectorizer costs.  */
@@ -12052,6 +12053,12 @@ arm_cortex_m_branch_cost (bool speed_p, bool predictable_p)
          : arm_default_branch_cost (speed_p, predictable_p);
 }
 
+static int
+arm_cortex_m7_branch_cost (bool speed_p, bool predictable_p)
+{
+  return speed_p ? 0 : arm_default_branch_cost (speed_p, predictable_p);
+}
+
 static bool fp_consts_inited = false;
 
 static REAL_VALUE_TYPE value_fp0;