aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorKenneth Zadeck <zadeck@naturalbridge.com>2008-05-15 22:58:03 +0000
committerKenneth Zadeck <zadeck@gcc.gnu.org>2008-05-15 22:58:03 +0000
commit1920df6c2253448d27f4e8e016fa504810857649 (patch)
tree2c6ab8e53e59d94a67a634900e3ca0f68350582a /gcc/passes.c
parentbe95b3555aa82872565a1e1ea85ff826a20c8e2e (diff)
downloadgcc-1920df6c2253448d27f4e8e016fa504810857649.zip
gcc-1920df6c2253448d27f4e8e016fa504810857649.tar.gz
gcc-1920df6c2253448d27f4e8e016fa504810857649.tar.bz2
cgraph.h (compute_inline_parameters): Made public.
2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com> * cgraph.h (compute_inline_parameters): Made public. * tree-pass.h (ipa_opt_pass): Removed function_generate_summary, variable_generate_summary, function_write_summary, variable_write_summary, variable_read_summary. Added generate_summary, write_summary, read_summary. * cgraphunit.c (cgraph_process_new_functions): Changed call from pass_ipa_inline.function_generate_summary, to compute_inline_parameters. * ipa-inline.c (compute_inline_parameters): Made public and added node parameter. (compute_inline_parameters_for_current): New function. (pass_inline_param): Now calls compute_inline_parameters_for_current. (inline_generate_summary): Removed parameter and made to loop over all cgraph nodes. (pass_ipa_inline): Updated for new IPA_PASS structure. * passes.c (execute_ipa_summary_passes): Now is called once per pass rather than once per node*pass. From-SVN: r135401
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index ede2cd9..fa74d0f 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1157,21 +1157,21 @@ add_ipa_transform_pass (void *data)
VEC_safe_push (ipa_opt_pass, heap, cfun->ipa_transforms_to_apply, ipa_pass);
}
-/* Execute IPA pass function summary generation. DATA is pointer to
- pass list to execute. */
+/* Execute summary generation for all of the passes in IPA_PASS. */
static void
-execute_ipa_summary_passes (void *data)
+execute_ipa_summary_passes (struct ipa_opt_pass *ipa_pass)
{
- struct ipa_opt_pass *ipa_pass = (struct ipa_opt_pass *)data;
- struct cgraph_node *node = cgraph_node (cfun->decl);
- while (ipa_pass && ipa_pass->pass.type == IPA_PASS)
+ while (ipa_pass)
{
struct opt_pass *pass = &ipa_pass->pass;
- if (!pass->gate || pass->gate ())
+
+ /* Execute all of the IPA_PASSes in the list. */
+ if (ipa_pass->pass.type == IPA_PASS
+ && (!pass->gate || pass->gate ()))
{
pass_init_dump_file (pass);
- ipa_pass->function_generate_summary (node);
+ ipa_pass->generate_summary ();
pass_fini_dump_file (pass);
}
ipa_pass = (struct ipa_opt_pass *)ipa_pass->pass.next;
@@ -1356,7 +1356,7 @@ execute_ipa_pass_list (struct opt_pass *pass)
{
if (!quiet_flag && !cfun)
fprintf (stderr, " <summary generate>");
- do_per_function_toporder (execute_ipa_summary_passes, pass);
+ execute_ipa_summary_passes ((struct ipa_opt_pass *) pass);
}
summaries_generated = true;
}