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 | |
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')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.c | 11 |
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; } |