https://gcc.gnu.org/g:4412a29012fe54685f4c52656b924391a7b68666

commit r16-5254-g4412a29012fe54685f4c52656b924391a7b68666
Author: Andrew Pinski <[email protected]>
Date:   Sun Nov 9 17:17:49 2025 -0800

    mergephi: use edge iterator in remove_forwarder_block_with_phi
    
    It was always kinda of odd that while remove_forwarder_block used
    an edge iterator, remove_forwarder_block_with_phi used a while loop.
    remove_forwarder_block_with_phi was added after remove_forwarder_block too.
    
    Anyways this changes remove_forwarder_block_with_phi into use the same
    form of loop so it is easier to merge the 2.
    
    gcc/ChangeLog:
    
            * tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Use
            edge iterator instead of while loop.
    
    Signed-off-by: Andrew Pinski <[email protected]>

Diff:
---
 gcc/tree-cfgcleanup.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc
index c2476b15af8e..14ebeb35e645 100644
--- a/gcc/tree-cfgcleanup.cc
+++ b/gcc/tree-cfgcleanup.cc
@@ -1284,7 +1284,7 @@ cleanup_tree_cfg (unsigned ssa_update_flags)
 static bool
 remove_forwarder_block_with_phi (basic_block bb)
 {
-  edge succ = single_succ_edge (bb);
+  edge e, succ = single_succ_edge (bb);
   basic_block dest = succ->dest;
   basic_block dombb, domdest, dom;
 
@@ -1304,9 +1304,9 @@ remove_forwarder_block_with_phi (basic_block bb)
   bool dest_single_pred_p = single_pred_p (dest);
 
   /* Redirect each incoming edge to BB to DEST.  */
-  while (EDGE_COUNT (bb->preds) > 0)
+  for (edge_iterator ei = ei_start (bb->preds); (e = ei_safe_edge (ei)); )
     {
-      edge e = EDGE_PRED (bb, 0), s;
+      edge s;
       gphi_iterator gsi;
 
       s = find_edge (e->src, dest);

Reply via email to