tree-nrv.c (tree_nrv): Release VDEFs.
authorRichard Guenther <rguenther@suse.de>
Thu, 5 Apr 2012 09:45:18 +0000 (09:45 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 5 Apr 2012 09:45:18 +0000 (09:45 +0000)
2012-04-05  Richard Guenther  <rguenther@suse.de>

* tree-nrv.c (tree_nrv): Release VDEFs.
* tree-sra.c (sra_modify_constructor_assign): Likewise.
(sra_modify_assign): Likewise.
* tree-vect-stmts.c (vect_remove_stores): Likewise.
* tree-vect-loop.c (vect_transform_loop): Likewise.
* tree-ssa-dom.c (optimize_stmt): Likewise.
* tree-vect-slp.c (vect_schedule_slp): Likewise.
* tree-ssa-math-opts.c (execute_cse_sincos): Likewise.

From-SVN: r186160

gcc/ChangeLog
gcc/tree-eh.c
gcc/tree-nrv.c
gcc/tree-sra.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-math-opts.c
gcc/tree-vect-loop.c
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c

index 591c5af..bd45eb7 100644 (file)
@@ -1,5 +1,16 @@
 2012-04-05  Richard Guenther  <rguenther@suse.de>
 
+       * tree-nrv.c (tree_nrv): Release VDEFs.
+       * tree-sra.c (sra_modify_constructor_assign): Likewise.
+       (sra_modify_assign): Likewise.
+       * tree-vect-stmts.c (vect_remove_stores): Likewise.
+       * tree-vect-loop.c (vect_transform_loop): Likewise.
+       * tree-ssa-dom.c (optimize_stmt): Likewise.
+       * tree-vect-slp.c (vect_schedule_slp): Likewise.
+       * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
+
+2012-04-05  Richard Guenther  <rguenther@suse.de>
+
        * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
        cleanup.
        * gimple.h (gsi_remove): Adjust.
index f19dc2c..b78d9e9 100644 (file)
@@ -3268,12 +3268,12 @@ sink_clobbers (basic_block bb)
       vdef = gimple_vdef (stmt);
       if (vdef && TREE_CODE (vdef) == SSA_NAME)
        {
+         release_ssa_name (vdef);
          vdef = SSA_NAME_VAR (vdef);
          mark_sym_for_renaming (vdef);
          gimple_set_vdef (stmt, vdef);
          gimple_set_vuse (stmt, vdef);
        }
-      release_defs (stmt);
       gsi_insert_before (&dgsi, stmt, GSI_SAME_STMT);
     }
 
@@ -3955,7 +3955,7 @@ cleanup_empty_eh_move_lp (basic_block bb, edge e_out,
 
   /* Delete the RESX that was matched within the empty handler block.  */
   gsi = gsi_last_bb (bb);
-  mark_virtual_ops_for_renaming (gsi_stmt (gsi));
+  unlink_stmt_vdef (gsi_stmt (gsi));
   gsi_remove (&gsi, true);
 
   /* Clean up E_OUT for the fallthru.  */
index 982fcc8..9176e29 100644 (file)
@@ -244,6 +244,7 @@ tree_nrv (void)
            {
              unlink_stmt_vdef (stmt);
              gsi_remove (&gsi, true);
+             release_defs (stmt);
            }
          else
            {
index 84dc3be..c5f105a 100644 (file)
@@ -2821,6 +2821,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi)
        {
          unlink_stmt_vdef (*stmt);
          gsi_remove (gsi, true);
+         release_defs (*stmt);
          return SRA_AM_REMOVED;
        }
       else
@@ -2844,6 +2845,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi)
       init_subtree_with_zero (acc, gsi, false, loc);
       unlink_stmt_vdef (*stmt);
       gsi_remove (gsi, true);
+      release_defs (*stmt);
       return SRA_AM_REMOVED;
     }
   else
@@ -3094,6 +3096,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi)
              gsi_next (gsi);
              unlink_stmt_vdef (*stmt);
              gsi_remove (&orig_gsi, true);
+             release_defs (*stmt);
              sra_stats.deleted++;
              return SRA_AM_REMOVED;
            }
@@ -3114,6 +3117,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi)
              gcc_assert (*stmt == gsi_stmt (*gsi));
              unlink_stmt_vdef (*stmt);
              gsi_remove (gsi, true);
+             release_defs (*stmt);
              sra_stats.deleted++;
              return SRA_AM_REMOVED;
            }
index d2e4cc4..d35297a 100644 (file)
@@ -2301,6 +2301,7 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si)
                  if (dump_file && (dump_flags & TDF_DETAILS))
                    fprintf (dump_file, "  Flagged to clear EH edges.\n");
                }
+             release_defs (stmt);
              return;
            }
        }
index 5c3543e..f54d08d 100644 (file)
@@ -1430,6 +1430,8 @@ execute_cse_sincos (void)
                      gimple_set_location (new_stmt, loc);
                      unlink_stmt_vdef (stmt);
                      gsi_replace (&gsi, new_stmt, true);
+                     if (gimple_vdef (stmt))
+                       release_ssa_name (gimple_vdef (stmt));
                    }
                  break;
 
@@ -1450,6 +1452,8 @@ execute_cse_sincos (void)
                      gimple_set_location (new_stmt, loc);
                      unlink_stmt_vdef (stmt);
                      gsi_replace (&gsi, new_stmt, true);
+                     if (gimple_vdef (stmt))
+                       release_ssa_name (gimple_vdef (stmt));
                    }
                  break;
 
@@ -1465,6 +1469,8 @@ execute_cse_sincos (void)
                      gimple_set_location (new_stmt, loc);
                      unlink_stmt_vdef (stmt);
                      gsi_replace (&gsi, new_stmt, true);
+                     if (gimple_vdef (stmt))
+                       release_ssa_name (gimple_vdef (stmt));
                    }
                  break;
 
index 16515dc..3df0e4b 100644 (file)
@@ -5476,8 +5476,11 @@ vect_transform_loop (loop_vec_info loop_vinfo)
              else
                {
                  /* Free the attached stmt_vec_info and remove the stmt.  */
-                 free_stmt_vec_info (gsi_stmt (si));
+                 gimple store = gsi_stmt (si);
+                 free_stmt_vec_info (store);
+                 unlink_stmt_vdef (store);
                  gsi_remove (&si, true);
+                 release_defs (store);
                  continue;
                }
            }
index 0ab6be0..014fa98 100644 (file)
@@ -3043,7 +3043,9 @@ vect_schedule_slp (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo)
            store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (store));
           /* Free the attached stmt_vec_info and remove the stmt.  */
           gsi = gsi_for_stmt (store);
+         unlink_stmt_vdef (store);
           gsi_remove (&gsi, true);
+         release_defs (store);
           free_stmt_vec_info (store);
         }
     }
index acaf675..dabb63d 100644 (file)
@@ -5653,7 +5653,9 @@ vect_remove_stores (gimple first_stmt)
        next = STMT_VINFO_RELATED_STMT (stmt_info);
       /* Free the attached stmt_vec_info and remove the stmt.  */
       next_si = gsi_for_stmt (next);
+      unlink_stmt_vdef (next);
       gsi_remove (&next_si, true);
+      release_defs (next);
       free_stmt_vec_info (next);
       next = tmp;
     }