From 6c1976fa3ff57f5b547e0c3f1e0461409936586b Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Thu, 3 Dec 2020 11:35:06 +0000 Subject: [PATCH] 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. --- gcc/ifcvt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index b467eb5902aa..4de7bb9d6d9f 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 -- 2.47.2