Commit 07b43a87 by Kazu Hirata Committed by Kazu Hirata

tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up by restricting to the…

tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up by restricting to the case with two outgoing edges.

	* tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
	by restricting to the case with two outgoing edges.

From-SVN: r91098
parent 6b66c718
......@@ -15,6 +15,9 @@
* tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
(phi_arg_d): Remove e.
* tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
by restricting to the case with two outgoing edges.
2004-11-23 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_backchain_string): Removed.
......
......@@ -4247,17 +4247,15 @@ static edge
tree_try_redirect_by_replacing_jump (edge e, basic_block target)
{
basic_block src = e->src;
edge tmp;
block_stmt_iterator b;
tree stmt;
edge_iterator ei;
/* Verify that all targets will be TARGET. */
FOR_EACH_EDGE (tmp, ei, src->succs)
if (tmp->dest != target && tmp != e)
break;
if (tmp)
/* We can replace or remove a complex jump only when we have exactly
two edges. */
if (EDGE_COUNT (src->succs) != 2
/* Verify that all targets will be TARGET. Specifically, the
edge that is not E must also go to TARGET. */
|| EDGE_SUCC (src, EDGE_SUCC (src, 0) == e)->dest != target)
return NULL;
b = bsi_last (src);
......
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