diff options
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r-- | gcc/tree-optimize.c | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index 544d75daabe..b6a9b93ef28 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -61,8 +61,10 @@ gate_all_optimizations (void) && (!(errorcount || sorrycount) || gimple_in_ssa_p (cfun))); } -struct tree_opt_pass pass_all_optimizations = +struct gimple_opt_pass pass_all_optimizations = { + { + GIMPLE_PASS, NULL, /* name */ gate_all_optimizations, /* gate */ NULL, /* execute */ @@ -74,8 +76,8 @@ struct tree_opt_pass pass_all_optimizations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Gate: execute, or not, all of the non-trivial optimizations. */ @@ -87,8 +89,10 @@ gate_all_early_local_passes (void) return (!errorcount && !sorrycount); } -struct tree_opt_pass pass_early_local_passes = +struct simple_ipa_opt_pass pass_early_local_passes = { + { + SIMPLE_IPA_PASS, "early_local_cleanups", /* name */ gate_all_early_local_passes, /* gate */ NULL, /* execute */ @@ -100,8 +104,8 @@ struct tree_opt_pass pass_early_local_passes = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_remove_functions, /* todo_flags_finish */ - 0 /* letter */ + TODO_remove_functions /* todo_flags_finish */ + } }; static unsigned int @@ -122,8 +126,10 @@ gate_all_early_optimizations (void) && !(errorcount || sorrycount)); } -struct tree_opt_pass pass_all_early_optimizations = +struct gimple_opt_pass pass_all_early_optimizations = { + { + GIMPLE_PASS, "early_optimizations", /* name */ gate_all_early_optimizations, /* gate */ execute_early_local_optimizations, /* execute */ @@ -135,8 +141,8 @@ struct tree_opt_pass pass_all_early_optimizations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: cleanup the CFG just before expanding trees to RTL. @@ -151,8 +157,10 @@ execute_cleanup_cfg_pre_ipa (void) return 0; } -struct tree_opt_pass pass_cleanup_cfg = +struct gimple_opt_pass pass_cleanup_cfg = { + { + GIMPLE_PASS, "cleanup_cfg", /* name */ NULL, /* gate */ execute_cleanup_cfg_pre_ipa, /* execute */ @@ -164,8 +172,8 @@ struct tree_opt_pass pass_cleanup_cfg = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -184,8 +192,10 @@ execute_cleanup_cfg_post_optimizing (void) return 0; } -struct tree_opt_pass pass_cleanup_cfg_post_optimizing = +struct gimple_opt_pass pass_cleanup_cfg_post_optimizing = { + { + GIMPLE_PASS, "final_cleanup", /* name */ NULL, /* gate */ execute_cleanup_cfg_post_optimizing, /* execute */ @@ -197,8 +207,8 @@ struct tree_opt_pass pass_cleanup_cfg_post_optimizing = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Pass: do the actions required to finish with tree-ssa optimization @@ -216,8 +226,10 @@ execute_free_datastructures (void) return 0; } -struct tree_opt_pass pass_free_datastructures = +struct gimple_opt_pass pass_free_datastructures = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_free_datastructures, /* execute */ @@ -229,8 +241,8 @@ struct tree_opt_pass pass_free_datastructures = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: free cfg annotations. */ @@ -243,8 +255,10 @@ execute_free_cfg_annotations (void) return 0; } -struct tree_opt_pass pass_free_cfg_annotations = +struct gimple_opt_pass pass_free_cfg_annotations = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_free_cfg_annotations, /* execute */ @@ -256,8 +270,8 @@ struct tree_opt_pass pass_free_cfg_annotations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: fixup_cfg. IPA passes, compilation of earlier functions or inlining @@ -330,8 +344,10 @@ gate_init_datastructures (void) return (optimize >= 1); } -struct tree_opt_pass pass_init_datastructures = +struct gimple_opt_pass pass_init_datastructures = { + { + GIMPLE_PASS, NULL, /* name */ gate_init_datastructures, /* gate */ execute_init_datastructures, /* execute */ @@ -343,8 +359,8 @@ struct tree_opt_pass pass_init_datastructures = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; void @@ -358,7 +374,7 @@ tree_lowering_passes (tree fn) bitmap_obstack_initialize (NULL); execute_pass_list (all_lowering_passes); if (optimize && cgraph_global_info_ready) - execute_pass_list (pass_early_local_passes.sub); + execute_pass_list (pass_early_local_passes.pass.sub); free_dominance_info (CDI_POST_DOMINATORS); free_dominance_info (CDI_DOMINATORS); compact_blocks (); |