Commit 2abacef0 by Kazu Hirata Committed by Kazu Hirata

tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead of FOR_BB_BETWEEN.

	* 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
parent 09fa81db
2004-10-05 Kazu Hirata <kazu@cs.umass.edu> 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 * tree-cfg.c (cleanup_tree_cfg): Don't call
delete_unreachable_blosk() after thread_jumps(). delete_unreachable_blosk() after thread_jumps().
(thread_jumps): Always remove basic blocks as they become (thread_jumps): Always remove basic blocks as they become
......
...@@ -3825,7 +3825,11 @@ tree_forwarder_block_p (basic_block bb) ...@@ -3825,7 +3825,11 @@ tree_forwarder_block_p (basic_block bb)
/* Thread jumps over empty statements. /* Thread jumps over empty statements.
This code should _not_ thread over obviously equivalent conditions 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 static bool
thread_jumps (void) thread_jumps (void)
...@@ -3839,18 +3843,14 @@ thread_jumps (void) ...@@ -3839,18 +3843,14 @@ thread_jumps (void)
FOR_EACH_BB (bb) FOR_EACH_BB (bb)
bb_ann (bb)->forwardable = 1; bb_ann (bb)->forwardable = 1;
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, next_bb) FOR_EACH_BB (bb)
{ {
edge_iterator ei; edge_iterator ei;
/* Don't waste time on unreachable blocks. */ /* Don't waste time on forwarders. */
if (EDGE_COUNT (bb->preds) == 0)
continue;
/* Nor on forwarders. */
if (tree_forwarder_block_p (bb)) if (tree_forwarder_block_p (bb))
continue; continue;
/* This block is now part of a forwarding path, mark it as not /* This block is now part of a forwarding path, mark it as not
forwardable so that we can detect loops. This bit will be forwardable so that we can detect loops. This bit will be
reset below. */ reset below. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment