Commit e51546f8 by Kazu Hirata Committed by Kazu Hirata

tree-cfg.c (tree_execute_on_shrinking_pred): New.

	* tree-cfg.c (tree_execute_on_shrinking_pred): New.
	(tree_cfg_hooks): Use it.
	* tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
	(ssa_redirect_edge): Don't call remove_phi_arg_num.

From-SVN: r91036
parent d9d4706f
......@@ -24,6 +24,11 @@
(cfg_layout_rtl_cfg_hook): Likewise.
* tree-cfg.c (tree_cfg_hooks): Likewise.
* tree-cfg.c (tree_execute_on_shrinking_pred): New.
(tree_cfg_hooks): Use it.
* tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
(ssa_redirect_edge): Don't call remove_phi_arg_num.
2004-11-23 Ben Elliston <bje@au.ibm.com>
* doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
......
......@@ -5339,6 +5339,16 @@ tree_purge_all_dead_eh_edges (bitmap blocks)
return changed;
}
/* This function is called immediately before edge E is removed from
the edge vector E->dest->preds. */
static void
tree_execute_on_shrinking_pred (edge e)
{
if (phi_nodes (e->dest))
remove_phi_args (e);
}
struct cfg_hooks tree_cfg_hooks = {
"tree",
tree_verify_flow_info,
......@@ -5362,7 +5372,7 @@ struct cfg_hooks tree_cfg_hooks = {
tree_block_ends_with_condjump_p, /* block_ends_with_condjump_p */
tree_flow_call_edges_add, /* flow_call_edges_add */
NULL, /* execute_on_growing_pred */
NULL, /* execute_on_shrinking_pred */
tree_execute_on_shrinking_pred, /* execute_on_shrinking_pred */
};
......
......@@ -53,9 +53,6 @@ Boston, MA 02111-1307, USA. */
void
ssa_remove_edge (edge e)
{
/* Remove all PHI arguments for E. */
remove_phi_args (e);
remove_edge (e);
}
......@@ -85,8 +82,6 @@ ssa_redirect_edge (edge e, basic_block dest)
node = build_tree_list (dst, src);
*last = node;
last = &TREE_CHAIN (node);
remove_phi_arg_num (phi, i);
}
e = redirect_edge_succ_nodup (e, dest);
......
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