diff options
author | Jeff Law <law@redhat.com> | 2005-01-17 21:36:40 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2005-01-17 21:36:40 -0700 |
commit | 0bd6548378990d80f8cfc0fb33766ac253296f50 (patch) | |
tree | 7d4dd772ea3680afa83949c15dfe1e24983a6b2d /gcc/tree-ssa-dom.c | |
parent | e03a46f571d5c4144e326ec9965db0a539473090 (diff) | |
download | gcc-0bd6548378990d80f8cfc0fb33766ac253296f50.zip gcc-0bd6548378990d80f8cfc0fb33766ac253296f50.tar.gz gcc-0bd6548378990d80f8cfc0fb33766ac253296f50.tar.bz2 |
tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE at the end of the main DOM loop rather than just before...
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
at the end of the main DOM loop rather than just before DOM exits.
From-SVN: r93811
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r-- | gcc/tree-ssa-dom.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 68bf4f9..287419f 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -455,8 +455,26 @@ tree_ssa_dominator_optimize (void) htab_empty (avail_exprs); htab_empty (vrp_data); - for (i = 0; i < num_referenced_vars; i++) - var_ann (referenced_var (i))->current_def = NULL; + /* Finally, remove everything except invariants in SSA_NAME_VALUE. + + This must be done before we iterate as we might have a + reference to an SSA_NAME which was removed by the call to + rewrite_ssa_into_ssa. + + Long term we will be able to let everything in SSA_NAME_VALUE + persist. However, for now, we know this is the safe thing to do. */ + for (i = 0; i < num_ssa_names; i++) + { + tree name = ssa_name (i); + tree value; + + if (!name) + continue; + + value = SSA_NAME_VALUE (name); + if (value && !is_gimple_min_invariant (value)) + SSA_NAME_VALUE (name) = NULL; + } } while (cfg_altered); @@ -478,24 +496,6 @@ tree_ssa_dominator_optimize (void) /* Free nonzero_vars. */ BITMAP_XFREE (nonzero_vars); BITMAP_XFREE (need_eh_cleanup); - - /* Finally, remove everything except invariants in SSA_NAME_VALUE. - - Long term we will be able to let everything in SSA_NAME_VALUE - persist. However, for now, we know this is the safe thing to - do. */ - for (i = 0; i < num_ssa_names; i++) - { - tree name = ssa_name (i); - tree value; - - if (!name) - continue; - - value = SSA_NAME_VALUE (name); - if (value && !is_gimple_min_invariant (value)) - SSA_NAME_VALUE (name) = NULL; - } VEC_free (tree_on_heap, block_defs_stack); VEC_free (tree_on_heap, avail_exprs_stack); |