arm.c: Add cortex-m7 tune.
authorHale Wang <hale.wang@arm.com>
Thu, 6 Nov 2014 05:38:45 +0000 (05:38 +0000)
committerHale Wang <halewang@gcc.gnu.org>
Thu, 6 Nov 2014 05:38:45 +0000 (05:38 +0000)
2014-10-11  Hale Wang  <Hale.Wang@arm.com>

* config/arm/arm.c: Add cortex-m7 tune.
* config/arm/arm-cores.def: Use cortex-m7 tune.

From-SVN: r217173

gcc/ChangeLog
gcc/config/arm/arm-cores.def
gcc/config/arm/arm.c

index e254dc2723d6c19cd70525978c404d1eb4ade671..a3a9334fdea0234eefb1dae885f9ed473274ef54 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-11  Hale Wang  <Hale.Wang@arm.com>
+
+       * config/arm/arm.c: Add cortex-m7 tune.
+       * config/arm/arm-cores.def: Use cortex-m7 tune.
+
 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/63538
index 56ec7fd8fe7b262f9ebff8dd4d76b2dbcd58fecc..3b34173e983a688cb24df1e4b9b8b371860b6987 100644 (file)
@@ -149,7 +149,7 @@ ARM_CORE("cortex-r4",               cortexr4, cortexr4,             7R,  FL_LDSCHED, cortex)
 ARM_CORE("cortex-r4f",         cortexr4f, cortexr4f,           7R,  FL_LDSCHED, cortex)
 ARM_CORE("cortex-r5",          cortexr5, cortexr5,             7R,  FL_LDSCHED | FL_ARM_DIV, cortex)
 ARM_CORE("cortex-r7",          cortexr7, cortexr7,             7R,  FL_LDSCHED | FL_ARM_DIV, cortex)
-ARM_CORE("cortex-m7",          cortexm7, cortexm7,             7EM, FL_LDSCHED, v7m)
+ARM_CORE("cortex-m7",          cortexm7, cortexm7,             7EM, FL_LDSCHED, cortex_m7)
 ARM_CORE("cortex-m4",          cortexm4, cortexm4,             7EM, FL_LDSCHED, v7m)
 ARM_CORE("cortex-m3",          cortexm3, cortexm3,             7M,  FL_LDSCHED, v7m)
 ARM_CORE("marvell-pj4",                marvell_pj4, marvell_pj4,       7A,  FL_LDSCHED, 9e)
index 4f047076f8380cc8224f5c4f27c7d04fe0bf4dce..beeeb970db0a42dc68a128169e3e0dc27a43cf71 100644 (file)
@@ -2022,6 +2022,27 @@ const struct tune_params arm_v7m_tune =
   8                                            /* Maximum insns to inline memset.  */
 };
 
+/* Cortex-M7 tuning.  */
+
+const struct tune_params arm_cortex_m7_tune =
+{
+  arm_9e_rtx_costs,
+  &v7m_extra_costs,
+  NULL,                                                /* Sched adj cost.  */
+  0,                                           /* Constant limit.  */
+  0,                                           /* Max cond insns.  */
+  ARM_PREFETCH_NOT_BENEFICIAL,
+  true,                                                /* Prefer constant pool.  */
+  arm_cortex_m_branch_cost,
+  false,                                       /* Prefer LDRD/STRD.  */
+  {true, true},                                        /* Prefer non short circuit.  */
+  &arm_default_vec_cost,                        /* Vectorizer costs.  */
+  false,                                        /* Prefer Neon for 64-bits bitops.  */
+  false, false,                                 /* Prefer 32-bit encodings.  */
+  false,                                       /* Prefer Neon for stringops.  */
+  8                                            /* Maximum insns to inline memset.  */
+};
+
 /* The arm_v6m_tune is duplicated from arm_cortex_tune, rather than
    arm_v6t2_tune. It is used for cortex-m0, cortex-m1 and cortex-m0plus.  */
 const struct tune_params arm_v6m_tune =