diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2020-12-03 11:35:06 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@orcam.me.uk> | 2021-04-27 20:02:06 +0200 |
commit | 6c1976fa3ff57f5b547e0c3f1e0461409936586b (patch) | |
tree | 32adcd32f6c241782219ece702f31da142c74aff /gcc/ifcvt.c | |
parent | d0a57b030f1c7df33c6bc3c661d16c9cb79e96dd (diff) | |
download | gcc-6c1976fa3ff57f5b547e0c3f1e0461409936586b.zip gcc-6c1976fa3ff57f5b547e0c3f1e0461409936586b.tar.gz gcc-6c1976fa3ff57f5b547e0c3f1e0461409936586b.tar.bz2 |
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.
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 2 |
1 files changed, 1 insertions, 1 deletions
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 |