From 6af2585d5c9880f8a3925e2f3fb4b0713b0647db Mon Sep 17 00:00:00 2001 From: Hale Wang Date: Wed, 14 Jan 2015 11:15:30 +0000 Subject: [PATCH] arm.c: Tune the max_cond_insns/branch_cost for Cortex-M7. 2015-01-14 Hale Wang * config/arm/arm.c: Tune the max_cond_insns/branch_cost for Cortex-M7. From-SVN: r219589 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/arm.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c852337d889..96ef507517b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-14 Hale Wang + + * config/arm/arm.c: Tune the max_cond_insns/branch_cost for + Cortex-M7. + 2015-01-14 Richard Biener PR lto/64415 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 1a92753d52f..1a190117912 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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; -- 2.30.2