diff options
author | Daniel Berlin <dberlin@gcc.gnu.org> | 2006-05-09 01:28:47 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2006-05-09 01:28:47 +0000 |
commit | 74be08f84e9f991cc101c8881ef6863e8dddd335 (patch) | |
tree | b5a7f95f1a6bb2f1734afb2d142fc658dd568e1a /gcc/tree-ssa-alias.c | |
parent | fdaaf0020280a2d019c54294eb7ad28d0b1929bd (diff) | |
download | gcc-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.c | 11 |
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; } |