tree-optimization/94352 - fix uninitialized use of curr_order

This fixes a (harmless) use of a not re-initialized curr_order.

2020-03-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/94352
	* tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
	worklist ...
	(ssa_propagation_engine::ssa_propagate): ... here after
	initializing curr_order.
This commit is contained in:
Richard Biener 2020-03-27 13:52:31 +01:00
parent 62ede14d30
commit 917e21e8bc
2 changed files with 18 additions and 9 deletions

View File

@ -1,3 +1,11 @@
2020-03-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/94352
* tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
worklist ...
(ssa_propagation_engine::ssa_propagate): ... here after
initializing curr_order.
2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
PR tree-optimization/90332

View File

@ -421,14 +421,6 @@ ssa_prop_init (void)
e->flags &= ~EDGE_EXECUTABLE;
}
uid_to_stmt.safe_grow (gimple_stmt_max_uid (cfun));
/* Seed the algorithm by adding the successors of the entry block to the
edge worklist. */
FOR_EACH_EDGE (e, ei, ENTRY_BLOCK_PTR_FOR_FN (cfun)->succs)
{
e->flags &= ~EDGE_EXECUTABLE;
add_control_edge (e);
}
}
@ -758,7 +750,16 @@ ssa_propagation_engine::ssa_propagate (void)
/* Iterate until the worklists are empty. We iterate both blocks
and stmts in RPO order, using sets of two worklists to first
complete the current iteration before iterating over backedges. */
complete the current iteration before iterating over backedges.
Seed the algorithm by adding the successors of the entry block to the
edge worklist. */
edge e;
edge_iterator ei;
FOR_EACH_EDGE (e, ei, ENTRY_BLOCK_PTR_FOR_FN (cfun)->succs)
{
e->flags &= ~EDGE_EXECUTABLE;
add_control_edge (e);
}
while (1)
{
int next_block_order = (bitmap_empty_p (cfg_blocks)