Commit 6e3b9e27 by Kazu Hirata Committed by Kazu Hirata

tree-into-ssa.c (update_ssa): Ensure that the operand cache is up-to-date.

	* tree-into-ssa.c (update_ssa): Ensure that the operand cache
	is up-to-date.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
	update_stmt_if_modified before calling update_ssa.

From-SVN: r100250
parent fb617f00
2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (update_ssa): Ensure that the operand cache
is up-to-date.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
update_stmt_if_modified before calling update_ssa.
2005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org> 2005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/rs6000/t-rtems: Remove roe multilib variant. * config/rs6000/t-rtems: Remove roe multilib variant.
......
...@@ -2679,6 +2679,10 @@ update_ssa (unsigned update_flags) ...@@ -2679,6 +2679,10 @@ update_ssa (unsigned update_flags)
for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si)) for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
{ {
tree stmt = bsi_stmt (si); tree stmt = bsi_stmt (si);
/* We are going to use the operand cache API, such as
SET_USE, SET_DEF, and FOR_EACH_IMM_USE_FAST. The operand
cache for each statement should be up-to-date. */
gcc_assert (!stmt_modified_p (stmt));
REWRITE_THIS_STMT (stmt) = 0; REWRITE_THIS_STMT (stmt) = 0;
REGISTER_DEFS_IN_THIS_STMT (stmt) = 0; REGISTER_DEFS_IN_THIS_STMT (stmt) = 0;
} }
......
...@@ -423,15 +423,6 @@ tree_ssa_dominator_optimize (void) ...@@ -423,15 +423,6 @@ tree_ssa_dominator_optimize (void)
/* Recursively walk the dominator tree optimizing statements. */ /* Recursively walk the dominator tree optimizing statements. */
walk_dominator_tree (&walk_data, ENTRY_BLOCK_PTR); walk_dominator_tree (&walk_data, ENTRY_BLOCK_PTR);
/* If we exposed any new variables, go ahead and put them into
SSA form now, before we handle jump threading. This simplifies
interactions between rewriting of _DECL nodes into SSA form
and rewriting SSA_NAME nodes into SSA form after block
duplication and CFG manipulation. */
update_ssa (TODO_update_ssa);
free_all_edge_infos ();
{ {
block_stmt_iterator bsi; block_stmt_iterator bsi;
basic_block bb; basic_block bb;
...@@ -444,6 +435,15 @@ tree_ssa_dominator_optimize (void) ...@@ -444,6 +435,15 @@ tree_ssa_dominator_optimize (void)
} }
} }
/* If we exposed any new variables, go ahead and put them into
SSA form now, before we handle jump threading. This simplifies
interactions between rewriting of _DECL nodes into SSA form
and rewriting SSA_NAME nodes into SSA form after block
duplication and CFG manipulation. */
update_ssa (TODO_update_ssa);
free_all_edge_infos ();
/* Thread jumps, creating duplicate blocks as needed. */ /* Thread jumps, creating duplicate blocks as needed. */
cfg_altered |= thread_through_all_blocks (); cfg_altered |= thread_through_all_blocks ();
......
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