From eaacbd7bbc2764d851e607f9ff32eb0ac1eeec8d Mon Sep 17 00:00:00 2001 From: Sandra Loosemore Date: Sun, 4 Jan 2015 18:12:10 -0500 Subject: [PATCH] invoke.texi ([-fsized-deallocation]): Copy-edit to fix verb tense, etc. 2015-01-04 Sandra Loosemore 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 --- gcc/ChangeLog | 44 +++++++++++ gcc/doc/invoke.texi | 182 ++++++++++++++++++++++---------------------- 2 files changed, 137 insertions(+), 89 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 533219414a0..7953aa1022b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,47 @@ +2015-01-04 Sandra Loosemore + + * 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 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]): diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 52cd0d84230..9ba62e57976 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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, -- 2.30.2