Avoid calling verify_ssa twice in verify_loop_closed_ssa.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_verify): Remove redundant
	call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
	argument.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	* passes.c (execute_function_todo): Call verify_ssa for every pass
	in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
	* tree-flow.h (verify_loop_closed_ssa): Update declaration.
	* tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
	with an extra argument.
	* tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
	verify_ssa only when the extra argument is true.
	(gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
	with an extra argument.
	(tree_transform_and_unroll_loop): Same.

From-SVN: r158021
This commit is contained in:
Sebastian Pop 2010-04-06 19:20:47 +00:00 committed by Sebastian Pop
parent 98b6e9dda5
commit a3b9e73ca3
8 changed files with 37 additions and 19 deletions

View File

@ -1,3 +1,22 @@
2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (graphite_verify): Remove redundant
call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
argument.
* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
* passes.c (execute_function_todo): Call verify_ssa for every pass
in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
* tree-flow.h (verify_loop_closed_ssa): Update declaration.
* tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
with an extra argument.
* tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
verify_ssa only when the extra argument is true.
(gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
with an extra argument.
(tree_transform_and_unroll_loop): Same.
2010-04-06 Sebastian Pop <sebastian.pop@amd.com> 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
* passes.c (execute_function_todo): Call verify_loop_closed_ssa * passes.c (execute_function_todo): Call verify_loop_closed_ssa

View File

@ -65,8 +65,7 @@ graphite_verify (void)
verify_loop_structure (); verify_loop_structure ();
verify_dominators (CDI_DOMINATORS); verify_dominators (CDI_DOMINATORS);
verify_dominators (CDI_POST_DOMINATORS); verify_dominators (CDI_POST_DOMINATORS);
verify_ssa (false); verify_loop_closed_ssa (true);
verify_loop_closed_ssa ();
#endif #endif
} }

View File

@ -1303,7 +1303,7 @@ canonicalize_loop_closed_ssa_form (void)
loop_p loop; loop_p loop;
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
verify_loop_closed_ssa (); verify_loop_closed_ssa (true);
#endif #endif
FOR_EACH_LOOP (li, loop, 0) FOR_EACH_LOOP (li, loop, 0)
@ -1313,7 +1313,7 @@ canonicalize_loop_closed_ssa_form (void)
update_ssa (TODO_update_ssa); update_ssa (TODO_update_ssa);
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
verify_loop_closed_ssa (); verify_loop_closed_ssa (true);
#endif #endif
} }

View File

@ -2402,8 +2402,7 @@ rewrite_reductions_out_of_ssa (scop_p scop)
update_ssa (TODO_update_ssa); update_ssa (TODO_update_ssa);
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
verify_ssa (false); verify_loop_closed_ssa (true);
verify_loop_closed_ssa ();
#endif #endif
FOR_EACH_BB (bb) FOR_EACH_BB (bb)
@ -2413,8 +2412,7 @@ rewrite_reductions_out_of_ssa (scop_p scop)
update_ssa (TODO_update_ssa); update_ssa (TODO_update_ssa);
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
verify_ssa (false); verify_loop_closed_ssa (true);
verify_loop_closed_ssa ();
#endif #endif
} }
@ -2868,8 +2866,7 @@ rewrite_commutative_reductions_out_of_ssa (sese region, sbitmap reductions)
gsi_commit_edge_inserts (); gsi_commit_edge_inserts ();
update_ssa (TODO_update_ssa); update_ssa (TODO_update_ssa);
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
verify_ssa (false); verify_loop_closed_ssa (true);
verify_loop_closed_ssa ();
#endif #endif
} }

View File

@ -1256,14 +1256,15 @@ execute_function_todo (void *data)
} }
#if defined ENABLE_CHECKING #if defined ENABLE_CHECKING
if (flags & TODO_verify_ssa) if (flags & TODO_verify_ssa
|| (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA)))
verify_ssa (true); verify_ssa (true);
if (flags & TODO_verify_flow) if (flags & TODO_verify_flow)
verify_flow_info (); verify_flow_info ();
if (flags & TODO_verify_stmts) if (flags & TODO_verify_stmts)
verify_stmts (); verify_stmts ();
if (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA)) if (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA))
verify_loop_closed_ssa (); verify_loop_closed_ssa (false);
if (flags & TODO_verify_rtl_sharing) if (flags & TODO_verify_rtl_sharing)
verify_rtl_sharing (); verify_rtl_sharing ();
#endif #endif

View File

@ -715,7 +715,7 @@ enum ev_direction scev_direction (const_tree);
void free_numbers_of_iterations_estimates (void); void free_numbers_of_iterations_estimates (void);
void free_numbers_of_iterations_estimates_loop (struct loop *); void free_numbers_of_iterations_estimates_loop (struct loop *);
void rewrite_into_loop_closed_ssa (bitmap, unsigned); void rewrite_into_loop_closed_ssa (bitmap, unsigned);
void verify_loop_closed_ssa (void); void verify_loop_closed_ssa (bool);
bool for_each_index (tree *, bool (*) (tree, tree *, void *), void *); bool for_each_index (tree *, bool (*) (tree, tree *, void *), void *);
void create_iv (tree, tree, tree, struct loop *, gimple_stmt_iterator *, bool, void create_iv (tree, tree, tree, struct loop *, gimple_stmt_iterator *, bool,
tree *, tree *); tree *, tree *);

View File

@ -1970,7 +1970,7 @@ parallelize_loops (void)
verify_flow_info (); verify_flow_info ();
verify_dominators (CDI_DOMINATORS); verify_dominators (CDI_DOMINATORS);
verify_loop_structure (); verify_loop_structure ();
verify_loop_closed_ssa (); verify_loop_closed_ssa (true);
} }
free_stmt_vec_info_vec (); free_stmt_vec_info_vec ();

View File

@ -440,10 +440,11 @@ check_loop_closed_ssa_stmt (basic_block bb, gimple stmt)
check_loop_closed_ssa_use (bb, var); check_loop_closed_ssa_use (bb, var);
} }
/* Checks that invariants of the loop closed ssa form are preserved. */ /* Checks that invariants of the loop closed ssa form are preserved.
Call verify_ssa when VERIFY_SSA_P is true. */
void void
verify_loop_closed_ssa (void) verify_loop_closed_ssa (bool verify_ssa_p)
{ {
basic_block bb; basic_block bb;
gimple_stmt_iterator bsi; gimple_stmt_iterator bsi;
@ -454,7 +455,8 @@ verify_loop_closed_ssa (void)
if (number_of_loops () <= 1) if (number_of_loops () <= 1)
return; return;
verify_ssa (false); if (verify_ssa_p)
verify_ssa (false);
FOR_EACH_BB (bb) FOR_EACH_BB (bb)
{ {
@ -616,7 +618,7 @@ gimple_duplicate_loop_to_header_edge (struct loop *loop, edge e,
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
if (loops_state_satisfies_p (LOOP_CLOSED_SSA)) if (loops_state_satisfies_p (LOOP_CLOSED_SSA))
verify_loop_closed_ssa (); verify_loop_closed_ssa (true);
#endif #endif
first_new_block = last_basic_block; first_new_block = last_basic_block;
@ -1095,7 +1097,7 @@ tree_transform_and_unroll_loop (struct loop *loop, unsigned factor,
verify_flow_info (); verify_flow_info ();
verify_dominators (CDI_DOMINATORS); verify_dominators (CDI_DOMINATORS);
verify_loop_structure (); verify_loop_structure ();
verify_loop_closed_ssa (); verify_loop_closed_ssa (true);
#endif #endif
} }