ifcvt: Add missing call to `onlyjump_p'

Do not convert a conditional jump into conditional execution (and remove
the jump as a consequence) if the jump has side effects.

	gcc/
	* ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out
	if `!onlyjump_p'.
This commit is contained in:
Maciej W. Rozycki 2020-12-05 18:26:24 +00:00
parent da749b98cf
commit 94f336768e

View File

@ -5127,6 +5127,11 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb,
rtx cond;
/* If the conditional jump is more than just a conditional jump,
then we cannot do conditional execution conversion on this block. */
if (!onlyjump_p (jump))
goto nce;
cond = cond_exec_get_condition (jump);
if (! cond)
return FALSE;
@ -5154,6 +5159,7 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb,
earliest = jump;
}
nce:
#endif
/* If we allocated new pseudos (e.g. in the conditional move