Commit 789c34e3 by Richard Biener Committed by Richard Biener

tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when…

tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when there is nothing to do.

2013-03-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
	whole function when there is nothing to do.
	* tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
	* tree-vectorizer.c (vectorize_loops): Update virtual and
	loop-closed SSA once.
	* tree-vect-loop.c (vect_transform_loop): Do not update SSA here.

From-SVN: r196770
parent 076b4605
2013-03-18 Richard Biener <rguenther@suse.de> 2013-03-18 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
whole function when there is nothing to do.
* tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
* tree-vectorizer.c (vectorize_loops): Update virtual and
loop-closed SSA once.
* tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
2013-03-18 Richard Biener <rguenther@suse.de>
PR middle-end/56113 PR middle-end/56113
* domwalk.c (bb_postorder): New global static. * domwalk.c (bb_postorder): New global static.
(cmp_bb_postorder): New function. (cmp_bb_postorder): New function.
......
...@@ -443,21 +443,12 @@ find_uses_to_rename (bitmap changed_bbs, bitmap *use_blocks, bitmap need_phis) ...@@ -443,21 +443,12 @@ find_uses_to_rename (bitmap changed_bbs, bitmap *use_blocks, bitmap need_phis)
unsigned index; unsigned index;
bitmap_iterator bi; bitmap_iterator bi;
/* ??? If CHANGED_BBS is empty we rewrite the whole function -- why? */ if (changed_bbs)
if (changed_bbs && !bitmap_empty_p (changed_bbs)) EXECUTE_IF_SET_IN_BITMAP (changed_bbs, 0, index, bi)
{ find_uses_to_rename_bb (BASIC_BLOCK (index), use_blocks, need_phis);
EXECUTE_IF_SET_IN_BITMAP (changed_bbs, 0, index, bi)
{
find_uses_to_rename_bb (BASIC_BLOCK (index), use_blocks, need_phis);
}
}
else else
{ FOR_EACH_BB (bb)
FOR_EACH_BB (bb) find_uses_to_rename_bb (bb, use_blocks, need_phis);
{
find_uses_to_rename_bb (bb, use_blocks, need_phis);
}
}
} }
/* Rewrites the program into a loop closed ssa form -- i.e. inserts extra /* Rewrites the program into a loop closed ssa form -- i.e. inserts extra
......
...@@ -245,8 +245,7 @@ struct gimple_opt_pass pass_vectorize = ...@@ -245,8 +245,7 @@ struct gimple_opt_pass pass_vectorize =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_update_ssa TODO_ggc_collect /* todo_flags_finish */
| TODO_ggc_collect /* todo_flags_finish */
} }
}; };
......
...@@ -5773,11 +5773,6 @@ vect_transform_loop (loop_vec_info loop_vinfo) ...@@ -5773,11 +5773,6 @@ vect_transform_loop (loop_vec_info loop_vinfo)
loop->nb_iterations_estimate = loop->nb_iterations_estimate - double_int_one; loop->nb_iterations_estimate = loop->nb_iterations_estimate - double_int_one;
} }
/* The memory tags and pointers in vectorized statements need to
have their SSA forms updated. FIXME, why can't this be delayed
until all the loops have been transformed? */
update_ssa (TODO_update_ssa);
if (dump_enabled_p ()) if (dump_enabled_p ())
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, "LOOP VECTORIZED."); dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, "LOOP VECTORIZED.");
if (loop->inner && dump_enabled_p ()) if (loop->inner && dump_enabled_p ())
......
...@@ -149,7 +149,16 @@ vectorize_loops (void) ...@@ -149,7 +149,16 @@ vectorize_loops (void)
free_stmt_vec_info_vec (); free_stmt_vec_info_vec ();
return num_vectorized_loops > 0 ? TODO_cleanup_cfg : 0; if (num_vectorized_loops > 0)
{
/* If we vectorized any loop only virtual SSA form needs to be updated.
??? Also while we try hard to update loop-closed SSA form we fail
to properly do this in some corner-cases (see PR56286). */
rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa_only_virtuals);
return TODO_cleanup_cfg;
}
return 0;
} }
......
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