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  <mli...@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)
>>
> 

Reply via email to