aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@gcc.gnu.org>2006-05-09 01:28:47 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-05-09 01:28:47 +0000
commit74be08f84e9f991cc101c8881ef6863e8dddd335 (patch)
treeb5a7f95f1a6bb2f1734afb2d142fc658dd568e1a /gcc
parentfdaaf0020280a2d019c54294eb7ad28d0b1929bd (diff)
downloadgcc-74be08f84e9f991cc101c8881ef6863e8dddd335.zip
gcc-74be08f84e9f991cc101c8881ef6863e8dddd335.tar.gz
gcc-74be08f84e9f991cc101c8881ef6863e8dddd335.tar.bz2
re PR tree-optimization/27093 (verify_ssa failed: definition does not dominate use)
2006-05-08 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/27093 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for renaming when they become not-used_alone. From-SVN: r113641
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-alias.c11
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 242e624..bc786cd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-08 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/27093
+ * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
+ renaming when they become not-used_alone.
+
2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
@@ -58,6 +64,7 @@
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Do not try to find zero-sized subvars.
+>>>>>>> .r113631
2006-05-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/27136
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 4e8b5a4..9d5f145 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -522,6 +522,17 @@ recalculate_used_alone (void)
for (i = 0; VEC_iterate (tree, calls, i, stmt); i++)
update_stmt (stmt);
}
+
+ /* We need to mark SMT's that are no longer used for renaming so the
+ symbols go away, or else verification will be angry with us, even
+ though they are dead. */
+ FOR_EACH_REFERENCED_VAR (var, rvi)
+ if (TREE_CODE (var) == SYMBOL_MEMORY_TAG)
+ {
+ if (SMT_OLD_USED_ALONE (var) && !SMT_USED_ALONE (var))
+ mark_sym_for_renaming (var);
+ }
+
VEC_free (tree, heap, calls);
updating_used_alone = false;
}