[AArch64 Documentation] Clarify meaning of -mcpu, -mtune, -march

Richard Earnshaw rearnsha@arm.com
Mon Jan 20 14:00:00 GMT 2014


On 20/01/14 11:39, James Greenhalgh wrote:
> 
> Hi,
> 
> These three options can be a pain to remember how they interact
> with one another, this patch clarifies the situation giving explicit
> documentation as to the expected behaviour where they are combined.
> 
> OK?
> 
> Thanks,
> James
> 
> ---
> gcc/
> 
> 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
> 
> 	* doc/invoke.texi (-march): Clarify documentation for AArch64.
> 	(-mtune): Likewise.
> 	(-mcpu): Likewise.
> 
> 
> 0001-AArch64-Documentation-Clarify-meaning-of-mcpu-mtune-.patch
> 
> 
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index 9e16b3b..00bcfa6 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -11379,46 +11379,55 @@ of TLS variables.
>  Specify the name of the target architecture, optionally suffixed by one or
>  more feature modifiers.  This option has the form
>  @option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
> -only value for @var{arch} is @samp{armv8-a}.  The possible values for
> -@var{feature} are documented in the sub-section below.
> +only permissible value for @var{arch} is @samp{armv8-a}.  The permissible
> +values for @var{feature} are documented in the sub-section below.
>  
>  Where conflicting feature modifiers are specified, the right-most feature is
>  used.
>  
>  GCC uses this name to determine what kind of instructions it can emit when
> -generating assembly code.  This option can be used in conjunction with or
> -instead of the @option{-mcpu=} option.
> +generating assembly code.
> +
> +Where @option{-march} is specified without either of @option{-mtune}
> +or @option{-mcpu} also being specified, the code will be tuned to perform
> +well across a range of target processors implementing the target
> +architecture.
> +
> +@item -mtune=@var{name}
> +@opindex mtune
> +Specify the name of the target processor for which GCC should tune the
> +performance of the code.  Permissible values for this option are:
> +@samp{generic}, @samp{cortex-a53}, @samp{cortex-a57}.
> +
> +Additionally, this option can specify that GCC should tune the performance
> +of the code for a big.LITTLE system.  The only permissible value is
> +@samp{cortex-a57.cortex-a53}.
> +
> +Where none of @option{-mtune=}, @option{-mcpu=} or @option{-march=}
> +are specified, the code will be tuned to perform well across a range
> +of target processors.
> +
> +This option cannot be suffixed by feature modifiers.
>  
>  @item -mcpu=@var{name}
>  @opindex mcpu
>  Specify the name of the target processor, optionally suffixed by one or more
>  feature modifiers.  This option has the form
>  @option{-mcpu=@var{cpu}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
> -possible values for @var{cpu} are @samp{generic}, @samp{cortex-a53},
> -@samp{cortex-a57}.  The possible values for @var{feature} are documented
> -in the sub-section below.
> +permissible values for @var{cpu} are the same as those available for
> +@option{-mtune}.
>  
> -Additionally, this option can specify that the target is a big.LITTLE system.
> -The only possible value is @samp{cortex-a57.cortex-a53}.
> +The permissible values for @var{feature} are documented in the sub-section below.
>  
>  Where conflicting feature modifiers are specified, the right-most feature is
>  used.
>  
>  GCC uses this name to determine what kind of instructions it can emit when
> -generating assembly code.
> -
> -@item -mtune=@var{name}
> -@opindex mtune
> -Specify the name of the processor to tune the performance for.  The code will
> -be tuned as if the target processor were of the type specified in this option,
> -but still using instructions compatible with the target processor specified
> -by a @option{-mcpu=} option.  Where no @option{-mtune=} option is
> -specified, the code will be tuned to perform well on the target processor
> -given by @option{-mcpu=} or @option{-march=}.  Where none of
> -@option{-mtune=}, @option{-mcpu=} or @option{-march=} are specified,
> -the code will be tuned to perform well across a range of target
> -processors.  This option cannot be suffixed by feature modifiers.
> -
> +generating assembly code (as if by @option{-march}) and to determine
> +the target processor for which to tune for performance (as if
> +by @option{-mtune}).  Where this option is used in conjunction
> +with @option{-march} or @option{-mtune}, those options override this
> +option.
>  @end table
>  

The override is partial in each case, so I suggest "..., those options
take precedence."

Otherwise, OK.

R.



More information about the Gcc-patches mailing list