Xinliang David Li <davi...@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? >
The patch fails to add documentation. And I am nervous about testing coverage - is this considered a development option only or are random combinations expected to work in all situations? I expect not, thus this looks like a dangerous option? Richard. >thanks, > >David > >2013-08-03 Xinliang David Li <davi...@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.