Hi Bernd, Here is updated patch as your proposed to avoid regression on ia64. Bootstarp and regression testing on x86_64 did not show any new failures.
Is it OK for trunk? Thanks. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 189d60f..ef6fa69 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -3730,6 +3730,7 @@ cond_move_process_if_block (struct noce_if_info *if_info) vec<rtx> else_regs = vNULL; unsigned int i; int success_p = FALSE; + int limit = PARAM_VALUE (PARAM_MAX_RTL_IF_CONVERSION_INSNS); /* Build a mapping for each block to the value used for each register. */ @@ -3779,7 +3780,8 @@ cond_move_process_if_block (struct noce_if_info *if_info) is the number of assignments currently made in only one of the branches, since if we convert we are going to always execute them. */ - if (c > MAX_CONDITIONAL_EXECUTE) + if (c > MAX_CONDITIONAL_EXECUTE + || c > limit) goto done; /* Try to emit the conditional moves. First do the then block, ChangeLog: 2016-01-13 Yuri Rumyantsev <ysrum...@gmail.com> PR rtl-optimization/68920 * ifcvt.c (cond_move_process_if_block): Limit number of conditional moves. 2016-01-13 4:52 GMT+03:00 Bernd Schmidt <bschm...@redhat.com>: > On 01/12/2016 04:41 PM, Yuri Rumyantsev wrote: >> >> Here is a simple fix to exclude dg/ifcvt-5.c test from ia64 testing. >> >> Is it OK for trunk? > > > Please ensure patches are attached as plain text so that reviewers don't > have to save them to be able to read them. > > It looks like ia64 is making chanes in cond_move_process_if_block. Maybe > that function needs to take the param into account so we don't have to keep > adding excluded targets to the testcase? > > > Bernd >