This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [GOOGLE] Increase max-early-inliner-iterations to 2 for profile-gen and use


> The difference in instrumentation runtime is huge -- as topn profiler
> is pretty expensive to run.
> 
> With FDO, it is probably better to make early inlining more aggressive
> in order to get more context sensitive profiling.

I agree with that, I just would like to understand where increasing the iterations
helps and if we can handle it without iterating (because Richi originally requested to
drop the iteration for correcness issues)
Do you have some examples?

Honza
> 
> David
> 
> On Sat, Oct 18, 2014 at 10:05 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
> >> Increasing the number of early inliner iterations from 1 to 2 enables more
> >> indirect calls to be promoted/inlined before instrumentation. This in turn
> >> reduces the instrumentation overhead, particularly for more expensive indirect
> >> call topn profiling.
> >
> > How much difference you get here? One posibility would be also to run specialized
> > ipa-cp before profile instrumentation.
> >
> > Honza
> >>
> >> Passes internal testing and regression tests. Ok for google/4_9?
> >>
> >> 2014-10-18  Teresa Johnson  <tejohnson@google.com>
> >>
> >>         Google ref b/17934523
> >>         * opts.c (finish_options): Increase max-early-inliner-iterations to 2
> >>         for profile-gen and profile-use builds.
> >>
> >> Index: opts.c
> >> ===================================================================
> >> --- opts.c      (revision 216286)
> >> +++ opts.c      (working copy)
> >> @@ -870,6 +869,14 @@ finish_options (struct gcc_options *opts, struct g
> >>          opts->x_param_values, opts_set->x_param_values);
> >>      }
> >>
> >> +  if (opts->x_profile_arc_flag
> >> +      || opts->x_flag_branch_probabilities)
> >> +    {
> >> +      maybe_set_param_value
> >> +       (PARAM_EARLY_INLINER_MAX_ITERATIONS, 2,
> >> +        opts->x_param_values, opts_set->x_param_values);
> >> +    }
> >> +
> >>    if (!(opts->x_flag_auto_profile
> >>          || (opts->x_profile_arc_flag || opts->x_flag_branch_probabilities)))
> >>      {
> >>
> >>
> >> --
> >> Teresa Johnson | Software Engineer | tejohnson@google.com | 408-460-2413


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]