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: New option to do fine grain control [on|off] of micro-arch specific features : -mtune-ctrl=....


> Ping?
> 
> David
> 
> On Sat, Aug 3, 2013 at 12:36 PM, Xinliang David Li <davidxl@google.com> wrote:
> > Hi, GCC/i386 currently has about 73 boolean parameters/knobs (defined
> > in ix86_tune_features[], indexed by ix86_tune_indices) to perform
> > micro-arch specific performance tuning. However such settings are hard
> > coded (fixed with a given -mtune setting) and is very hard to do
> > performance experiment.
> >
> > The attached patch fixes the problem. The patch introduces a new
> > option -mtune-ctrl=. Its parameter is a comma separated list of
> > feature names to turn on associated features. Feature name can be
> > prefixed by ^ to do the opposite. For instance,
> >
> >   -mtune-ctrl=prologue_using_move,epilogue_using_move,^pad_returns
> >
> > tells the compiler to use move instructions in prologue/epilogue
> > (instead of push/pop), and *not* pad return instructions.
> >
> > To facilitate the change, the feature tuning enums defined in i386.h
> > are moved to a new file x86-tune.def and this file can be used to
> > generate both the enums and names of the features.
> >
> >
> > Ok for trunk?

Yes, this patch seems fine to me (as an undocumented option we should not
be obliged to fix any ices from non-sential combinations of flags and in
fact I do not really know of any).
I wonder if we can't feed initial_ix86_tune_features so we get rid of
two places that needs to be kept in sync when adding new knob?

Honza
> >
> >
> > thanks,
> >
> > David
> >
> > 2013-08-03  Xinliang David Li  <davidxl@google.com>
> >
> >         * config/i386/i386.opt: New option -mtune-ctrl=.
> >         * config/i386/x86-tune.def: New file.
> >         * config/i386/i386.h: include x86-tune.def.
> >         * config/i386/i386.c (ix86_option_override_internal):
> >         Parsing -mtune-ctrl= option and set tune features.


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