summaryrefslogtreecommitdiff
path: root/gcc/tree-optimize.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r--gcc/tree-optimize.c66
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 ();