aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2005-05-27 11:55:36 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2005-05-27 11:55:36 +0000
commit6e3b9e2787800d6fde4828a532cc94d436193701 (patch)
tree9ce95a8274eddc018ca58ea84940d4f4844d6ef2
parentfb617f00f1279cec132fda679dadb9b0abe54723 (diff)
downloadgcc-6e3b9e2787800d6fde4828a532cc94d436193701.zip
gcc-6e3b9e2787800d6fde4828a532cc94d436193701.tar.gz
gcc-6e3b9e2787800d6fde4828a532cc94d436193701.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-into-ssa.c4
-rw-r--r--gcc/tree-ssa-dom.c18
3 files changed, 20 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ea4ee96..4c67cab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 03561bac..e7ff242 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -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;
}
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 278d27a..cb4abcf 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -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 ();