aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@redhat.com>2005-11-23 18:05:38 +0000
committerDiego Novillo <dnovillo@gcc.gnu.org>2005-11-23 13:05:38 -0500
commitdd97d271a414638726a6bbb905e5e6cf335e8ead (patch)
tree6a2a80d1d6e49de77fef8a2fdd63ede5d9d62159 /gcc
parent4fbe09f9dea90b631ddd4ead35a2d98714bdfc93 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/passes.c25
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);