Update documentation of AArch64 options for GCC6 to be more accurate,
fix a few minor mistakes and remove some duplication. * doc/invoke.texi (AArch64 Options): Various updates. From-SVN: r236290
This commit is contained in:
parent
0bc8d0b3c1
commit
704b85c7d8
@ -1,3 +1,7 @@
|
|||||||
|
2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
|
||||||
|
|
||||||
|
* doc/invoke.texi (AArch64 Options): Various updates.
|
||||||
|
|
||||||
2016-05-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
|
2016-05-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* MAINTAINERS (Write After Approval): Add myself.
|
* MAINTAINERS (Write After Approval): Add myself.
|
||||||
|
@ -12872,9 +12872,9 @@ These options are defined for AArch64 implementations:
|
|||||||
@item -mabi=@var{name}
|
@item -mabi=@var{name}
|
||||||
@opindex mabi
|
@opindex mabi
|
||||||
Generate code for the specified data model. Permissible values
|
Generate code for the specified data model. Permissible values
|
||||||
are @samp{ilp32} for SysV-like data model where int, long int and pointer
|
are @samp{ilp32} for SysV-like data model where int, long int and pointers
|
||||||
are 32-bit, and @samp{lp64} for SysV-like data model where int is 32-bit,
|
are 32 bits, and @samp{lp64} for SysV-like data model where int is 32 bits,
|
||||||
but long int and pointer are 64-bit.
|
but long int and pointers are 64 bits.
|
||||||
|
|
||||||
The default depends on the specific target configuration. Note that
|
The default depends on the specific target configuration. Note that
|
||||||
the LP64 and ILP32 ABIs are not link-compatible; you must compile your
|
the LP64 and ILP32 ABIs are not link-compatible; you must compile your
|
||||||
@ -12899,25 +12899,24 @@ Generate little-endian code. This is the default when GCC is configured for an
|
|||||||
@item -mcmodel=tiny
|
@item -mcmodel=tiny
|
||||||
@opindex mcmodel=tiny
|
@opindex mcmodel=tiny
|
||||||
Generate code for the tiny code model. The program and its statically defined
|
Generate code for the tiny code model. The program and its statically defined
|
||||||
symbols must be within 1GB of each other. Pointers are 64 bits. Programs can
|
symbols must be within 1MB of each other. Programs can be statically or
|
||||||
be statically or dynamically linked. This model is not fully implemented and
|
dynamically linked.
|
||||||
mostly treated as @samp{small}.
|
|
||||||
|
|
||||||
@item -mcmodel=small
|
@item -mcmodel=small
|
||||||
@opindex mcmodel=small
|
@opindex mcmodel=small
|
||||||
Generate code for the small code model. The program and its statically defined
|
Generate code for the small code model. The program and its statically defined
|
||||||
symbols must be within 4GB of each other. Pointers are 64 bits. Programs can
|
symbols must be within 4GB of each other. Programs can be statically or
|
||||||
be statically or dynamically linked. This is the default code model.
|
dynamically linked. This is the default code model.
|
||||||
|
|
||||||
@item -mcmodel=large
|
@item -mcmodel=large
|
||||||
@opindex mcmodel=large
|
@opindex mcmodel=large
|
||||||
Generate code for the large code model. This makes no assumptions about
|
Generate code for the large code model. This makes no assumptions about
|
||||||
addresses and sizes of sections. Pointers are 64 bits. Programs can be
|
addresses and sizes of sections. Programs can be statically linked only.
|
||||||
statically linked only.
|
|
||||||
|
|
||||||
@item -mstrict-align
|
@item -mstrict-align
|
||||||
@opindex mstrict-align
|
@opindex mstrict-align
|
||||||
Do not assume that unaligned memory references are handled by the system.
|
Avoid generating memory accesses that may not be aligned on a natural object
|
||||||
|
boundary as described in the architecture specification.
|
||||||
|
|
||||||
@item -momit-leaf-frame-pointer
|
@item -momit-leaf-frame-pointer
|
||||||
@itemx -mno-omit-leaf-frame-pointer
|
@itemx -mno-omit-leaf-frame-pointer
|
||||||
@ -12939,7 +12938,7 @@ of TLS variables.
|
|||||||
@item -mtls-size=@var{size}
|
@item -mtls-size=@var{size}
|
||||||
@opindex mtls-size
|
@opindex mtls-size
|
||||||
Specify bit size of immediate TLS offsets. Valid values are 12, 24, 32, 48.
|
Specify bit size of immediate TLS offsets. Valid values are 12, 24, 32, 48.
|
||||||
This option depends on binutils higher than 2.25.
|
This option requires binutils 2.26 or newer.
|
||||||
|
|
||||||
@item -mfix-cortex-a53-835769
|
@item -mfix-cortex-a53-835769
|
||||||
@itemx -mno-fix-cortex-a53-835769
|
@itemx -mno-fix-cortex-a53-835769
|
||||||
@ -12959,12 +12958,13 @@ corresponding flag to the linker.
|
|||||||
|
|
||||||
@item -mlow-precision-recip-sqrt
|
@item -mlow-precision-recip-sqrt
|
||||||
@item -mno-low-precision-recip-sqrt
|
@item -mno-low-precision-recip-sqrt
|
||||||
@opindex -mlow-precision-recip-sqrt
|
@opindex mlow-precision-recip-sqrt
|
||||||
@opindex -mno-low-precision-recip-sqrt
|
@opindex mno-low-precision-recip-sqrt
|
||||||
When calculating the reciprocal square root approximation,
|
Enable or disable reciprocal square root approximation.
|
||||||
uses one less step than otherwise, thus reducing latency and precision.
|
This option only has an effect if @option{-ffast-math} or
|
||||||
This is only relevant if @option{-ffast-math} enables the reciprocal square root
|
@option{-funsafe-math-optimizations} is used as well. Enabling this reduces
|
||||||
approximation, which in turn depends on the target processor.
|
precision of reciprocal square root results to about 16 bits for
|
||||||
|
single precision and to 32 bits for double precision.
|
||||||
|
|
||||||
@item -march=@var{name}
|
@item -march=@var{name}
|
||||||
@opindex march
|
@opindex march
|
||||||
@ -13001,17 +13001,15 @@ Specify the name of the target processor for which GCC should tune the
|
|||||||
performance of the code. Permissible values for this option are:
|
performance of the code. Permissible values for this option are:
|
||||||
@samp{generic}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57},
|
@samp{generic}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57},
|
||||||
@samp{cortex-a72}, @samp{exynos-m1}, @samp{qdf24xx}, @samp{thunderx},
|
@samp{cortex-a72}, @samp{exynos-m1}, @samp{qdf24xx}, @samp{thunderx},
|
||||||
@samp{xgene1}.
|
@samp{xgene1}, @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
|
||||||
|
@samp{native}.
|
||||||
|
|
||||||
Additionally, this option can specify that GCC should tune the performance
|
The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}
|
||||||
of the code for a big.LITTLE system. Permissible values for this
|
specify that GCC should tune for a big.LITTLE system.
|
||||||
option are: @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}.
|
|
||||||
|
|
||||||
Additionally on native AArch64 GNU/Linux systems the value
|
Additionally on native AArch64 GNU/Linux systems the value
|
||||||
@samp{native} is available. This option causes the compiler to pick
|
@samp{native} tunes performance to the host system. This option has no effect
|
||||||
the architecture of and tune the performance of the code for the
|
if the compiler is unable to recognize the processor of the host system.
|
||||||
processor of the host system. This option has no effect if the
|
|
||||||
compiler is unable to recognize the architecture of the host system.
|
|
||||||
|
|
||||||
Where none of @option{-mtune=}, @option{-mcpu=} or @option{-march=}
|
Where none of @option{-mtune=}, @option{-mcpu=} or @option{-march=}
|
||||||
are specified, the code is tuned to perform well across a range
|
are specified, the code is tuned to perform well across a range
|
||||||
@ -13031,12 +13029,6 @@ documented in the sub-section on
|
|||||||
Feature Modifiers}. Where conflicting feature modifiers are
|
Feature Modifiers}. Where conflicting feature modifiers are
|
||||||
specified, the right-most feature is used.
|
specified, the right-most feature is used.
|
||||||
|
|
||||||
Additionally on native AArch64 GNU/Linux systems the value
|
|
||||||
@samp{native} is available. This option causes the compiler to tune
|
|
||||||
the performance of the code for the processor of the host system.
|
|
||||||
This option has no effect if the compiler is unable to recognize the
|
|
||||||
architecture of the host system.
|
|
||||||
|
|
||||||
GCC uses @var{name} to determine what kind of instructions it can emit when
|
GCC uses @var{name} to determine what kind of instructions it can emit when
|
||||||
generating assembly code (as if by @option{-march}) and to determine
|
generating assembly code (as if by @option{-march}) and to determine
|
||||||
the target processor for which to tune for performance (as if
|
the target processor for which to tune for performance (as if
|
||||||
@ -13054,11 +13046,11 @@ across releases.
|
|||||||
This option is only intended to be useful when developing GCC.
|
This option is only intended to be useful when developing GCC.
|
||||||
|
|
||||||
@item -mpc-relative-literal-loads
|
@item -mpc-relative-literal-loads
|
||||||
@opindex mpcrelativeliteralloads
|
@opindex mpc-relative-literal-loads
|
||||||
Enable PC relative literal loads. If this option is used, literal
|
Enable PC-relative literal loads. With this option literal pools are
|
||||||
pools are assumed to have a range of up to 1MiB and an appropriate
|
accessed using a single instruction and emitted after each function. This
|
||||||
instruction sequence is used. This option has no impact when used
|
limits the maximum size of functions to 1MB. This is enabled by default for
|
||||||
with @option{-mcmodel=tiny}.
|
@option{-mcmodel=tiny}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@ -13089,9 +13081,9 @@ Enable Large System Extension instructions. This is on by default for
|
|||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
That is, @option{crypto} implies @option{simd} implies @option{fp}.
|
Feature @option{crypto} implies @option{simd}, which implies @option{fp}.
|
||||||
Conversely, @option{nofp} (or equivalently, @option{-mgeneral-regs-only})
|
Conversely, @option{nofp} implies @option{nosimd}, which implies
|
||||||
implies @option{nosimd} implies @option{nocrypto}.
|
@option{nocrypto}.
|
||||||
|
|
||||||
@node Adapteva Epiphany Options
|
@node Adapteva Epiphany Options
|
||||||
@subsection Adapteva Epiphany Options
|
@subsection Adapteva Epiphany Options
|
||||||
|
Loading…
Reference in New Issue
Block a user