diff options
author | Diego Novillo <dnovillo@redhat.com> | 2005-11-23 18:05:38 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2005-11-23 13:05:38 -0500 |
commit | dd97d271a414638726a6bbb905e5e6cf335e8ead (patch) | |
tree | 6a2a80d1d6e49de77fef8a2fdd63ede5d9d62159 | |
parent | 4fbe09f9dea90b631ddd4ead35a2d98714bdfc93 (diff) | |
download | gcc-dd97d271a414638726a6bbb905e5e6cf335e8ead.zip gcc-dd97d271a414638726a6bbb905e5e6cf335e8ead.tar.gz gcc-dd97d271a414638726a6bbb905e5e6cf335e8ead.tar.bz2 |
passes.c (init_optimization_passes): Document sequencing of passes.
* passes.c (init_optimization_passes): Document
sequencing of passes.
From-SVN: r107425
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/passes.c | 25 |
2 files changed, 26 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a754dc..a117bbc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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, diff --git a/gcc/passes.c b/gcc/passes.c index 0053f70..7add120 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -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); |