https://gcc.gnu.org/g:4f6753de737fb45d78634c35c4c50a546357f70d

commit 4f6753de737fb45d78634c35c4c50a546357f70d
Author: Alexandre Oliva <ol...@gnu.org>
Date:   Sat Sep 14 03:40:26 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