On 18/05/15 11:26, Kyrill Tkachov wrote:
Hi all, When using the short Thumb2 IT blocks we want to also restrict ifcvt so that it will not end up generating a number of back-to-back cond_execs that will later end up being back to back single-instruction IT blocks. Branching over them should be a better choice. This patch implements that by setting max_insns_skipped to 1 when arm_restrict_it. With this patch, I've seen GCC replace a number of sequences in places like SPEC2006 from: it eq moveq r1, r5 it ne movne r1, r10 it eq moveq r8, r4 to a branch over them. Bootstrapped and tested on arm. Ok for trunk?
Are you sure TREE_TARGET_THUMB2 is still valid in the code base after Christian's latest round of ARM / Thumb patches ?
Ramana
Thanks, Kyrill 2015-05-18 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/arm.c (arm_option_params_internal): When optimising for speed set max_insns_skipped when arm_restrict_it. 2015-05-18 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * gcc.target/arm/short-it-ifcvt-1.c: New test. * gcc.target/arm/short-it-ifcvt-2.c: Likewise.