--- gcc/tree-pass.h (/gcc-local/trunk) (revision 30596) +++ gcc/tree-pass.h (/gcc-local/export-ddg) (revision 30596) @@ -228,6 +228,9 @@ struct dump_file_info /* Internally used for the first instance of a pass. */ #define TODO_mark_first_instance (1 << 18) +#define TODO_no_verify_trees (1 << 19) + + #define TODO_update_ssa_any \ (TODO_update_ssa \ | TODO_update_ssa_no_phi \ @@ -266,6 +269,9 @@ extern struct tree_opt_pass pass_if_conv extern struct tree_opt_pass pass_vectorize; extern struct tree_opt_pass pass_complete_unroll; extern struct tree_opt_pass pass_loop_prefetch; +extern struct tree_opt_pass pass_gather_ddg_info; +extern struct tree_opt_pass pass_disable_ddg_verification; +extern struct tree_opt_pass pass_free_ddg_info; extern struct tree_opt_pass pass_iv_optimize; extern struct tree_opt_pass pass_tree_loop_done; extern struct tree_opt_pass pass_ch; --- gcc/passes.c (/gcc-local/trunk) (revision 30596) +++ gcc/passes.c (/gcc-local/export-ddg) (revision 30596) @@ -84,6 +84,7 @@ along with GCC; see the file COPYING3. #include "tree-dump.h" #include "df.h" #include "predict.h" +#include "tree-data-ref-export.h" #if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO) #include "dwarf2out.h" @@ -642,6 +643,7 @@ init_optimization_passes (void) pass_may_alias. */ NEXT_PASS (pass_complete_unroll); NEXT_PASS (pass_loop_prefetch); + NEXT_PASS (pass_gather_ddg_info); NEXT_PASS (pass_iv_optimize); NEXT_PASS (pass_tree_loop_done); } @@ -774,9 +776,11 @@ init_optimization_passes (void) } NEXT_PASS (pass_compute_alignments); NEXT_PASS (pass_duplicate_computed_gotos); + NEXT_PASS (pass_disable_ddg_verification); NEXT_PASS (pass_variable_tracking); NEXT_PASS (pass_free_cfg); NEXT_PASS (pass_machine_reorg); + NEXT_PASS (pass_free_ddg_info); NEXT_PASS (pass_cleanup_barriers); NEXT_PASS (pass_delay_slots); NEXT_PASS (pass_df_finish); @@ -970,6 +974,8 @@ execute_function_todo (void *data) verify_stmts (); if (flags & TODO_verify_loops) verify_loop_closed_ssa (); + if (flag_export_ddg && !(flags & TODO_no_verify_trees)) + verify_trees (); #endif cfun->last_verified = flags & TODO_verify_all;