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]>
---
 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 c2476b15af8..14ebeb35e64 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);
-- 
2.43.0

Reply via email to