This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: New option to do fine grain control [on|off] of micro-arch specific features : -mtune-ctrl=....
- From: Xinliang David Li <davidxl at google dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jan Hubicka <hubicka at ucw dot cz>, Teresa Johnson <tejohnson at google dot com>
- Date: Sun, 4 Aug 2013 09:23:07 -0700
- Subject: Re: New option to do fine grain control [on|off] of micro-arch specific features : -mtune-ctrl=....
- References: <CAAkRFZLZh1q+p55O6kA3QSgyNERcPpAOW=tpWYye40Dzs+0KcA at mail dot gmail dot com> <f577b371-1d7e-4fd1-b26e-c8541aa54838 at email dot android dot com>
On Sun, Aug 4, 2013 at 4:40 AM, Richard Biener
<richard.guenther@gmail.com> wrote:
> 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?
>>
>
> 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?
>
This option is intended to be used by developers -- otherwise we will
have to document all possible feature knobs. I saw a couple of
existing options in i386.opt marked as 'Undocumented' -- is this mark
used for case like this? Since this option is for experimental
purpose, user certainly can shoot their foot with it :)
If there is support of target specific --params which takes strings as
args, it might be a better choice to use that.
thanks,
David
> Richard.
>>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.
>
>