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: [PATCH] Print default options selection for -march,-mcpu and -mtune for aarch64 (PR driver/83193).


On 08/02/2018 11:39 AM, Richard Earnshaw (lists) wrote:
> On 18/07/18 16:48, Martin Liška wrote:
>> Hi.
>>
>> This is aarch64 fix for PR83193. It's about setting of default options
>> so that --help=target -Q prints proper numbers:
>>
>> Now this is seen on my cross-compiler:
>>
>> --- /home/marxin/Downloads/options-2-before.txt	2018-07-18 14:53:11.658146543 +0200
>> +++ /home/marxin/Downloads/options-2.txt	2018-07-18 14:52:30.113274284 +0200
>> @@ -1,10 +1,10 @@
>>  The following options are target specific:
>>    -mabi=ABI                   		lp64
>> -  -march=ARCH                 		
>> +  -march=                     		armv8-a
> 
> So we have
> 
>     -mabi=ABI                   		lp64
> 
> but
> 
>     -march=                     		armv8-a
>            ^^^^^ blank
> 
> Isn't that inconsistent?

It is probably, in this case I would remove 'ABI' from -mabi option. It's explained bellow
what are possible options:

  Known AArch64 ABIs (for use with the -mabi= option):
    ilp32 lp64

Similarly for:
  -moverride=STRING           Power users only! Override CPU optimization parameters.
  -msve-vector-bits=N         Set the number of bits in an SVE vector register to N.

It's more common to <var> notation, there are some samples from --help=common:

  -fmax-errors=<number>       Maximum number of errors to report.
  -fmessage-length=<number>   Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
  -fira-region=[one|all|mixed] Set regions for IRA.
  -fira-verbose=<number>      Control IRA's level of diagnostic messages.
  -flifetime-dse=<0,2>        This option lacks documentation.
  -fstack-limit-register=<register> Trap if the stack goes past <register>.
  -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.

Are you fine with the suggested approach?

Martin

> 
> R.
> 
>>    -mbig-endian                		[disabled]
>>    -mbionic                    		[disabled]
>>    -mcmodel=                   		small
>> -  -mcpu=CPU                   		
>> +  -mcpu=                      		generic
>>    -mfix-cortex-a53-835769     		[enabled]
>>    -mfix-cortex-a53-843419     		[enabled]
>>    -mgeneral-regs-only         		[disabled]
>> @@ -19,7 +19,7 @@
>>    -msve-vector-bits=N         		scalable
>>    -mtls-dialect=              		desc
>>    -mtls-size=                 		24
>> -  -mtune=CPU                  		
>> +  -mtune=                     		generic
>>    -muclibc                    		[disabled]
>>
>> May I please ask ARM folks to test the patch?
>> Thanks,
>> Martin
>>
>> gcc/ChangeLog:
>>
>> 2018-07-18  Martin Liska  <mliska@suse.cz>
>>
>>         PR driver/83193
>> 	* config/aarch64/aarch64.c (aarch64_override_options_internal):
>>         Set default values for x_aarch64_*_string strings.
>> 	* config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}==
>>         prefix.
>> ---
>>  gcc/config/aarch64/aarch64.c   | 7 +++++++
>>  gcc/config/aarch64/aarch64.opt | 6 +++---
>>  2 files changed, 10 insertions(+), 3 deletions(-)
>>
>>
>>
>> 0001-Print-default-options-selection-for-march-mcpu-and-m.patch
>>
>>
>> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
>> index 6fa03e4b091..d48e6278efa 100644
>> --- a/gcc/config/aarch64/aarch64.c
>> +++ b/gcc/config/aarch64/aarch64.c
>> @@ -10713,6 +10713,13 @@ aarch64_override_options_internal (struct gcc_options *opts)
>>        && opts->x_optimize >= aarch64_tune_params.prefetch->default_opt_level)
>>      opts->x_flag_prefetch_loop_arrays = 1;
>>  
>> +  if (opts->x_aarch64_arch_string == NULL)
>> +    opts->x_aarch64_arch_string = selected_arch->name;
>> +  if (opts->x_aarch64_cpu_string == NULL)
>> +    opts->x_aarch64_cpu_string = selected_cpu->name;
>> +  if (opts->x_aarch64_tune_string == NULL)
>> +    opts->x_aarch64_tune_string = selected_tune->name;
>> +
>>    aarch64_override_options_after_change_1 (opts);
>>  }
>>  
>> diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
>> index 1426b45ff0f..7f0b65de37b 100644
>> --- a/gcc/config/aarch64/aarch64.opt
>> +++ b/gcc/config/aarch64/aarch64.opt
>> @@ -117,15 +117,15 @@ Enum(aarch64_tls_size) String(48) Value(48)
>>  
>>  march=
>>  Target RejectNegative ToLower Joined Var(aarch64_arch_string)
>> --march=ARCH	Use features of architecture ARCH.
>> +Use features of architecture ARCH.
>>  
>>  mcpu=
>>  Target RejectNegative ToLower Joined Var(aarch64_cpu_string)
>> --mcpu=CPU	Use features of and optimize for CPU.
>> +Use features of and optimize for CPU.
>>  
>>  mtune=
>>  Target RejectNegative ToLower Joined Var(aarch64_tune_string)
>> --mtune=CPU	Optimize for CPU.
>> +Optimize for CPU.
>>  
>>  mabi=
>>  Target RejectNegative Joined Enum(aarch64_abi) Var(aarch64_abi) Init(AARCH64_ABI_DEFAULT)
>>
> 


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