Commit 0285a18e by Michael Matz Committed by Michael Matz

re PR bootstrap/53197 (bootstrap comparison failure)

	PR bootstrap/53197
	* tree-ssa-dse.c (dse_optimize_stmt): Take pointer to
	iterator.
	(dse_enter_block): Properly iterate the whole sequence even
	if the last statement was removed.

From-SVN: r187074
parent f5c1a633
2012-05-03 Michael Matz <matz@suse.de>
PR bootstrap/53197
* tree-ssa-dse.c (dse_optimize_stmt): Take pointer to
iterator.
(dse_enter_block): Properly iterate the whole sequence even
if the last statement was removed.
2012-05-02 Steven Bosscher <steven@gcc.gnu.org> 2012-05-02 Steven Bosscher <steven@gcc.gnu.org>
* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code, * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
......
...@@ -199,9 +199,9 @@ dse_possible_dead_store_p (gimple stmt, gimple *use_stmt) ...@@ -199,9 +199,9 @@ dse_possible_dead_store_p (gimple stmt, gimple *use_stmt)
post dominates the first store, then the first store is dead. */ post dominates the first store, then the first store is dead. */
static void static void
dse_optimize_stmt (gimple_stmt_iterator gsi) dse_optimize_stmt (gimple_stmt_iterator *gsi)
{ {
gimple stmt = gsi_stmt (gsi); gimple stmt = gsi_stmt (*gsi);
/* If this statement has no virtual defs, then there is nothing /* If this statement has no virtual defs, then there is nothing
to do. */ to do. */
...@@ -252,7 +252,7 @@ dse_optimize_stmt (gimple_stmt_iterator gsi) ...@@ -252,7 +252,7 @@ dse_optimize_stmt (gimple_stmt_iterator 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 '");
print_gimple_stmt (dump_file, gsi_stmt (gsi), dump_flags, 0); print_gimple_stmt (dump_file, gsi_stmt (*gsi), dump_flags, 0);
fprintf (dump_file, "'\n"); fprintf (dump_file, "'\n");
} }
...@@ -261,7 +261,7 @@ dse_optimize_stmt (gimple_stmt_iterator gsi) ...@@ -261,7 +261,7 @@ dse_optimize_stmt (gimple_stmt_iterator gsi)
/* Remove the dead store. */ /* Remove the dead store. */
bb = gimple_bb (stmt); 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
...@@ -277,8 +277,14 @@ dse_enter_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED, ...@@ -277,8 +277,14 @@ dse_enter_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
{ {
gimple_stmt_iterator gsi; gimple_stmt_iterator gsi;
for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi_prev (&gsi)) for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi);)
dse_optimize_stmt (gsi); {
dse_optimize_stmt (&gsi);
if (gsi_end_p (gsi))
gsi = gsi_last_bb (bb);
else
gsi_prev (&gsi);
}
} }
/* Main entry point. */ /* Main entry point. */
......
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