Commit 1a15be68 by Jeff Law Committed by Jeff Law

re PR tree-optimization/33562 (aggregate DSE disabled)

	PR tree-optimization/33562
	PR tree-optimization/61912
	PR tree-optimization/77485
	* tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
	a statement.
	(delete_dead_assignment): Likewise.
	(dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
	statement to delete_dead_call and delete_dead_assignment.

From-SVN: r244461
parent a2bd02ae
2017-01-13 Jeff Law <law@redhat.com>
PR tree-optimization/33562
PR tree-optimization/61912
PR tree-optimization/77485
* tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
a statement.
(delete_dead_assignment): Likewise.
(dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
statement to delete_dead_call and delete_dead_assignment.
2017-01-13 David Malcolm <dmalcolm@redhat.com> 2017-01-13 David Malcolm <dmalcolm@redhat.com>
PR c/78304 PR c/78304
......
...@@ -602,8 +602,9 @@ private: ...@@ -602,8 +602,9 @@ private:
/* Delete a dead call STMT, which is mem* call of some kind. */ /* Delete a dead call STMT, which is mem* call of some kind. */
static void static void
delete_dead_call (gimple *stmt) delete_dead_call (gimple_stmt_iterator *gsi)
{ {
gimple *stmt = gsi_stmt (*gsi);
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
{ {
fprintf (dump_file, " Deleted dead call: "); fprintf (dump_file, " Deleted dead call: ");
...@@ -612,13 +613,12 @@ delete_dead_call (gimple *stmt) ...@@ -612,13 +613,12 @@ delete_dead_call (gimple *stmt)
} }
tree lhs = gimple_call_lhs (stmt); tree lhs = gimple_call_lhs (stmt);
gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
if (lhs) if (lhs)
{ {
tree ptr = gimple_call_arg (stmt, 0); tree ptr = gimple_call_arg (stmt, 0);
gimple *new_stmt = gimple_build_assign (lhs, ptr); gimple *new_stmt = gimple_build_assign (lhs, ptr);
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
if (gsi_replace (&gsi, new_stmt, true)) if (gsi_replace (gsi, new_stmt, true))
bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index); bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
} }
else else
...@@ -627,7 +627,7 @@ delete_dead_call (gimple *stmt) ...@@ -627,7 +627,7 @@ delete_dead_call (gimple *stmt)
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
/* Remove the dead store. */ /* Remove the dead store. */
if (gsi_remove (&gsi, true)) if (gsi_remove (gsi, true))
bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index); bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
release_defs (stmt); release_defs (stmt);
} }
...@@ -636,8 +636,9 @@ delete_dead_call (gimple *stmt) ...@@ -636,8 +636,9 @@ delete_dead_call (gimple *stmt)
/* Delete a dead store STMT, which is a gimple assignment. */ /* Delete a dead store STMT, which is a gimple assignment. */
static void static void
delete_dead_assignment (gimple *stmt) delete_dead_assignment (gimple_stmt_iterator *gsi)
{ {
gimple *stmt = gsi_stmt (*gsi);
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
{ {
fprintf (dump_file, " Deleted dead store: "); fprintf (dump_file, " Deleted dead store: ");
...@@ -649,9 +650,8 @@ delete_dead_assignment (gimple *stmt) ...@@ -649,9 +650,8 @@ delete_dead_assignment (gimple *stmt)
unlink_stmt_vdef (stmt); unlink_stmt_vdef (stmt);
/* Remove the dead store. */ /* Remove the dead store. */
gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
basic_block bb = gimple_bb (stmt); basic_block bb = gimple_bb (stmt);
if (gsi_remove (&gsi, true)) if (gsi_remove (gsi, true))
bitmap_set_bit (need_eh_cleanup, bb->index); bitmap_set_bit (need_eh_cleanup, bb->index);
/* And release any SSA_NAMEs set in this statement back to the /* And release any SSA_NAMEs set in this statement back to the
...@@ -717,7 +717,7 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi) ...@@ -717,7 +717,7 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi)
} }
if (store_status == DSE_STORE_DEAD) if (store_status == DSE_STORE_DEAD)
delete_dead_call (stmt); delete_dead_call (gsi);
return; return;
} }
...@@ -760,7 +760,7 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi) ...@@ -760,7 +760,7 @@ dse_dom_walker::dse_optimize_stmt (gimple_stmt_iterator *gsi)
&& !gimple_clobber_p (use_stmt)) && !gimple_clobber_p (use_stmt))
return; return;
delete_dead_assignment (stmt); delete_dead_assignment (gsi);
} }
} }
......
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