diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 2 | ||||
-rw-r--r-- | gcc/passes.c | 19 | ||||
-rw-r--r-- | gcc/tree-pass.h | 4 |
4 files changed, 28 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e9a129..7a1894b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,15 @@ 2014-04-28 Richard Biener <rguenther@suse.de> + * tree-pass.h (TODO_verify_il): Define. + (TODO_verify_all): Complete properly. + * passes.c (execute_function_todo): Move existing loop-closed + SSA verification under TODO_verify_il. + (execute_one_pass): Trigger TODO_verify_il at todo-after time. + * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): + Fix tree sharing issue. + +2014-04-28 Richard Biener <rguenther@suse.de> + PR middle-end/60092 * builtins.def (DEF_C11_BUILTIN): Add. (BUILT_IN_ALIGNED_ALLOC): Likewise. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 28447e4..3c5cdf3 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -2470,7 +2470,7 @@ rewrite_cross_bb_scalar_deps (scop_p scop, gimple_stmt_iterator *gsi) gsi_next (gsi); } - rewrite_cross_bb_scalar_dependence (scop, zero_dim_array, + rewrite_cross_bb_scalar_dependence (scop, unshare_expr (zero_dim_array), def, use_stmt); } diff --git a/gcc/passes.c b/gcc/passes.c index c0a76d6..45f31d7 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1768,8 +1768,7 @@ execute_function_todo (function *fn, void *data) } #if defined ENABLE_CHECKING - if (flags & TODO_verify_ssa - || (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA))) + if (flags & TODO_verify_ssa) { verify_gimple_in_cfg (cfun); verify_ssa (true); @@ -1778,8 +1777,18 @@ execute_function_todo (function *fn, void *data) verify_gimple_in_cfg (cfun); if (flags & TODO_verify_flow) verify_flow_info (); - if (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA)) - verify_loop_closed_ssa (false); + if (flags & TODO_verify_il) + { + if (current_loops + && loops_state_satisfies_p (LOOP_CLOSED_SSA)) + { + if (!(flags & (TODO_verify_stmts|TODO_verify_ssa))) + verify_gimple_in_cfg (cfun); + if (!(flags & TODO_verify_ssa)) + verify_ssa (true); + verify_loop_closed_ssa (false); + } + } if (flags & TODO_verify_rtl_sharing) verify_rtl_sharing (); #endif @@ -2167,7 +2176,7 @@ execute_one_pass (opt_pass *pass) check_profile_consistency (pass->static_pass_number, 0, true); /* Run post-pass cleanup and verification. */ - execute_todo (todo_after | pass->todo_flags_finish); + execute_todo (todo_after | pass->todo_flags_finish | TODO_verify_il); if (profile_report && cfun && (cfun->curr_properties & PROP_cfg)) check_profile_consistency (pass->static_pass_number, 1, true); diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 0d941019..616e85b 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -234,6 +234,7 @@ protected: #define TODO_verify_flow (1 << 3) #define TODO_verify_stmts (1 << 4) #define TODO_cleanup_cfg (1 << 5) +#define TODO_verify_il (1 << 6) #define TODO_dump_symtab (1 << 7) #define TODO_remove_functions (1 << 8) #define TODO_rebuild_frequencies (1 << 9) @@ -309,7 +310,8 @@ protected: | TODO_update_ssa_only_virtuals) #define TODO_verify_all \ - (TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts) + (TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts | TODO_verify_il \ + | TODO_verify_rtl_sharing) /* Register pass info. */ |