On Fri, Jan 24, 2014 at 5:16 PM, Ian Bolton <ian.bol...@arm.com> wrote: > Hi there! > > An existing optimisation for Thumb-2 converts t32 encodings to > t16 encodings to reduce codesize, at the expense of causing > redundant flag setting for ADD, AND, etc. This redundant flag > setting can have negative performance impact on cortex-a15. > > This patch introduces two new tuning options so that the conversion > from t32 to t16, which takes place in thumb2_reorg, can be suppressed > for cortex-a15. > > To maintain some of the original benefit (reduced codesize), the > suppression is only done where the enclosing basic block is deemed > worthy of optimising for speed. > > This tested with no regressions and performance has improved for > the workloads tested on cortex-a15. (It might be beneficial to > other processors too, but that has not been investigated yet.) > > OK for stage 1?
This is OK for stage1. Ramana > > Cheers, > Ian > > > 2014-01-24 Ian Bolton <ian.bol...@arm.com> > > gcc/ > * config/arm/arm-protos.h (tune_params): New struct members. > * config/arm/arm.c: Initialise tune_params per processor. > (thumb2_reorg): Suppress conversion from t32 to t16 when > optimizing for speed, based on new tune_params.