]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
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 591c5af93ca416170fe37780cf0de3eb3db95a42..bd45eb7572935d358b8974ecc1adb6d97477a418 100644 (file)
@@ -1,3 +1,14 @@
+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
index f19dc2cdffb582f0f055825af5bff1e0126d3993..b78d9e9bd3aba4eb74fb6d31b9411a53914870c6 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 982fcc8fc116b8f8b13fbbc7649deb62cda27f4c..9176e29c3ad23902e198e30a990e115ffddc866c 100644 (file)
@@ -244,6 +244,7 @@ tree_nrv (void)
            {
              unlink_stmt_vdef (stmt);
              gsi_remove (&gsi, true);
+             release_defs (stmt);
            }
          else
            {
index 84dc3be27c81df8e520bfba124a2d142e0d3c361..c5f105a2297e2bdfffb9f83366f89993bdb9ec5b 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 d2e4cc4b0b342e4ce1298ff760d0e41bb43eb465..d35297abbd72f3f485391d07a566bbf43a04b247 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 5c3543ecf3961acd417824533ad0727ebeade882..f54d08dffee05ed01d64e2145086d2a8c585a478 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 16515dce10d4ec368508b62e7b06652793a7ecae..3df0e4b61ba10969e67fc7670d31954c5286773a 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 0ab6be0671a0eebb9801a4bf9e6c7ae1b0931857..014fa988722b13d22e2dc3288b19f63f4cb3b7ee 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 acaf6757a7817e4236fa8069971490060ec14ab2..dabb63d7a92b34580186809c09ad3888946d58f3 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;
     }