aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
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/tree-ssa-alias.c
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/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c11
1 files changed, 11 insertions, 0 deletions
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;
}