Though not common, people can do this: 1. for profile gen: gcc -fprofile-arcs ...
2. for profile use gcc -fbranch-probabilities ... The new change won't help those. Your original place will be ok if you test profile_arcs and branch_probability flags. David On Wed, May 18, 2011 at 10:39 AM, Mark Heffernan <meh...@google.com> wrote: > On Tue, May 17, 2011 at 11:34 PM, Xinliang David Li <davi...@google.com> > wrote: >> >> To make consistent inline decisions between profile-gen and >> profile-use, probably better to check these two: >> >> flag_profile_arcs and flag_branch_probabilities. -fprofile-use >> enables profile-arcs, and value profiling is enabled only when >> edge/branch profiling is enabled (so no need to be checked). > > I changed the location where these parameters are set to someplace more > appropriate (to where the flags are set when profile gen/use is indicated). > Verified identical binaries are generated. > OK as updated? > > Mark > 2011-05-18 Mark Heffernan <meh...@google.com> > * opts.c (set_profile_parameters): New function. > Index: opts.c > =================================================================== > --- opts.c (revision 173666) > +++ opts.c (working copy) > @@ -1209,6 +1209,25 @@ print_specific_help (unsigned int includ > opts->x_help_columns, opts, lang_mask); > } > > + > +/* Set parameters to more appropriate values when profile information > + is available. */ > +static void > +set_profile_parameters (struct gcc_options *opts, > + struct gcc_options *opts_set) > +{ > + /* With accurate profile information, inlining is much more > + selective and makes better decisions, so increase the > + inlining function size limits. */ > + maybe_set_param_value > + (PARAM_MAX_INLINE_INSNS_SINGLE, 1000, > + opts->x_param_values, opts_set->x_param_values); > + maybe_set_param_value > + (PARAM_MAX_INLINE_INSNS_AUTO, 1000, > + opts->x_param_values, opts_set->x_param_values); > +} > + > + > /* Handle target- and language-independent options. Return zero to > generate an "unknown option" message. Only options that need > extra handling need to be listed here; if you simply want > @@ -1560,6 +1579,7 @@ common_handle_option (struct gcc_options > opts->x_flag_unswitch_loops = value; > if (!opts_set->x_flag_gcse_after_reload) > opts->x_flag_gcse_after_reload = value; > + set_profile_parameters (opts, opts_set); > break; > > case OPT_fprofile_generate_: > @@ -1580,6 +1600,7 @@ common_handle_option (struct gcc_options > is done. */ > if (!opts_set->x_flag_ipa_reference && in_lto_p) > opts->x_flag_ipa_reference = false; > + set_profile_parameters (opts, opts_set); > break; > > case OPT_fshow_column: >