This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix several time updating issues in the inliner analysis
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 25 Oct 2012 20:58:26 -0700
- Subject: Re: Fix several time updating issues in the inliner analysis
- References: <20121025171256.GA9487@kam.mff.cuni.cz>
On Thu, Oct 25, 2012 at 10:12 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> this patch adds several sanity checks that inline summaries are up to date and
> makes sense; it also fixes several minor updating bugs and two perhaps important
> integer overflows.
>
> Bootstrapped/regtested x86_64-linux, will commit it shortly.
>
> Honza
>
> * ipa-cp.c (ipcp_discover_new_direct_edges): If something was turned
> to direct call update the summary.
> * ipa-inline-transform.c (inline_call): Sanity check that summaries
> match the predicted effect; fix updating of summary after edge
> redirection.
> * ipa-inline-analysis.c (inline_node_duplication_hook): Do not try
> to update the summary and recompute it instead.
> (estimate_function_body_sizes): Fix self size estimation; double
> check that it agrees with inline_update_overall_summary.
> (estimate_edge_size_and_time): Handle devirtualizaiton costs.
> (estimate_edge_devirt_benefit): Update to be called from
> estimate_edge_size_and_time.
> (estimate_calls_size_and_time): Update.
> (estimate_node_size_and_time): Watch overflows.
> (inline_merge_summary): Likewise.
> * ipa-prob.c: Include ipa-inline.h
> (ipa_make_edge_direct_to_target): After redirection update the summary.
>
This caused:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55078
--
H.J.