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))

Reply via email to