diff options
Diffstat (limited to 'gcc/tree-ssa-loop.c')
-rw-r--r-- | gcc/tree-ssa-loop.c | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index 5012470..03c3249 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -53,17 +53,8 @@ tree_loop_optimizer_init (FILE *dump) if (!loops) return NULL; - /* Creation of preheaders may create redundant phi nodes if the loop is - entered by more than one edge, but the initial value of the induction - variable is the same on all of them. */ - kill_redundant_phi_nodes (); - rewrite_into_ssa (false); - bitmap_clear (vars_to_rename); - + update_ssa (TODO_update_ssa); rewrite_into_loop_closed_ssa (NULL); -#ifdef ENABLE_CHECKING - verify_loop_closed_ssa (); -#endif return loops; } @@ -121,7 +112,7 @@ struct tree_opt_pass pass_loop_init = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -155,7 +146,7 @@ struct tree_opt_pass pass_lim = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -189,7 +180,7 @@ struct tree_opt_pass pass_unswitch = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -201,7 +192,6 @@ tree_vectorize (void) if (!current_loops) return; - bitmap_clear (vars_to_rename); vectorize_loops (current_loops); } @@ -224,7 +214,7 @@ struct tree_opt_pass pass_vectorize = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_update_ssa, /* todo_flags_finish */ 0 /* letter */ }; @@ -259,7 +249,7 @@ struct tree_opt_pass pass_linear_transform = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -293,7 +283,7 @@ struct tree_opt_pass pass_iv_canon = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -356,7 +346,7 @@ struct tree_opt_pass pass_complete_unroll = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -390,7 +380,7 @@ struct tree_opt_pass pass_iv_optimize = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ + TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ 0 /* letter */ }; @@ -402,10 +392,6 @@ tree_ssa_loop_done (void) if (!current_loops) return; -#ifdef ENABLE_CHECKING - verify_loop_closed_ssa (); -#endif - free_numbers_of_iterations_estimates (current_loops); scev_finalize (); loop_optimizer_finalize (current_loops, @@ -429,4 +415,3 @@ struct tree_opt_pass pass_loop_done = TODO_cleanup_cfg | TODO_dump_func, /* todo_flags_finish */ 0 /* letter */ }; - |