@@ -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,