invoke.texi ([-fsized-deallocation]): Copy-edit to fix verb tense, etc.

2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
	verb tense, etc.
	([-fvtable-verify], [-fvtv-debug]): Likewise.
	([-Wabi]): Likewise.
	([-fmessage-length]): Likewise.
	([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
	([-Wno-discarded-qualifiers]): Likewise.
	([-Wnodiscarded-array-qualifiers]): Likewise.
	([-Wno-virtual-move-assign]): Likewise.
	([-fsanitize=address], [-fsanitize=thread]): Likewise.
	([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
	([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
	([-fsanitize-undefined-trap-on-error]): Likewise.
	([-floop-interchange]): Likewise.
	([-ftree-coalesce-inlined-vars]): Likewise.
	([-fvect-cost-model]): Likewise.
	([-flto]): Likewise.
	([--param]): Likewise.
	(Spec Files): Likewise.
	([-mstrict-align]): Likewise.
	([-mfix-cortex-a53-835769]): Likewise.
	([-march], [-mtune]): Likewise.
	([-mpic-register]): Likewise.
	([-munaligned-access]): Likewise.
	([-msp8]): Likewise.
	(EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
	(AVR Built-in Macros): Likewise.
	([-mpreferred-stack-boundary]): Likewise.
	([-mtune-crtl]): Likewise.
	([-mashf]): Likewise.
	([-mmcu=]): Likewise.
	([-minrt]): Likewise.
	([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
	([-mupper-regs]): Likewise.
	([-matomic-model]): Likewise.
	([-mdiv]): Likewise.
	([-mzdcbranch]): Likewise.
	([-mdisable-callt]): Likewise.
	([-msoft-float]): Likewise.
	([-m8byte-align]): Likewise.
	([-fstack-reuse]): Likewise.

From-SVN: r219176
This commit is contained in:
Sandra Loosemore 2015-01-04 18:12:10 -05:00 committed by Sandra Loosemore
parent 1a78ef4c0e
commit eaacbd7bbc
2 changed files with 137 additions and 89 deletions

View File

@ -1,3 +1,47 @@
2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
verb tense, etc.
([-fvtable-verify], [-fvtv-debug]): Likewise.
([-Wabi]): Likewise.
([-fmessage-length]): Likewise.
([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
([-Wno-discarded-qualifiers]): Likewise.
([-Wnodiscarded-array-qualifiers]): Likewise.
([-Wno-virtual-move-assign]): Likewise.
([-fsanitize=address], [-fsanitize=thread]): Likewise.
([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
([-fsanitize-undefined-trap-on-error]): Likewise.
([-floop-interchange]): Likewise.
([-ftree-coalesce-inlined-vars]): Likewise.
([-fvect-cost-model]): Likewise.
([-flto]): Likewise.
([--param]): Likewise.
(Spec Files): Likewise.
([-mstrict-align]): Likewise.
([-mfix-cortex-a53-835769]): Likewise.
([-march], [-mtune]): Likewise.
([-mpic-register]): Likewise.
([-munaligned-access]): Likewise.
([-msp8]): Likewise.
(EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
(AVR Built-in Macros): Likewise.
([-mpreferred-stack-boundary]): Likewise.
([-mtune-crtl]): Likewise.
([-mashf]): Likewise.
([-mmcu=]): Likewise.
([-minrt]): Likewise.
([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
([-mupper-regs]): Likewise.
([-matomic-model]): Likewise.
([-mdiv]): Likewise.
([-mzdcbranch]): Likewise.
([-mdisable-callt]): Likewise.
([-msoft-float]): Likewise.
([-m8byte-align]): Likewise.
([-fstack-reuse]): Likewise.
2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):

View File

@ -2318,8 +2318,8 @@ void operator delete[] (void *, std::size_t) noexcept;
as introduced in C++14. This is useful for user-defined replacement
deallocation functions that, for example, use the size of the object
to make deallocation faster. Enabled by default under
@samp{-std=c++14} and above. The flag @option{-Wsized-deallocation} will
warn about places that might want to add a definition.
@samp{-std=c++14} and above. The flag @option{-Wsized-deallocation}
warns about places that might want to add a definition.
@item -fstats
@opindex fstats
@ -2451,14 +2451,14 @@ shared libraries have been loaded and initialized.
libraries have been loaded and initialized.
If this option appears multiple times in the compiler line, with different
values specified, 'none' will take highest priority over both 'std' and
'preinit'; 'preinit' will take priority over 'std'.
values specified, 'none' takes highest priority over both 'std' and
'preinit'; 'preinit' takes priority over 'std'.
@item -fvtv-debug
@opindex fvtv-debug
Causes debug versions of the runtime functions for the vtable verification
feature to be called. This assumes the @option{-fvtable-verify=std} or
@option{-fvtable-verify=preinit} has been used. This flag will also cause the
@option{-fvtable-verify=preinit} has been used. This flag also causes the
compiler to keep track of which vtable pointers it found for each class, and
record that information in the file ``vtv_set_ptr_data.log'', in the dump
file directory on the user's machine.
@ -2571,7 +2571,7 @@ These issues were corrected in @option{-fabi-version=6}.
@item
Lambdas in default argument scope were mangled incorrectly, and the
ABI changed the mangling of nullptr_t.
ABI changed the mangling of @code{nullptr_t}.
These issues were corrected in @option{-fabi-version=7}.
@ -3100,8 +3100,8 @@ honor these options.
@item -fmessage-length=@var{n}
@opindex fmessage-length
Try to format error messages so that they fit on lines of about
@var{n} characters. If @var{n} is zero, then no line-wrapping will be
done; each error message will appear on a single line. This is the
@var{n} characters. If @var{n} is zero, then no line-wrapping is
done; each error message appears on a single line. This is the
default for all front ends.
@item -fdiagnostics-show-location=once
@ -4261,7 +4261,8 @@ appropriate may not be detected.
@opindex Wno-suggest-final-types
@opindex Wsuggest-final-types
Warn about types with virtual methods where code quality would be improved
if the type was declared with the C++11 final specifier, or, if possible,
if the type were declared with the C++11 @code{final} specifier,
or, if possible,
declared in an anonymous namespace. This allows GCC to more aggressively
devirtualize the polymorphic calls. This warning is more effective with link
time optimization, where the information about the class hierarchy graph is
@ -4271,8 +4272,10 @@ more complete.
@opindex Wno-suggest-final-methods
@opindex Wsuggest-final-methods
Warn about virtual methods where code quality would be improved if the method
was declared with the C++11 final specifier, or, if possible, its type was
declared in an anonymous namespace or with the final specifier. This warning is
were declared with the C++11 @code{final} specifier,
or, if possible, its type were
declared in an anonymous namespace or with the @code{final} specifier.
This warning is
more effective with link time optimization, where the information about the
class hierarchy graph is more complete. It is recommended to first consider
suggestions of @option{-Wsuggest-final-types} and then rebuild with new
@ -4302,7 +4305,7 @@ This warning is enabled by @option{-Wall}.
@opindex Wno-discarded-qualifiers
@opindex Wdiscarded-qualifiers
Do not warn if type qualifiers on pointers are being discarded.
Typically, the compiler will warn if a @code{const char *} variable is
Typically, the compiler warns if a @code{const char *} variable is
passed to a function that takes a @code{char *} parameter. This option
can be used to suppress such a warning.
@ -4310,7 +4313,7 @@ can be used to suppress such a warning.
@opindex Wno-discarded-array-qualifiers
@opindex Wdiscarded-array-qualifiers
Do not warn if type qualifiers on arrays which are pointer targets
are being discarded. Typically, the compiler will warn if a
are being discarded. Typically, the compiler warns if a
@code{const int (*)[]} variable is passed to a function that
takes a @code{int (*)[]} parameter. This option can be used to
suppress such a warning.
@ -4957,7 +4960,7 @@ declaration. This warning is issued even if the definition itself
provides a prototype. Use this option to detect global functions
that do not have a matching prototype declaration in a header file.
This option is not valid for C++ because all function declarations
provide prototypes and a non-matching declaration will declare an
provide prototypes and a non-matching declaration declares an
overload rather than conflict with an earlier declaration.
Use @option{-Wmissing-declarations} to detect missing declarations in C++.
@ -5263,7 +5266,7 @@ scalar type.
@opindex Wno-virtual-move-assign
Suppress warnings about inheriting from a virtual base with a
non-trivial C++11 move assignment operator. This is dangerous because
if the virtual base is reachable along more than one path, it will be
if the virtual base is reachable along more than one path, it is
moved multiple times, which can mean both objects end up in the
moved-from state. If the move assignment operator is written to avoid
moving from a moved-from object, this warning can be disabled.
@ -5556,7 +5559,7 @@ many times it is given. This is mainly intended to be used with
@item -fsanitize=address
@opindex fsanitize=address
Enable AddressSanitizer, a fast memory error detector.
Memory access instructions will be instrumented to detect
Memory access instructions are instrumented to detect
out-of-bounds and use-after-free bugs.
See @uref{http://code.google.com/p/address-sanitizer/} for
more details. The run-time behavior can be influenced using the
@ -5572,7 +5575,7 @@ See @uref{http://code.google.com/p/address-sanitizer/wiki/AddressSanitizerForKer
@item -fsanitize=thread
@opindex fsanitize=thread
Enable ThreadSanitizer, a fast data race detector.
Memory access instructions will be instrumented to detect
Memory access instructions are instrumented to detect
data race bugs. See @uref{http://code.google.com/p/thread-sanitizer/} for more
details. The run-time behavior can be influenced using the @env{TSAN_OPTIONS}
environment variable; see
@ -5584,7 +5587,7 @@ supported options.
Enable LeakSanitizer, a memory leak detector.
This option only matters for linking of executables and if neither
@option{-fsanitize=address} nor @option{-fsanitize=thread} is used. In that
case it will link the executable against a library that overrides @code{malloc}
case the executable is linked against a library that overrides @code{malloc}
and other allocator functions. See
@uref{https://code.google.com/p/address-sanitizer/wiki/LeakSanitizer} for more
details. The run-time behavior can be influenced using the
@ -5593,7 +5596,7 @@ details. The run-time behavior can be influenced using the
@item -fsanitize=undefined
@opindex fsanitize=undefined
Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector.
Various computations will be instrumented to detect undefined behavior
Various computations are instrumented to detect undefined behavior
at runtime. Current suboptions are:
@table @gcctabopt
@ -5610,7 +5613,7 @@ Detect integer division by zero as well as @code{INT_MIN / -1} division.
@item -fsanitize=unreachable
@opindex fsanitize=unreachable
With this option, the compiler will turn the @code{__builtin_unreachable}
With this option, the compiler turns the @code{__builtin_unreachable}
call into a diagnostics message call instead. When reaching the
@code{__builtin_unreachable} call, the behavior is undefined.
@ -5724,13 +5727,13 @@ Kernel AddressSanitizer.
@opindex fno-sanitize-recover
@option{-fsanitize-recover=} controls error recovery mode for sanitizers
mentioned in comma-separated list of @var{opts}. Enabling this option
for a sanitizer component would cause it to attempt to continue
for a sanitizer component causes it to attempt to continue
running the program as if no error happened. This means multiple
runtime errors can be reported in a single program run, and the exit
code of the program may indicate success even when errors
have been reported. The @option{-fno-sanitize-recover=} can be used to alter
this behavior, only the first detected error will be reported
and program will exit after that with non-zero exit code.
this behavior: only the first detected error is reported
and program then exits with a non-zero exit code.
Currently this feature only works for @option{-fsanitize=undefined} (and its suboptions
except for @option{-fsanitize=unreachable} and @option{-fsanitize=return}),
@ -5747,8 +5750,8 @@ Similarly @option{-fno-sanitize-recover} is equivalent to
The @option{-fsanitize-undefined-trap-on-error} instructs the compiler to
report undefined behavior using @code{__builtin_trap ()} rather than
a @code{libubsan} library routine. The advantage of this is that the
@code{libubsan} library is not needed and will not be linked in, so this
is usable even for use in freestanding environments.
@code{libubsan} library is not needed and is not linked in, so this
is usable even in freestanding environments.
@item -fdump-final-insns@r{[}=@var{file}@r{]}
@opindex fdump-final-insns
@ -8343,6 +8346,7 @@ DO J = 1, M
ENDDO
ENDDO
@end smallexample
@noindent
loop interchange transforms the loop as if it were written:
@smallexample
DO I = 1, N
@ -8373,6 +8377,7 @@ DO I = 1, N
A(I) = A(I) + C
ENDDO
@end smallexample
@noindent
loop strip mining transforms the loop as if it were written:
@smallexample
DO II = 1, N, 51
@ -8400,6 +8405,7 @@ DO I = 1, N
ENDDO
ENDDO
@end smallexample
@noindent
loop blocking transforms the loop as if it were written:
@smallexample
DO II = 1, N, 51
@ -8577,10 +8583,10 @@ is enabled by default at @option{-O} and higher.
@item -ftree-coalesce-inlined-vars
@opindex ftree-coalesce-inlined-vars
Tell the copyrename pass (see @option{-ftree-copyrename}) to attempt to
combine small user-defined variables too, but only if they were inlined
combine small user-defined variables too, but only if they are inlined
from other functions. It is a more limited form of
@option{-ftree-coalesce-vars}. This may harm debug information of such
inlined variables, but it will keep variables of the inlined-into
inlined variables, but it keeps variables of the inlined-into
function apart from each other, such that they are more likely to
contain the expected values in a debugging session. This was the
default in GCC versions older than 4.7.
@ -8630,9 +8636,9 @@ Alter the cost model used for vectorization. The @var{model} argument
should be one of @code{unlimited}, @code{dynamic} or @code{cheap}.
With the @code{unlimited} model the vectorized code-path is assumed
to be profitable while with the @code{dynamic} model a runtime check
will guard the vectorized code-path to enable it only for iteration
guards the vectorized code-path to enable it only for iteration
counts that will likely execute faster than when executing the original
scalar loop. The @code{cheap} model will disable vectorization of
scalar loop. The @code{cheap} model disables vectorization of
loops where doing so would be cost prohibitive for example due to
required runtime checks for data dependence or alignment but otherwise
is equal to the @code{dynamic} model.
@ -9029,7 +9035,7 @@ optimizations you need to use the GCC driver to perform the link-step.
GCC then automatically performs link-time optimization if any of the
objects involved were compiled with the @option{-flto}. You generally
should specify the optimization options to be used for link-time
optimization though GCC will try to be clever at guessing an
optimization though GCC tries to be clever at guessing an
optimization level to use from the options used at compile-time
if you fail to specify one at link-time. You can always override
the automatic decision to do link-time optimization at link-time
@ -9082,9 +9088,9 @@ stage. Generally options specified at link-time override those
specified at compile-time.
If you do not specify an optimization level option @option{-O} at
link-time then GCC will compute one based on the optimization levels
link-time then GCC computes one based on the optimization levels
used when compiling the object files. The highest optimization
level will win here.
level wins here.
Currently, the following options and their setting are take from
the first object file that explicitely specified it:
@ -9168,7 +9174,7 @@ The current implementation of LTO makes no
attempt to generate bytecode that is portable between different
types of hosts. The bytecode files are versioned and there is a
strict version check, so bytecode files generated in one version of
GCC will not work with an older or newer version of GCC.
GCC do not work with an older or newer version of GCC.
Link-time optimization does not work well with generation of debugging
information. Combining @option{-flto} with
@ -10011,20 +10017,17 @@ the amount of inlining for code having a large abstraction penalty.
The default value is 10.
@item max-early-inliner-iterations
@itemx max-early-inliner-iterations
Limit of iterations of the early inliner. This basically bounds
the number of nested indirect calls the early inliner can resolve.
Deeper chains are still handled by late inlining.
@item comdat-sharing-probability
@itemx comdat-sharing-probability
Probability (in percent) that C++ inline function with comdat visibility
are shared across multiple compilation units. The default value is 20.
@item profile-func-internal-id
@itemx profile-func-internal-id
A parameter to control whether to use function internal id in profile
database lookup. If the value is 0, the compiler will use id that
database lookup. If the value is 0, the compiler uses an id that
is based on function assembler name and filename, which makes old profile
data more tolerant to source changes such as function reordering etc.
The default value is 0.
@ -10539,7 +10542,7 @@ pointer parameter.
The two Scalar Reduction of Aggregates passes (SRA and IPA-SRA) aim to
replace scalar parts of aggregates with uses of independent scalar
variables. These parameters control the maximum size, in storage units,
of aggregate which will be considered for replacement when compiling for
of aggregate which is considered for replacement when compiling for
speed
(@option{sra-max-scalarization-size-Ospeed}) or size
(@option{sra-max-scalarization-size-Osize}) respectively.
@ -10608,7 +10611,7 @@ score of the candidate.
@item ipa-max-aa-steps
During its analysis of function bodies, IPA-CP employs alias analysis
in order to track values pointed to by function parameters. In order
not spend too much time analyzing huge functions, it will give up and
not spend too much time analyzing huge functions, it gives up and
consider all memory clobbered after examining
@option{ipa-max-aa-steps} statements modifying memory.
@ -10666,7 +10669,7 @@ See @file{haifa-sched.c} in the GCC sources for more details.
The default choice depends on the target.
@item max-slsr-cand-scan
Set the maximum number of existing candidates that will be considered when
Set the maximum number of existing candidates that are considered when
seeking a basis for a new straight-line strength reduction candidate.
@item asan-globals
@ -11746,8 +11749,8 @@ for each matching switch, with the @code{%*} replaced by the part of
that switch matching the @code{*}.
If @code{%*} appears as the last part of a spec sequence then a space
will be added after the end of the last substitution. If there is more
text in the sequence however then a space will not be generated. This
is added after the end of the last substitution. If there is more
text in the sequence, however, then a space is not generated. This
allows the @code{%*} substitution to be used as part of a larger
string. For example, a spec string like this:
@ -11755,7 +11758,8 @@ string. For example, a spec string like this:
%@{mcu=*:--script=%*/memory.ld@}
@end smallexample
when matching an option like @code{-mcu=newchip} will produce:
@noindent
when matching an option like @code{-mcu=newchip} produces:
@smallexample
--script=newchip/memory.ld
@ -11989,7 +11993,7 @@ statically linked only.
@item -mstrict-align
@opindex mstrict-align
Do not assume that unaligned memory references will be handled by the system.
Do not assume that unaligned memory references are handled by the system.
@item -momit-leaf-frame-pointer
@itemx -mno-omit-leaf-frame-pointer
@ -12013,7 +12017,7 @@ of TLS variables.
@opindex mfix-cortex-a53-835769
@opindex mno-fix-cortex-a53-835769
Enable or disable the workaround for the ARM Cortex-A53 erratum number 835769.
This will involve inserting a NOP instruction between memory instructions and
This involves inserting a NOP instruction between memory instructions and
64-bit integer multiply-accumulate instructions.
@item -march=@var{name}
@ -12031,7 +12035,7 @@ GCC uses this name to determine what kind of instructions it can emit when
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
or @option{-mcpu} also being specified, the code is tuned to perform
well across a range of target processors implementing the target
architecture.
@ -12046,7 +12050,7 @@ 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
are specified, the code is tuned to perform well across a range
of target processors.
This option cannot be suffixed by feature modifiers.
@ -12559,7 +12563,7 @@ Expand @code{adddi3} and @code{subdi3} at rtl generation time into
@item -mindexed-loads
@opindex mindexed-loads
Enable the use of indexed loads. This can be problematic because some
optimizers will then assume the that indexed stores exist, which is not
optimizers then assume that indexed stores exist, which is not
the case.
@item -mlra
@ -13040,7 +13044,7 @@ before execution begins.
@item -mpic-register=@var{reg}
@opindex mpic-register
Specify the register to be used for PIC addressing.
For standard PIC base case, the default will be any suitable register
For standard PIC base case, the default is any suitable register
determined by compiler. For single PIC base case, the default is
@samp{R9} if target is EABI based or stack-checking is enabled,
otherwise the default is @samp{R10}.
@ -13157,13 +13161,13 @@ Enables (or disables) reading and writing of 16- and 32- bit values
from addresses that are not 16- or 32- bit aligned. By default
unaligned access is disabled for all pre-ARMv6 and all ARMv6-M
architectures, and enabled for all other architectures. If unaligned
access is not enabled then words in packed data structures will be
access is not enabled then words in packed data structures are
accessed a byte at a time.
The ARM attribute @code{Tag_CPU_unaligned_access} will be set in the
The ARM attribute @code{Tag_CPU_unaligned_access} is set in the
generated object file to either true or false, depending upon the
setting of this option. If unaligned access is enabled then the
preprocessor symbol @code{__ARM_FEATURE_UNALIGNED} will also be
preprocessor symbol @code{__ARM_FEATURE_UNALIGNED} is also
defined.
@item -mneon-for-64bits
@ -13276,7 +13280,7 @@ This option is used internally by the compiler to select and
build multilibs for architectures @code{avr2} and @code{avr25}.
These architectures mix devices with and without @code{SPH}.
For any setting other than @code{-mmcu=avr2} or @code{-mmcu=avr25}
the compiler driver will add or remove this option from the compiler
the compiler driver adds or removes this option from the compiler
proper's command line, because the compiler then knows if the device
or architecture has an 8-bit stack pointer and thus no @code{SPH}
register or not.
@ -13348,9 +13352,9 @@ generates @emph{stubs}. Stubs are jump pads sometimes also called
The stub contains a direct jump to the desired address.
@item
Linker relaxation must be turned on so that the linker will generate
the stubs correctly an all situaltion. See the compiler option
@code{-mrelax} and the linler option @code{--relax}.
Linker relaxation must be turned on so that the linker generates
the stubs correctly in all situations. See the compiler option
@code{-mrelax} and the linker option @code{--relax}.
There are corner cases where the linker is supposed to generate stubs
but aborts without relaxation and without a helpful error message.
@ -13514,7 +13518,7 @@ for @var{mcu}=@code{avr2}, @code{avr25}, @code{avr3},
@code{avr6}, @code{avrxmega2}, @code{avrxmega4}, @code{avrxmega5},
@code{avrxmega6}, @code{avrxmega7}, respectively.
If @var{mcu} specifies a device, this built-in macro is set
accordingly. For example, with @code{-mmcu=atmega8} the macro will be
accordingly. For example, with @code{-mmcu=atmega8} the macro is
defined to @code{4}.
@item __AVR_@var{Device}__
@ -13530,15 +13534,15 @@ the device name as from the AVR user manual. The difference between
@code{-mmcu=@var{device}} is that the latter is always lowercase.
If @var{device} is not a device but only a core architecture like
@code{avr51}, this macro will not be defined.
@code{avr51}, this macro is not defined.
@item __AVR_DEVICE_NAME__
Setting @code{-mmcu=@var{device}} defines this built-in macro to
the device's name. For example, with @code{-mmcu=atmega8} the macro
will be defined to @code{atmega8}.
is defined to @code{atmega8}.
If @var{device} is not a device but only a core architecture like
@code{avr51}, this macro will not be defined.
@code{avr51}, this macro is not defined.
@item __AVR_XMEGA__
The device / architecture belongs to the XMEGA family of devices.
@ -15844,11 +15848,11 @@ SSE extensions disabled, @option{-mpreferred-stack-boundary=3} can be
used to keep the stack boundary aligned to 8 byte boundary. Since
x86-64 ABI require 16 byte stack alignment, this is ABI incompatible and
intended to be used in controlled environment where stack space is
important limitation. This option will lead to wrong code when functions
important limitation. This option leads to wrong code when functions
compiled with 16 byte stack alignment (such as functions from a standard
library) are called with misaligned stack. In this case, SSE
instructions may lead to misaligned memory access traps. In addition,
variable arguments will be handled incorrectly for 16 byte aligned
variable arguments are handled incorrectly for 16 byte aligned
objects (including x87 long double and __int128), leading to wrong
results. You must build all modules with
@option{-mpreferred-stack-boundary=3}, including any libraries. This
@ -16025,8 +16029,8 @@ tuning features and default settings. The names can be used in
@opindex mtune-ctrl=@var{feature-list}
This option is used to do fine grain control of x86 code generation features.
@var{feature-list} is a comma separated list of @var{feature} names. See also
@option{-mdump-tune-features}. When specified, the @var{feature} will be turned
on if it is not preceded with @code{^}, otherwise, it will be turned off.
@option{-mdump-tune-features}. When specified, the @var{feature} is turned
on if it is not preceded with @samp{^}, otherwise, it is turned off.
@option{-mtune-ctrl=@var{feature-list}} is intended to be used by GCC
developers. Using it may lead to code paths not covered by testing and can
potentially result in compiler ICEs or runtime errors.
@ -16078,7 +16082,7 @@ This option enables generation of @code{SAHF} instructions in 64-bit code.
Early Intel Pentium 4 CPUs with Intel 64 support,
prior to the introduction of Pentium 4 G1 step in December 2005,
lacked the @code{LAHF} and @code{SAHF} instructions
which were supported by AMD64.
which are supported by AMD64.
These are load and store instructions, respectively, for certain status flags.
In 64-bit mode, the @code{SAHF} instruction is used to optimize @code{fmod},
@code{drem}, and @code{remainder} built-in functions;
@ -18943,20 +18947,20 @@ testsuite and/or aesthetic purposes.
@opindex mmcu=
Select the MCU to target. This is used to create a C preprocessor
symbol based upon the MCU name, converted to upper case and pre- and
post- fixed with @code{__}. This in turn will be used by the
@code{msp430.h} header file to select an MCU specific supplimentary
post-fixed with @samp{__}. This in turn is used by the
@code{msp430.h} header file to select an MCU-specific supplementary
header file.
The option also sets the ISA to use. If the MCU name is one that is
known to only support the 430 ISA then that is selected, otherwise the
430X ISA is selected. A generic MCU name of @code{msp430} can also be
used to select the 430 ISA. Similarly the generic @code{msp430x} MCU
name will select the 430X ISA.
name selects the 430X ISA.
In addition an MCU specific linker script will be added to the linker
In addition an MCU-specific linker script is added to the linker
command line. The script's name is the name of the MCU with
@code{.ld} appended. Thus specifying @option{-mmcu=xxx} on the gcc
command line will define the C preprocessor symbol @code{__XXX__} and
@file{.ld} appended. Thus specifying @option{-mmcu=xxx} on the @command{gcc}
command line defines the C preprocessor symbol @code{__XXX__} and
cause the linker to search for a script called @file{xxx.ld}.
This option is also passed on to the assembler.
@ -19012,7 +19016,7 @@ them safe to use inside interrupt handlers as well as in normal code.
@opindex minrt
Enable the use of a minimum runtime environment - no static
initializers or constructors. This is intended for memory-constrained
devices. The compiler will include special symbols in some objects
devices. The compiler includes special symbols in some objects
that tell the linker and runtime which code fragments are required.
@end table
@ -19764,7 +19768,7 @@ enhancements.
When @option{-maltivec} is used, rather than @option{-maltivec=le} or
@option{-maltivec=be}, the element order for Altivec intrinsics such
as @code{vec_splat}, @code{vec_extract}, and @code{vec_insert} will
as @code{vec_splat}, @code{vec_extract}, and @code{vec_insert}
match array element order corresponding to the endianness of the
target. That is, element zero identifies the leftmost element in a
vector register when targeting a big-endian platform, and identifies
@ -19779,7 +19783,7 @@ the default when targeting a big-endian platform.
The element order is used to interpret element numbers in Altivec
intrinsics such as @code{vec_splat}, @code{vec_extract}, and
@code{vec_insert}. By default, these will match array element order
@code{vec_insert}. By default, these match array element order
corresponding to the endianness for the target.
@item -maltivec=le
@ -19791,7 +19795,7 @@ currently ignored when targeting a big-endian platform.
The element order is used to interpret element numbers in Altivec
intrinsics such as @code{vec_splat}, @code{vec_extract}, and
@code{vec_insert}. By default, these will match array element order
@code{vec_insert}. By default, these match array element order
corresponding to the endianness for the target.
@item -mvrsave
@ -19940,7 +19944,7 @@ Generate code that uses (does not use) the scalar
instructions that target all 64 registers in the vector/scalar
floating point register set, depending on the model of the machine.
If the @option{-mno-upper-regs} option was used, it will turn off both
If the @option{-mno-upper-regs} option is used, it turns off both
@option{-mupper-regs-sf} and @option{-mupper-regs-df} options.
@item -mfloat-gprs=@var{yes/single/double/no}
@ -21420,7 +21424,7 @@ built-in functions. The generated atomic sequences require additional support
from the interrupt/exception handling code of the system and are only suitable
for SH3* and SH4* single-core systems. This option is enabled by default when
the target is @code{sh*-*-linux*} and SH3* or SH4*. When the target is SH4A,
this option will also partially utilize the hardware atomic instructions
this option also partially utilizes the hardware atomic instructions
@code{movli.l} and @code{movco.l} to create more efficient code, unless
@samp{strict} is specified.
@ -21445,7 +21449,7 @@ Generate hardware atomic sequences using the @code{movli.l} and @code{movco.l}
instructions only. This is only available on SH4A and is suitable for
multi-core systems. Since the hardware instructions support only 32 bit atomic
variables access to 8 or 16 bit variables is emulated with 32 bit accesses.
Code compiled with this option will also be compatible with other software
Code compiled with this option is also compatible with other software
atomic model interrupt/exception handling systems if executed on an SH4A
system. Additional support from the interrupt/exception handling code of the
system is not required for this model.
@ -21458,8 +21462,8 @@ parameter is ignored. The specified value must be an integer multiple of four
and in the range 0-1020.
@item strict
This parameter prevents mixed usage of multiple atomic models, even though they
would be compatible, and will make the compiler generate atomic sequences of the
This parameter prevents mixed usage of multiple atomic models, even if they
are compatible, and makes the compiler generate atomic sequences of the
specified model only.
@end table
@ -21567,18 +21571,18 @@ SH2A and SHcompact.
Calls a library function that performs the operation in double precision
floating point. Division by zero causes a floating-point exception. This is
the default for SHcompact with FPU. Specifying this for targets that do not
have a double precision FPU will default to @code{call-div1}.
have a double precision FPU defaults to @code{call-div1}.
@item call-table
Calls a library function that uses a lookup table for small divisors and
the @code{div1} instruction with case distinction for larger divisors. Division
by zero calculates an unspecified result and does not trap. This is the default
for SH4. Specifying this for targets that do not have dynamic shift
instructions will default to @code{call-div1}.
instructions defaults to @code{call-div1}.
@end table
When a division strategy has not been specified the default strategy will be
When a division strategy has not been specified the default strategy is
selected based on the current target. For SH2A the default strategy is to
use the @code{divs} and @code{divu} instructions instead of library function
calls.
@ -21669,7 +21673,7 @@ is being compiled for.
@opindex mno-zdcbranch
Assume (do not assume) that zero displacement conditional branch instructions
@code{bt} and @code{bf} are fast. If @option{-mzdcbranch} is specified, the
compiler will try to prefer zero displacement branch code sequences. This is
compiler prefers zero displacement branch code sequences. This is
enabled by default when generating code for SH4 and SH4A. It can be explicitly
disabled by specifying @option{-mno-zdcbranch}.
@ -22456,7 +22460,7 @@ architecture.
This option is enabled by default when the RH850 ABI is
in use (see @option{-mrh850-abi}), and disabled by default when the
GCC ABI is in use. If @code{CALLT} instructions are being generated
then the C preprocessor symbol @code{__V850_CALLT__} will be defined.
then the C preprocessor symbol @code{__V850_CALLT__} is defined.
@item -mrelax
@itemx -mno-relax
@ -22479,8 +22483,8 @@ Disable (or re-enable) the generation of hardware floating point
instructions. This option is only significant when the target
architecture is @samp{V850E2V3} or higher. If hardware floating point
instructions are being generated then the C preprocessor symbol
@code{__FPU_OK__} will be defined, otherwise the symbol
@code{__NO_FPU__} will be defined.
@code{__FPU_OK__} is defined, otherwise the symbol
@code{__NO_FPU__} is defined.
@item -mloop
@opindex mloop
@ -22555,7 +22559,7 @@ Enables support for @code{doubles} and @code{long long} types to be
aligned on 8-byte boundaries. The default is to restrict the
alignment of all objects to at most 4-bytes. When
@option{-m8byte-align} is in effect the C preprocessor symbol
@code{__V850_8BYTE_ALIGN__} will be defined.
@code{__V850_8BYTE_ALIGN__} is defined.
@item -mbig-switch
@opindex mbig-switch
@ -22823,7 +22827,7 @@ temporary beyond the end point defined by the language. When a lifetime of
a variable ends, and if the variable lives in memory, the optimizing compiler
has the freedom to reuse its stack space with other temporaries or scoped
local variables whose live range does not overlap with it. Legacy code extending
local lifetime will likely to break with the stack reuse optimization.
local lifetime is likely to break with the stack reuse optimization.
For example,