aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/graphite-sese-to-poly.c2
-rw-r--r--gcc/passes.c19
-rw-r--r--gcc/tree-pass.h4
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. */