* tree-cfg.c (tree_split_edge): Speed up by using find_edge.
authorKazu Hirata <kazu@cs.umass.edu>
Fri, 26 Nov 2004 17:02:49 +0000 (17:02 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Fri, 26 Nov 2004 17:02:49 +0000 (17:02 +0000)
From-SVN: r91341

gcc/ChangeLog
gcc/tree-cfg.c

index afa679f62115eba78365217999d3438bda94414c..5f6d899f5465f8afe959ea2d35979a0f5102cc5b 100644 (file)
@@ -2,6 +2,8 @@
 
        * cse.c, tree-ssa-operands.c: Fix comment typos.
 
+       * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
+
 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
 
        PR target/18510
index 2d02f71d5b09ae6715d809f67b7248507d7068db..ee0bce2140b9db613e488e8890443e0a6c2476c1 100644 (file)
@@ -3144,7 +3144,6 @@ tree_split_edge (edge edge_in)
 {
   basic_block new_bb, after_bb, dest, src;
   edge new_edge, e;
-  edge_iterator ei;
 
   /* Abnormal edges cannot be split.  */
   gcc_assert (!(edge_in->flags & EDGE_ABNORMAL));
@@ -3155,13 +3154,10 @@ tree_split_edge (edge edge_in)
   /* Place the new block in the block list.  Try to keep the new block
      near its "logical" location.  This is of most help to humans looking
      at debugging dumps.  */
-  FOR_EACH_EDGE (e, ei, dest->preds)
-    if (e->src->next_bb == dest)
-      break;
-  if (!e)
-    after_bb = dest->prev_bb;
-  else
+  if (dest->prev_bb && find_edge (dest->prev_bb, dest))
     after_bb = edge_in->src;
+  else
+    after_bb = dest->prev_bb;
 
   new_bb = create_empty_bb (after_bb);
   new_bb->frequency = EDGE_FREQUENCY (edge_in);