This patch changes the functions called from ipa_opt_pass from being called
once per cgraph node to once per compilation. The problem is that many of
the passes that would fit into the category need to be called once per
compilation to generate the summary for everything. This is particularly
true for the functions that are going to serialize and deserialize the
information. With the exception of function bodies themselves, there will
only be one section in the .o file per type of ipa information and these
will in general (again with the exception of function bodies) only be
accessible on a per compilation unit basis.
This patch has been bootstrapped on x86-{64,32} but the regression tests are
still in the oven. I wanted to get this in the patch queue before diego
leaves on vacation.
kenny
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.