Commit 3d3f2249 by Richard Guenther Committed by Richard Biener

tree-nrv.c (tree_nrv): Release VDEFs.

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
parent b5b3ec3e
2012-04-05 Richard Guenther <rguenther@suse.de> 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 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
cleanup. cleanup.
* gimple.h (gsi_remove): Adjust. * gimple.h (gsi_remove): Adjust.
......
...@@ -3268,12 +3268,12 @@ sink_clobbers (basic_block bb) ...@@ -3268,12 +3268,12 @@ sink_clobbers (basic_block bb)
vdef = gimple_vdef (stmt); vdef = gimple_vdef (stmt);
if (vdef && TREE_CODE (vdef) == SSA_NAME) if (vdef && TREE_CODE (vdef) == SSA_NAME)
{ {
release_ssa_name (vdef);
vdef = SSA_NAME_VAR (vdef); vdef = SSA_NAME_VAR (vdef);
mark_sym_for_renaming (vdef); mark_sym_for_renaming (vdef);
gimple_set_vdef (stmt, vdef); gimple_set_vdef (stmt, vdef);
gimple_set_vuse (stmt, vdef); gimple_set_vuse (stmt, vdef);
} }
release_defs (stmt);
gsi_insert_before (&dgsi, stmt, GSI_SAME_STMT); gsi_insert_before (&dgsi, stmt, GSI_SAME_STMT);
} }
...@@ -3955,7 +3955,7 @@ cleanup_empty_eh_move_lp (basic_block bb, edge e_out, ...@@ -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. */ /* Delete the RESX that was matched within the empty handler block. */
gsi = gsi_last_bb (bb); gsi = gsi_last_bb (bb);
mark_virtual_ops_for_renaming (gsi_stmt (gsi)); unlink_stmt_vdef (gsi_stmt (gsi));
gsi_remove (&gsi, true); gsi_remove (&gsi, true);
/* Clean up E_OUT for the fallthru. */ /* Clean up E_OUT for the fallthru. */
......
...@@ -244,6 +244,7 @@ tree_nrv (void) ...@@ -244,6 +244,7 @@ tree_nrv (void)
{ {
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
gsi_remove (&gsi, true); gsi_remove (&gsi, true);
release_defs (stmt);
} }
else else
{ {
......
...@@ -2821,6 +2821,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi) ...@@ -2821,6 +2821,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi)
{ {
unlink_stmt_vdef (*stmt); unlink_stmt_vdef (*stmt);
gsi_remove (gsi, true); gsi_remove (gsi, true);
release_defs (*stmt);
return SRA_AM_REMOVED; return SRA_AM_REMOVED;
} }
else else
...@@ -2844,6 +2845,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi) ...@@ -2844,6 +2845,7 @@ sra_modify_constructor_assign (gimple *stmt, gimple_stmt_iterator *gsi)
init_subtree_with_zero (acc, gsi, false, loc); init_subtree_with_zero (acc, gsi, false, loc);
unlink_stmt_vdef (*stmt); unlink_stmt_vdef (*stmt);
gsi_remove (gsi, true); gsi_remove (gsi, true);
release_defs (*stmt);
return SRA_AM_REMOVED; return SRA_AM_REMOVED;
} }
else else
...@@ -3094,6 +3096,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi) ...@@ -3094,6 +3096,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi)
gsi_next (gsi); gsi_next (gsi);
unlink_stmt_vdef (*stmt); unlink_stmt_vdef (*stmt);
gsi_remove (&orig_gsi, true); gsi_remove (&orig_gsi, true);
release_defs (*stmt);
sra_stats.deleted++; sra_stats.deleted++;
return SRA_AM_REMOVED; return SRA_AM_REMOVED;
} }
...@@ -3114,6 +3117,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi) ...@@ -3114,6 +3117,7 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi)
gcc_assert (*stmt == gsi_stmt (*gsi)); gcc_assert (*stmt == gsi_stmt (*gsi));
unlink_stmt_vdef (*stmt); unlink_stmt_vdef (*stmt);
gsi_remove (gsi, true); gsi_remove (gsi, true);
release_defs (*stmt);
sra_stats.deleted++; sra_stats.deleted++;
return SRA_AM_REMOVED; return SRA_AM_REMOVED;
} }
......
...@@ -2301,6 +2301,7 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si) ...@@ -2301,6 +2301,7 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si)
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, " Flagged to clear EH edges.\n"); fprintf (dump_file, " Flagged to clear EH edges.\n");
} }
release_defs (stmt);
return; return;
} }
} }
......
...@@ -1430,6 +1430,8 @@ execute_cse_sincos (void) ...@@ -1430,6 +1430,8 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc); gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true); gsi_replace (&gsi, new_stmt, true);
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
} }
break; break;
...@@ -1450,6 +1452,8 @@ execute_cse_sincos (void) ...@@ -1450,6 +1452,8 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc); gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true); gsi_replace (&gsi, new_stmt, true);
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
} }
break; break;
...@@ -1465,6 +1469,8 @@ execute_cse_sincos (void) ...@@ -1465,6 +1469,8 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc); gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true); gsi_replace (&gsi, new_stmt, true);
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
} }
break; break;
......
...@@ -5476,8 +5476,11 @@ vect_transform_loop (loop_vec_info loop_vinfo) ...@@ -5476,8 +5476,11 @@ vect_transform_loop (loop_vec_info loop_vinfo)
else else
{ {
/* Free the attached stmt_vec_info and remove the stmt. */ /* 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); gsi_remove (&si, true);
release_defs (store);
continue; continue;
} }
} }
......
...@@ -3043,7 +3043,9 @@ vect_schedule_slp (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo) ...@@ -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)); store = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (store));
/* Free the attached stmt_vec_info and remove the stmt. */ /* Free the attached stmt_vec_info and remove the stmt. */
gsi = gsi_for_stmt (store); gsi = gsi_for_stmt (store);
unlink_stmt_vdef (store);
gsi_remove (&gsi, true); gsi_remove (&gsi, true);
release_defs (store);
free_stmt_vec_info (store); free_stmt_vec_info (store);
} }
} }
......
...@@ -5653,7 +5653,9 @@ vect_remove_stores (gimple first_stmt) ...@@ -5653,7 +5653,9 @@ vect_remove_stores (gimple first_stmt)
next = STMT_VINFO_RELATED_STMT (stmt_info); next = STMT_VINFO_RELATED_STMT (stmt_info);
/* Free the attached stmt_vec_info and remove the stmt. */ /* Free the attached stmt_vec_info and remove the stmt. */
next_si = gsi_for_stmt (next); next_si = gsi_for_stmt (next);
unlink_stmt_vdef (next);
gsi_remove (&next_si, true); gsi_remove (&next_si, true);
release_defs (next);
free_stmt_vec_info (next); free_stmt_vec_info (next);
next = tmp; next = tmp;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment