[PATCH, ARM] Suppress Redundant Flag Setting for Cortex-A15

Ian Bolton ian.bolton@arm.com
Fri Jan 24 17:16:00 GMT 2014

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?


2014-01-24  Ian Bolton  <ian.bolton@arm.com>

	* 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.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: aarch32_prefer_t32_encodings_patch-v5.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140124/dbd12f73/attachment.txt>

More information about the Gcc-patches mailing list