[PATCH, ARM] Cortex-A5 tuning [1/2] - branch costs

Richard Earnshaw rearnsha@arm.com
Wed Jun 1 15:59:00 GMT 2011


On Wed, 2011-06-01 at 16:49 +0100, Julian Brown wrote:
> This patch overrides the branch cost for Cortex-A5 cores, building on
> the previous patch:
> 
>   http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00045.html
> 
> (And also depending on:
> 
>   http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00044.html
> 
> to apply correctly.)
> 
> The rationale is as follows: branches are pretty much the only
> instructions which can dual-issued on Cortex-A5. This makes them
> relatively cheap: in particular, cheaper than long sequences of
> conditionally-executed instructions. Setting the cost to zero was
> experimentally determined to work better than one (or several other
> values).
> 
> Together with the follow-up patch to tweak the value of
> max_insns_skipped (for the arm_final_prescan_insn function), we obtain
> (on a popular embedded benchmark, geometric mean improvement):
> 
>   * 2.75% improvement in ARM mode (~0.9% with just this patch).
> 
>   * 0.91% improvement in Thumb-2 mode.
> 
> Caveat: based on only a single test run, although previous benchmarking
> (on a 4.5-based branch IIRC) showed similar improvements.
> 
> Testing still in progress. OK to apply?
> 
> Thanks,
> 
> Julian
> 
> ChangeLog
> 
>     gcc/
>     * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
>     * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
>     (arm_cortex_a5_tune): New.

OK.

R.




More information about the Gcc-patches mailing list