+2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
+
+ * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
+ (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
+
2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
* ipa-ref.c (ipa_remove_stmt_references): Fix references
&v7m_extra_costs,
NULL, /* Sched adj cost. */
1, /* Constant limit. */
- 5, /* Max cond insns. */
+ 2, /* Max cond insns. */
ARM_PREFETCH_NOT_BENEFICIAL,
true, /* Prefer constant pool. */
arm_cortex_m_branch_cost,
int mask;
int max;
- /* Maximum number of conditionally executed instructions in a block
- is minimum of the two max values: maximum allowed in an IT block
- and maximum that is beneficial according to the cost model and tune. */
- max = (max_insns_skipped < MAX_INSN_PER_IT_BLOCK) ?
- max_insns_skipped : MAX_INSN_PER_IT_BLOCK;
+ /* max_insns_skipped in the tune was already taken into account in the
+ cost model of ifcvt pass when generating COND_EXEC insns. At this stage
+ just emit the IT blocks as we can. It does not make sense to split
+ the IT blocks. */
+ max = MAX_INSN_PER_IT_BLOCK;
/* Remove the previous insn from the count of insns to be output. */
if (arm_condexec_count)