tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead of FOR_BB_BETWEEN.
authorKazu Hirata <kazu@cs.umass.edu>
Tue, 5 Oct 2004 18:58:36 +0000 (18:58 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Tue, 5 Oct 2004 18:58:36 +0000 (18:58 +0000)
* tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
of FOR_BB_BETWEEN.  Remove a useless check for unreachable
blocks.

From-SVN: r88566

gcc/ChangeLog
gcc/tree-cfg.c

index 7ef42ea0c2dbe1285f25934748d9d70c7e3b74a4..d578219ceadc2651fb91d0857a36eff910c4b015 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
+       of FOR_BB_BETWEEN.  Remove a useless check for unreachable
+       blocks.
+
 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-cfg.c (cleanup_tree_cfg): Don't call
index afeb4de0751428b77cab805c2421d8c438b3cb21..2eff7546f3967bdf61c9386285349b4f19c49d4b 100644 (file)
@@ -3825,7 +3825,11 @@ tree_forwarder_block_p (basic_block bb)
 /* Thread jumps over empty statements.
 
    This code should _not_ thread over obviously equivalent conditions
-   as that requires nontrivial updates to the SSA graph.  */
+   as that requires nontrivial updates to the SSA graph.
+
+   As a precondition, we require that all basic blocks be reachable.
+   That is, there should be no opportunities left for
+   delete_unreachable_blocks.  */
    
 static bool
 thread_jumps (void)
@@ -3839,18 +3843,14 @@ thread_jumps (void)
   FOR_EACH_BB (bb)
     bb_ann (bb)->forwardable = 1;
 
-  FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, next_bb)
+  FOR_EACH_BB (bb)
     {
       edge_iterator ei;
 
-      /* Don't waste time on unreachable blocks.  */
-      if (EDGE_COUNT (bb->preds) == 0)
-       continue;
-
-      /* Nor on forwarders.  */
+      /* Don't waste time on forwarders.  */
       if (tree_forwarder_block_p (bb))
        continue;
-      
+
       /* This block is now part of a forwarding path, mark it as not
         forwardable so that we can detect loops.  This bit will be
         reset below.  */