This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Update the overall summary after edge_summary is updated
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Dehao Chen <dehao at google dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, GCC Patches <gcc-patches at gcc dot gnu dot org>, David Li <davidxl at google dot com>, Luis Lozano <llozano at google dot com>
- Date: Wed, 26 Mar 2014 01:47:01 +0100
- Subject: Re: [PATCH] Update the overall summary after edge_summary is updated
- Authentication-results: sourceware.org; auth=none
- References: <CAO2gOZW0X14Vt6t9aTeASRpHNHqjpA2BygU1z1saaN1LkjVFKA at mail dot gmail dot com> <20140323013237 dot GD14309 at kam dot mff dot cuni dot cz> <CAO2gOZWzaJPM-PY8n1Vfm=j0sGovhwVikhVfn1LwyvEeqxCwWQ at mail dot gmail dot com>
> On Sat, Mar 22, 2014 at 6:32 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> >> Hi,
> >>
> >> This patch updates node's inline summary after edge_summary is
> >> updated. Otherwise it could lead to incorrect inline summary.
> >>
> >> Bootstrapped and gcc regression test on-going.
> >>
> >> OK for trunk?
> >>
> >> Thanks,
> >> Dehao
> >>
> >> gcc/ChangeLog:
> >>
> >> 2014-03-21 Dehao Chen <dehao@google.com>
> >>
> >> *ipa-inline.c (early_inliner): updates overall summary.
> >
> > Looks resonable, do you have testcase where it would make a difference?
>
> Sorry, no small test case because this depends on autofdo profile.
>
> The problem actually does not manifest in trunk unless einline
> iterations is increased to >1
>
Hmm, OK, then you can avoid the update when we are running the last iteration.
OK with that change.
Honza
> Thanks,
> Dehao
>
> >
> > Honza
> >>
> >> Index: gcc/ipa-inline.c
> >> ===================================================================
> >> --- gcc/ipa-inline.c (revision 208755)
> >> +++ gcc/ipa-inline.c (working copy)
> >> @@ -2318,6 +2318,7 @@ early_inliner (void)
> >> edge->call_stmt, edge->callee->decl, false))
> >> edge->call_stmt_cannot_inline_p = true;
> >> }
> >> + inline_update_overall_summary (node);
> >> timevar_pop (TV_INTEGRATION);
> >> iterations++;
> >> inlined = false;