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.