Commit f1bd2543 by Jan Hubicka Committed by Jan Hubicka

* passes.c (init_optimization_passes): Reindent.

From-SVN: r121573
parent 1084e689
2007-02-04 Jan Hubicka <jh@suse.cz> 2007-02-04 Jan Hubicka <jh@suse.cz>
* passes.c (init_optimization_passes): Reindent.
2007-02-04 Jan Hubicka <jh@suse.cz>
Eric Botcazou <ebotcazou@libertysurf.fr> Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-optimize.c (has_abnormal_outgoing_edge_p): Move to tree-inline. * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to tree-inline.
......
...@@ -427,7 +427,6 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) ...@@ -427,7 +427,6 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
cgraph_expand_all_functions () cgraph_expand_all_functions ()
for each node N in the cgraph for each node N in the cgraph
cgraph_expand_function (N) cgraph_expand_function (N)
cgraph_lower_function (N) -> Now a NOP.
lang_hooks.callgraph.expand_function (DECL (N)) lang_hooks.callgraph.expand_function (DECL (N))
tree_rest_of_compilation (DECL (N)) -> all_passes tree_rest_of_compilation (DECL (N)) -> all_passes
*/ */
...@@ -439,28 +438,10 @@ init_optimization_passes (void) ...@@ -439,28 +438,10 @@ init_optimization_passes (void)
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS)) #define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS))
/* Interprocedural optimization passes. */
p = &all_ipa_passes;
NEXT_PASS (pass_ipa_function_and_variable_visibility);
NEXT_PASS (pass_ipa_early_inline);
NEXT_PASS (pass_early_local_passes);
NEXT_PASS (pass_ipa_increase_alignment);
NEXT_PASS (pass_ipa_cp);
NEXT_PASS (pass_ipa_inline);
NEXT_PASS (pass_ipa_reference);
NEXT_PASS (pass_ipa_pure_const);
NEXT_PASS (pass_ipa_type_escape);
NEXT_PASS (pass_ipa_pta);
*p = NULL;
p = &pass_ipa_early_inline.sub;
NEXT_PASS (pass_early_inline);
NEXT_PASS (pass_inline_parameters);
NEXT_PASS (pass_rebuild_cgraph_edges);
*p = NULL;
/* All passes needed to lower the function into shape optimizers can /* All passes needed to lower the function into shape optimizers can
operate on. */ operate on. These passes are always run first on the function, but
backend might produce already lowered functions that are not processed
by these passes. */
p = &all_lowering_passes; p = &all_lowering_passes;
NEXT_PASS (pass_remove_useless_stmts); NEXT_PASS (pass_remove_useless_stmts);
NEXT_PASS (pass_mudflap_1); NEXT_PASS (pass_mudflap_1);
...@@ -475,17 +456,28 @@ init_optimization_passes (void) ...@@ -475,17 +456,28 @@ init_optimization_passes (void)
NEXT_PASS (pass_inline_parameters); NEXT_PASS (pass_inline_parameters);
*p = NULL; *p = NULL;
p = &pass_early_local_passes.sub; /* Interprocedural optimization passes.
All these passes are ignored in -fno-unit-at-a-time
except for subpases of early_local_pases. */
p = &all_ipa_passes;
NEXT_PASS (pass_ipa_function_and_variable_visibility);
NEXT_PASS (pass_ipa_early_inline);
{
struct tree_opt_pass **p = &pass_ipa_early_inline.sub;
NEXT_PASS (pass_early_inline);
NEXT_PASS (pass_inline_parameters);
NEXT_PASS (pass_rebuild_cgraph_edges);
}
NEXT_PASS (pass_early_local_passes);
{
struct tree_opt_pass **p = &pass_early_local_passes.sub;
NEXT_PASS (pass_tree_profile); NEXT_PASS (pass_tree_profile);
NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_cleanup_cfg);
NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_init_datastructures);
NEXT_PASS (pass_expand_omp); NEXT_PASS (pass_expand_omp);
NEXT_PASS (pass_all_early_optimizations); NEXT_PASS (pass_all_early_optimizations);
NEXT_PASS (pass_rebuild_cgraph_edges); {
NEXT_PASS (pass_inline_parameters); struct tree_opt_pass **p = &pass_all_early_optimizations.sub;
*p = NULL;
p = &pass_all_early_optimizations.sub;
NEXT_PASS (pass_referenced_vars); NEXT_PASS (pass_referenced_vars);
NEXT_PASS (pass_reset_cc_flags); NEXT_PASS (pass_reset_cc_flags);
NEXT_PASS (pass_build_ssa); NEXT_PASS (pass_build_ssa);
...@@ -495,7 +487,6 @@ init_optimization_passes (void) ...@@ -495,7 +487,6 @@ init_optimization_passes (void)
NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_cleanup_cfg);
NEXT_PASS (pass_rename_ssa_copies); NEXT_PASS (pass_rename_ssa_copies);
NEXT_PASS (pass_ccp); NEXT_PASS (pass_ccp);
NEXT_PASS (pass_forwprop); NEXT_PASS (pass_forwprop);
NEXT_PASS (pass_sra); NEXT_PASS (pass_sra);
NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_copy_prop);
...@@ -503,22 +494,26 @@ init_optimization_passes (void) ...@@ -503,22 +494,26 @@ init_optimization_passes (void)
NEXT_PASS (pass_dce); NEXT_PASS (pass_dce);
NEXT_PASS (pass_tail_recursion); NEXT_PASS (pass_tail_recursion);
NEXT_PASS (pass_release_ssa_names); NEXT_PASS (pass_release_ssa_names);
}
NEXT_PASS (pass_rebuild_cgraph_edges);
NEXT_PASS (pass_inline_parameters);
}
NEXT_PASS (pass_ipa_increase_alignment);
NEXT_PASS (pass_ipa_cp);
NEXT_PASS (pass_ipa_inline);
NEXT_PASS (pass_ipa_reference);
NEXT_PASS (pass_ipa_pure_const);
NEXT_PASS (pass_ipa_type_escape);
NEXT_PASS (pass_ipa_pta);
*p = NULL; *p = NULL;
/* These passes are run after IPA passes on every function that is being output
to the assemlber file. */
p = &all_passes; p = &all_passes;
NEXT_PASS (pass_apply_inline); NEXT_PASS (pass_apply_inline);
NEXT_PASS (pass_all_optimizations); NEXT_PASS (pass_all_optimizations);
NEXT_PASS (pass_warn_function_noreturn); {
NEXT_PASS (pass_free_datastructures); struct tree_opt_pass **p = &pass_all_optimizations.sub;
NEXT_PASS (pass_mudflap_2);
NEXT_PASS (pass_free_cfg_annotations);
NEXT_PASS (pass_expand);
NEXT_PASS (pass_rest_of_compilation);
NEXT_PASS (pass_clean_state);
*p = NULL;
p = &pass_all_optimizations.sub;
NEXT_PASS (pass_create_structure_vars); NEXT_PASS (pass_create_structure_vars);
NEXT_PASS (pass_may_alias); NEXT_PASS (pass_may_alias);
NEXT_PASS (pass_return_slot); NEXT_PASS (pass_return_slot);
...@@ -584,6 +579,32 @@ init_optimization_passes (void) ...@@ -584,6 +579,32 @@ init_optimization_passes (void)
NEXT_PASS (pass_may_alias); NEXT_PASS (pass_may_alias);
NEXT_PASS (pass_sink_code); NEXT_PASS (pass_sink_code);
NEXT_PASS (pass_tree_loop); NEXT_PASS (pass_tree_loop);
{
struct tree_opt_pass **p = &pass_tree_loop.sub;
NEXT_PASS (pass_tree_loop_init);
NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_lim);
NEXT_PASS (pass_tree_unswitch);
NEXT_PASS (pass_scev_cprop);
NEXT_PASS (pass_empty_loop);
NEXT_PASS (pass_record_bounds);
NEXT_PASS (pass_linear_transform);
NEXT_PASS (pass_iv_canon);
NEXT_PASS (pass_if_conversion);
NEXT_PASS (pass_vectorize);
{
struct tree_opt_pass **p = &pass_vectorize.sub;
NEXT_PASS (pass_lower_vector_ssa);
NEXT_PASS (pass_dce_loop);
}
/* NEXT_PASS (pass_may_alias) cannot be done again because the
vectorizer creates alias relations that are not supported by
pass_may_alias. */
NEXT_PASS (pass_complete_unroll);
NEXT_PASS (pass_loop_prefetch);
NEXT_PASS (pass_iv_optimize);
NEXT_PASS (pass_tree_loop_done);
}
NEXT_PASS (pass_cse_reciprocals); NEXT_PASS (pass_cse_reciprocals);
NEXT_PASS (pass_reassoc); NEXT_PASS (pass_reassoc);
NEXT_PASS (pass_vrp); NEXT_PASS (pass_vrp);
...@@ -618,44 +639,15 @@ init_optimization_passes (void) ...@@ -618,44 +639,15 @@ init_optimization_passes (void)
NEXT_PASS (pass_nrv); NEXT_PASS (pass_nrv);
NEXT_PASS (pass_mark_used_blocks); NEXT_PASS (pass_mark_used_blocks);
NEXT_PASS (pass_cleanup_cfg_post_optimizing); NEXT_PASS (pass_cleanup_cfg_post_optimizing);
*p = NULL; }
NEXT_PASS (pass_warn_function_noreturn);
p = &pass_tree_loop.sub; NEXT_PASS (pass_free_datastructures);
NEXT_PASS (pass_tree_loop_init); NEXT_PASS (pass_mudflap_2);
NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_free_cfg_annotations);
NEXT_PASS (pass_lim); NEXT_PASS (pass_expand);
NEXT_PASS (pass_tree_unswitch); NEXT_PASS (pass_rest_of_compilation);
NEXT_PASS (pass_scev_cprop); {
NEXT_PASS (pass_empty_loop); struct tree_opt_pass **p = &pass_rest_of_compilation.sub;
NEXT_PASS (pass_record_bounds);
NEXT_PASS (pass_linear_transform);
NEXT_PASS (pass_iv_canon);
NEXT_PASS (pass_if_conversion);
NEXT_PASS (pass_vectorize);
/* NEXT_PASS (pass_may_alias) cannot be done again because the
vectorizer creates alias relations that are not supported by
pass_may_alias. */
NEXT_PASS (pass_complete_unroll);
NEXT_PASS (pass_loop_prefetch);
NEXT_PASS (pass_iv_optimize);
NEXT_PASS (pass_tree_loop_done);
*p = NULL;
p = &pass_vectorize.sub;
NEXT_PASS (pass_lower_vector_ssa);
NEXT_PASS (pass_dce_loop);
*p = NULL;
p = &pass_loop2.sub;
NEXT_PASS (pass_rtl_loop_init);
NEXT_PASS (pass_rtl_move_loop_invariants);
NEXT_PASS (pass_rtl_unswitch);
NEXT_PASS (pass_rtl_unroll_and_peel_loops);
NEXT_PASS (pass_rtl_doloop);
NEXT_PASS (pass_rtl_loop_done);
*p = NULL;
p = &pass_rest_of_compilation.sub;
NEXT_PASS (pass_init_function); NEXT_PASS (pass_init_function);
NEXT_PASS (pass_jump); NEXT_PASS (pass_jump);
NEXT_PASS (pass_insn_locators_initialize); NEXT_PASS (pass_insn_locators_initialize);
...@@ -675,6 +667,16 @@ init_optimization_passes (void) ...@@ -675,6 +667,16 @@ init_optimization_passes (void)
sooner, but we want the profile feedback to work more sooner, but we want the profile feedback to work more
efficiently. */ efficiently. */
NEXT_PASS (pass_loop2); NEXT_PASS (pass_loop2);
{
struct tree_opt_pass **p = &pass_loop2.sub;
NEXT_PASS (pass_rtl_loop_init);
NEXT_PASS (pass_rtl_move_loop_invariants);
NEXT_PASS (pass_rtl_unswitch);
NEXT_PASS (pass_rtl_unroll_and_peel_loops);
NEXT_PASS (pass_rtl_doloop);
NEXT_PASS (pass_rtl_loop_done);
*p = NULL;
}
NEXT_PASS (pass_web); NEXT_PASS (pass_web);
NEXT_PASS (pass_cse2); NEXT_PASS (pass_cse2);
NEXT_PASS (pass_rtl_fwprop_addr); NEXT_PASS (pass_rtl_fwprop_addr);
...@@ -693,9 +695,8 @@ init_optimization_passes (void) ...@@ -693,9 +695,8 @@ init_optimization_passes (void)
NEXT_PASS (pass_local_alloc); NEXT_PASS (pass_local_alloc);
NEXT_PASS (pass_global_alloc); NEXT_PASS (pass_global_alloc);
NEXT_PASS (pass_postreload); NEXT_PASS (pass_postreload);
*p = NULL; {
struct tree_opt_pass **p = &pass_postreload.sub;
p = &pass_postreload.sub;
NEXT_PASS (pass_postreload_cse); NEXT_PASS (pass_postreload_cse);
NEXT_PASS (pass_gcse2); NEXT_PASS (pass_gcse2);
NEXT_PASS (pass_flow2); NEXT_PASS (pass_flow2);
...@@ -722,6 +723,9 @@ init_optimization_passes (void) ...@@ -722,6 +723,9 @@ init_optimization_passes (void)
NEXT_PASS (pass_shorten_branches); NEXT_PASS (pass_shorten_branches);
NEXT_PASS (pass_set_nothrow_function_flags); NEXT_PASS (pass_set_nothrow_function_flags);
NEXT_PASS (pass_final); NEXT_PASS (pass_final);
}
}
NEXT_PASS (pass_clean_state);
*p = NULL; *p = NULL;
#undef NEXT_PASS #undef NEXT_PASS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment