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
This commit is contained in:
Kazu Hirata 2005-05-27 11:55:36 +00:00 committed by Kazu Hirata
parent fb617f00f1
commit 6e3b9e2787
3 changed files with 20 additions and 9 deletions

View File

@ -1,3 +1,10 @@
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>
* config/rs6000/t-rtems: Remove roe multilib variant.

View File

@ -2679,6 +2679,10 @@ update_ssa (unsigned update_flags)
for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&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;
REGISTER_DEFS_IN_THIS_STMT (stmt) = 0;
}

View File

@ -423,15 +423,6 @@ tree_ssa_dominator_optimize (void)
/* Recursively walk the dominator tree optimizing statements. */
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;
basic_block bb;
@ -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. */
cfg_altered |= thread_through_all_blocks ();