Commit e68c7b43 by Richard Guenther Committed by Richard Biener

tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in variable UID order.

2009-11-30  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
	variable UID order.

From-SVN: r154776
parent 831b9ef8
2009-11-30 Richard Guenther <rguenther@suse.de>
* tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
variable UID order.
2009-11-30 Richard Guenther <rguenther@suse.de>
* tree-dump.c (dump_option_value_in): Add TDF_NOUID.
* tree-pass.h (TDF_NOUID): Likewise.
* print-rtl.c: Include tree-pass.h.
......@@ -1151,27 +1151,43 @@ static void
insert_phi_nodes (bitmap *dfs)
{
referenced_var_iterator rvi;
bitmap_iterator bi;
tree var;
bitmap vars;
unsigned uid;
timevar_push (TV_TREE_INSERT_PHI_NODES);
/* Do two stages to avoid code generation differences for UID
differences but no UID ordering differences. */
vars = BITMAP_ALLOC (NULL);
FOR_EACH_REFERENCED_VAR (var, rvi)
{
struct def_blocks_d *def_map;
bitmap idf;
def_map = find_def_blocks_for (var);
if (def_map == NULL)
continue;
if (get_phi_state (var) != NEED_PHI_STATE_NO)
{
idf = compute_idf (def_map->def_blocks, dfs);
insert_phi_nodes_for (var, idf, false);
BITMAP_FREE (idf);
}
bitmap_set_bit (vars, DECL_UID (var));
}
EXECUTE_IF_SET_IN_BITMAP (vars, 0, uid, bi)
{
tree var = referenced_var (uid);
struct def_blocks_d *def_map;
bitmap idf;
def_map = find_def_blocks_for (var);
idf = compute_idf (def_map->def_blocks, dfs);
insert_phi_nodes_for (var, idf, false);
BITMAP_FREE (idf);
}
BITMAP_FREE (vars);
timevar_pop (TV_TREE_INSERT_PHI_NODES);
}
......
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