passes.c (init_optimization_passes): Document sequencing of passes.

* passes.c (init_optimization_passes): Document
	sequencing of passes.

From-SVN: r107425
This commit is contained in:
Diego Novillo 2005-11-23 18:05:38 +00:00 committed by Diego Novillo
parent 4fbe09f9de
commit dd97d271a4
2 changed files with 26 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2005-11-23 Diego Novillo <dnovillo@redhat.com>
* passes.c (init_optimization_passes): Document
sequencing of passes.
2005-11-23 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/predicates.md (pcrel_address, extend_operator,

View File

@ -420,7 +420,25 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
}
/* Construct the pass tree. */
/* Construct the pass tree. The sequencing of passes is driven by
the cgraph routines:
cgraph_finalize_compilation_unit ()
for each node N in the cgraph
cgraph_analyze_function (N)
cgraph_lower_function (N) -> all_lowering_passes
If we are optimizing, cgraph_optimize is then invoked:
cgraph_optimize ()
ipa_passes () -> all_ipa_passes
cgraph_expand_all_functions ()
for each node N in the cgraph
cgraph_expand_function (N)
cgraph_lower_function (N) -> Now a NOP.
lang_hooks.callgraph.expand_function (DECL (N))
tree_rest_of_compilation (DECL (N)) -> all_passes
*/
void
init_optimization_passes (void)
@ -439,9 +457,8 @@ init_optimization_passes (void)
NEXT_PASS (pass_ipa_type_escape);
*p = NULL;
/* All passes needed to lower the function into shape optimizers can operate
on. These passes are performed before interprocedural passes, unlike rest
of local passes (all_passes). */
/* All passes needed to lower the function into shape optimizers can
operate on. */
p = &all_lowering_passes;
NEXT_PASS (pass_remove_useless_stmts);
NEXT_PASS (pass_mudflap_1);