From: Maciej W. Rozycki Date: Thu, 3 Dec 2020 11:35:06 +0000 (+0000) Subject: ifcvt: Fall through to NCE if getting the CE condition failed X-Git-Tag: upstream/12.2.0~8528 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6c1976fa3ff57f5b547e0c3f1e0461409936586b;p=platform%2Fupstream%2Fgcc.git ifcvt: Fall through to NCE if getting the CE condition failed If getting the condition for conditional execution has failed then fall through and try the non-conditional execution approach instead rather than giving up with dead code elimination altogether, for a better code structure if nothing else. The case may well now be that whenever `cond_exec_get_condition' fails `noce_get_condition' will as well, however in that case no change in semantics will result. If they ever diverge, then someone will have to chase this place. gcc/ * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall through to the non-conditional execution case if getting the condition for conditional execution has failed. --- diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index b467eb5..4de7bb9 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -5193,7 +5193,7 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb, cond = cond_exec_get_condition (jump); if (! cond) - return FALSE; + goto nce; rtx note = find_reg_note (jump, REG_BR_PROB, NULL_RTX); profile_probability prob_val