https://gcc.gnu.org/g:b0b68cbc1ed13ee0c61e0e2d768d997e8a1dfaa8
commit b0b68cbc1ed13ee0c61e0e2d768d997e8a1dfaa8 Author: Alexandre Oliva <ol...@gnu.org> Date: Tue Sep 17 20:15:50 2024 -0300 support noncontiguous ifcombine Diff: --- gcc/tree-ssa-ifcombine.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/tree-ssa-ifcombine.cc b/gcc/tree-ssa-ifcombine.cc index 7678c87e0170..eb4317bebdfb 100644 --- a/gcc/tree-ssa-ifcombine.cc +++ b/gcc/tree-ssa-ifcombine.cc @@ -798,10 +798,10 @@ tree_ssa_ifcombine_bb (basic_block inner_cond_bb) if (a && b) ; This requires a single predecessor of the inner cond_bb. */ - if (single_pred_p (inner_cond_bb) - && bb_no_side_effects_p (inner_cond_bb)) + for (basic_block bb = inner_cond_bb; + single_pred_p (bb) && bb_no_side_effects_p (bb); ) { - basic_block outer_cond_bb = single_pred (inner_cond_bb); + basic_block outer_cond_bb = bb = single_pred (bb); if (tree_ssa_ifcombine_bb_1 (inner_cond_bb, outer_cond_bb, then_bb, else_bb, inner_cond_bb))