This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [GOOGLE] Increase max-early-inliner-iterations to 2 for profile-gen and use
- From: Xinliang David Li <davidxl at google dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Teresa Johnson <tejohnson at google dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 18 Oct 2014 14:51:58 -0700
- Subject: Re: [GOOGLE] Increase max-early-inliner-iterations to 2 for profile-gen and use
- Authentication-results: sourceware.org; auth=none
- References: <CAAe5K+V=F8SF0K0uFtu=f46TLzS-XLTn7vVVZvaqyi+GP05HfQ at mail dot gmail dot com> <20141018170537 dot GG11581 at atrey dot karlin dot mff dot cuni dot cz>
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.
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