Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 190733)
+++ gcc/doc/invoke.texi	(working copy)
@@ -1238,7 +1238,7 @@ Input files that don't require preproces
 @cindex output file option
 @item -o @var{file}
 @opindex o
-Place output in file @var{file}.  This applies regardless to whatever
+Place output in file @var{file}.  This applies to whatever
 sort of output is being produced, whether it be an executable file,
 an object file, an assembler file or preprocessed C code.
 
@@ -1334,7 +1334,7 @@ following the original option, such as: 
 @end table
 
 Thus for example to display all the undocumented target-specific
-switches supported by the compiler the following can be used:
+switches supported by the compiler, use:
 
 @smallexample
 --help=target,undocumented
@@ -1353,10 +1353,10 @@ The argument to @option{--help=} should 
 qualifiers.
 
 Combining several classes is possible, although this usually
-restricts the output by so much that there is nothing to display.  One
-case where it does work however is when one of the classes is
-@var{target}.  So for example to display all the target-specific
-optimization options the following can be used:
+restricts the output so much that there is nothing to display.  One
+case where it does work, however, is when one of the classes is
+@var{target}.  For example, to display all the target-specific
+optimization options, use:
 
 @smallexample
 --help=target,optimizers
@@ -1470,10 +1470,10 @@ with the name @command{gcc}).
 @findex g++
 @findex c++
 However, the use of @command{gcc} does not add the C++ library.
-@command{g++} is a program that calls GCC and treats @samp{.c},
+@command{g++} is a program that calls GCC and automatically specifies linking
+against the C++ library.  It treats @samp{.c},
 @samp{.h} and @samp{.i} files as C++ source files instead of C source
-files unless @option{-x} is used, and automatically specifies linking
-against the C++ library.  This program is also useful when
+files unless @option{-x} is used.  This program is also useful when
 precompiling a C header file with a @samp{.h} extension for use in C++
 compilations.  On many systems, @command{g++} is also installed with
 the name @command{c++}.
@@ -1554,9 +1554,9 @@ using GNU extensions that do not contrad
 incompatible with ISO C90, such as the @code{asm} and @code{typeof}
 keywords, but not other GNU extensions that do not have a meaning in
 ISO C90, such as omitting the middle term of a @code{?:}
-expression. On the other hand, by specifying a GNU dialect of a
-standard, all features the compiler support are enabled, even when
-those features change the meaning of the base standard and some
+expression. On the other hand, when a GNU dialect of a standard is
+specified, all features supported by the compiler are enabled, even when
+those features change the meaning of the base standard.  As a result, some
 strict-conforming programs may be rejected.  The particular standard
 is used by @option{-Wpedantic} to identify which features are GNU
 extensions given that version of the standard. For example
@@ -1720,7 +1720,7 @@ information about that function to warn 
 that function, or to generate more efficient code, even if the
 resulting code still contains calls to that function.  For example,
 warnings are given with @option{-Wformat} for bad calls to
-@code{printf}, when @code{printf} is built in, and @code{strlen} is
+@code{printf} when @code{printf} is built in and @code{strlen} is
 known not to modify global memory.
 
 With the @option{-fno-builtin-@var{function}} option
@@ -1741,7 +1741,7 @@ built-in functions selectively when usin
 @opindex fhosted
 @cindex hosted environment
 
-Assert that compilation takes place in a hosted environment.  This implies
+Assert that compilation targets a hosted environment.  This implies
 @option{-fbuiltin}.  A hosted environment is one in which the
 entire standard library is available, and in which @code{main} has a return
 type of @code{int}.  Examples are nearly everything except a kernel.
@@ -1751,7 +1751,7 @@ This is equivalent to @option{-fno-frees
 @opindex ffreestanding
 @cindex hosted environment
 
-Assert that compilation takes place in a freestanding environment.  This
+Assert that compilation targets a freestanding environment.  This
 implies @option{-fno-builtin}.  A freestanding environment
 is one in which the standard library may not exist, and program startup may
 not necessarily be at @code{main}.  The most obvious example is an OS kernel.
@@ -1890,7 +1890,7 @@ basic integer types such as @code{int} a
 @cindex C++ options, command-line
 @cindex options, C++
 This section describes the command-line options that are only meaningful
-for C++ programs; but you can also use most of the GNU compiler options
+for C++ programs.  You can also use most of the GNU compiler options
 regardless of what language your program is in.  For example, you
 might compile a file @code{firstClass.C} like this:
 
@@ -1909,14 +1909,15 @@ Here is a list of options that are @emph
 
 @item -fabi-version=@var{n}
 @opindex fabi-version
-Use version @var{n} of the C++ ABI@.  Version 2 is the version of the
-C++ ABI that first appeared in G++ 3.4.  Version 1 is the version of
-the C++ ABI that first appeared in G++ 3.2.  Version 0 will always be
-the version that conforms most closely to the C++ ABI specification.
-Therefore, the ABI obtained using version 0 will change as ABI bugs
-are fixed.
+Use version @var{n} of the C++ ABI@.  The default is version 2.
 
-The default is version 2.
+Version 0 refers to the version conforming most closely to
+the C++ ABI specification.  Therefore, the ABI obtained using version 0
+will change in different versions of G++ as ABI bugs are fixed.
+
+Version 1 is the version of the C++ ABI that first appeared in G++ 3.2.  
+
+Version 2 is the version of the C++ ABI that first appeared in G++ 3.4.  
 
 Version 3 corrects an error in mangling a constant address as a
 template argument.
@@ -2025,7 +2026,7 @@ a @i{for-init-statement} extends to the 
 as was the case in old versions of G++, and other (traditional)
 implementations of C++.
 
-The default if neither flag is given to follow the standard,
+If neither flag is given, the default is to follow the standard,
 but to allow and give a warning for old-style code that would
 otherwise be invalid, or have different behavior.
 
@@ -2512,7 +2513,7 @@ Warn about violations of the following s
 @itemize @bullet
 @item
 Item 11:  Define a copy constructor and an assignment operator for classes
-with dynamically allocated memory.
+with dynamically-allocated memory.
 
 @item
 Item 12:  Prefer initialization to assignment in constructors.
@@ -2548,11 +2549,11 @@ to filter out those warnings.
 @item -Wstrict-null-sentinel @r{(C++ and Objective-C++ only)}
 @opindex Wstrict-null-sentinel
 @opindex Wno-strict-null-sentinel
-Warn also about the use of an uncasted @code{NULL} as sentinel.  When
+Warn about the use of an uncasted @code{NULL} as sentinel.  When
 compiling only with GCC this is a valid sentinel, as @code{NULL} is defined
-to @code{__null}.  Although it is a null pointer constant not a null pointer,
-it is guaranteed to be of the same size as a pointer.  But this use is
-not portable across different compilers.
+to @code{__null}.  Although it is a null pointer constant rather than a
+null pointer, it is guaranteed to be of the same size as a pointer.
+But this use is not portable across different compilers.
 
 @item -Wno-non-template-friend @r{(C++ and Objective-C++ only)}
 @opindex Wno-non-template-friend
@@ -2651,7 +2652,7 @@ languages themselves.  @xref{Standards,,
 Supported by GCC}, for references.)
 
 This section describes the command-line options that are only meaningful
-for Objective-C and Objective-C++ programs, but you can also use most of
+for Objective-C and Objective-C++ programs.  You can also use most of
 the language-independent GNU compiler options.
 For example, you might compile a file @code{some_class.m} like this:
 
@@ -2898,7 +2899,7 @@ line.
 @item -fdiagnostics-show-location=once
 @opindex fdiagnostics-show-location
 Only meaningful in line-wrapping mode.  Instructs the diagnostic messages
-reporter to emit @emph{once} source location information; that is, in
+reporter to emit source location information @emph{once}; that is, in
 case the message is too long to fit on a single physical line and has to
 be wrapped, the source location won't be emitted (as prefix) again,
 over and over, in subsequent continuation lines.  This is the default
@@ -2969,10 +2970,10 @@ Make all warnings into errors.
 @opindex Werror=
 @opindex Wno-error=
 Make the specified warning into an error.  The specifier for a warning
-is appended, for example @option{-Werror=switch} turns the warnings
+is appended; for example @option{-Werror=switch} turns the warnings
 controlled by @option{-Wswitch} into errors.  This switch takes a
 negative form, to be used to negate @option{-Werror} for specific
-warnings, for example @option{-Wno-error=switch} makes
+warnings; for example @option{-Wno-error=switch} makes
 @option{-Wswitch} warnings not be errors, even when @option{-Werror}
 is in effect.
 
@@ -2995,12 +2996,12 @@ messages.
 
 @end table
 
-You can request many specific warnings with options beginning
+You can request many specific warnings with options beginning with
 @samp{-W}, for example @option{-Wimplicit} to request warnings on
 implicit declarations.  Each of these specific warning options also
 has a negative form beginning @samp{-Wno-} to turn off warnings; for
 example, @option{-Wno-implicit}.  This manual lists only one of the
-two forms, whichever is not the default.  For further,
+two forms, whichever is not the default.  For further
 language-specific options also refer to @ref{C++ Dialect Options} and
 @ref{Objective-C and Objective-C++ Dialect Options}.
 
@@ -3077,7 +3078,7 @@ Options} and @ref{Objective-C and Object
 -Warray-bounds @r{(only with} @option{-O2}@r{)}  @gol
 -Wc++11-compat  @gol
 -Wchar-subscripts  @gol
--Wenum-compare @r{(in C/Objc; this is on by default in C++)} @gol
+-Wenum-compare @r{(in C/ObjC; this is on by default in C++)} @gol
 -Wimplicit-int @r{(C and Objective-C only)} @gol
 -Wimplicit-function-declaration @r{(C and Objective-C only)} @gol
 -Wcomment  @gol
@@ -3159,7 +3160,7 @@ conditional expression.
 @samp{register}.
 
 @item
-(C++ only) A base class is not initialized in a derived class' copy
+(C++ only) A base class is not initialized in a derived class's copy
 constructor.
 
 @end itemize
@@ -3476,7 +3477,7 @@ This warning is enabled by @option{-Wall
 Warn about code that may have undefined semantics because of violations
 of sequence point rules in the C and C++ standards.
 
-The C and C++ standards defines the order in which expressions in a C/C++
+The C and C++ standards define the order in which expressions in a C/C++
 program are evaluated in terms of @dfn{sequence points}, which represent
 a partial ordering between the execution of parts of the program: those
 executed before the sequence point, and those executed after it.  These
@@ -3519,12 +3520,12 @@ This warning is enabled by @option{-Wall
 @item -Wreturn-type
 @opindex Wreturn-type
 @opindex Wno-return-type
-Warn whenever a function is defined with a return-type that defaults
+Warn whenever a function is defined with a return type that defaults
 to @code{int}.  Also warn about any @code{return} statement with no
-return-value in a function whose return-type is not @code{void}
+return value in a function whose return type is not @code{void}
 (falling off the end of the function body is considered returning
 without a value), and about a @code{return} statement with an
-expression in a function whose return-type is @code{void}.
+expression in a function whose return type is @code{void}.
 
 For C++, a function without return type always produces a diagnostic
 message, even when @option{-Wno-return-type} is specified.  The only
@@ -3878,7 +3879,7 @@ Warn about functions that might be candi
 @code{pure}, @code{const} or @code{noreturn}.  The compiler only warns for
 functions visible in other compilation units or (in the case of @code{pure} and
 @code{const}) if it cannot prove that the function returns normally. A function
-returns normally if it doesn't contain an infinite loop nor returns abnormally
+returns normally if it doesn't contain an infinite loop or return abnormally
 by throwing, calling @code{abort()} or trapping.  This analysis requires option
 @option{-fipa-pure-const}, which is enabled by default at @option{-O} and
 higher.  Higher optimization levels improve the accuracy of the analysis.
@@ -3978,7 +3979,7 @@ equivalent, and/or problematic construct
 @item
 Macro parameters that appear within string literals in the macro body.
 In traditional C macro replacement takes place within string literals,
-but does not in ISO C@.
+but in ISO C it does not.
 
 @item
 In traditional C, some preprocessor directives did not exist.
@@ -4155,10 +4156,11 @@ such assumptions.
 @item -Wno-pedantic-ms-format @r{(MinGW targets only)}
 @opindex Wno-pedantic-ms-format
 @opindex Wpedantic-ms-format
-Disables the warnings about non-ISO @code{printf} / @code{scanf} format
-width specifiers @code{I32}, @code{I64}, and @code{I} used on Windows targets
-depending on the MS runtime, when you are using the options @option{-Wformat}
-and @option{-Wpedantic} without gnu-extensions.
+When used in combination with @option{-Wformat}
+and @option{-pedantic} without GNU extensions, this option
+disables the warnings about non-ISO @code{printf} / @code{scanf} format
+width specifiers @code{I32}, @code{I64}, and @code{I} used on Windows targets,
+which depend on the MS runtime.
 
 @item -Wpointer-arith
 @opindex Wpointer-arith
@@ -4633,9 +4635,9 @@ Suppress warnings from applying the @sam
 type.  According to the 1998 ISO C++ standard, applying @samp{offsetof}
 to a non-POD type is undefined.  In existing C++ implementations,
 however, @samp{offsetof} typically gives meaningful results even when
-applied to certain kinds of non-POD types. (Such as a simple
+applied to certain kinds of non-POD types (such as a simple
 @samp{struct} that fails to be a POD type only by virtue of having a
-constructor.)  This flag is for users who are aware that they are
+constructor).  This flag is for users who are aware that they are
 writing nonportable code and who have deliberately chosen to ignore the
 warning about it.
 
@@ -5427,7 +5429,7 @@ Dump after combining stack adjustments.
 @opindex fdump-rtl-cse1
 @opindex fdump-rtl-cse2
 @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after
-the two common sub-expression elimination passes.
+the two common subexpression elimination passes.
 
 @itemx -fdump-rtl-dce
 @opindex fdump-rtl-dce
@@ -5735,7 +5737,7 @@ counters for each function compiled.
 @opindex fdump-tree
 Control the dumping at various stages of processing the intermediate
 language tree to a file.  The file name is generated by appending a
-switch specific suffix to the source file name, and the file is
+switch-specific suffix to the source file name, and the file is
 created in the same directory as the output file.  If the
 @samp{-@var{options}} form is used, @var{options} is a list of
 @samp{-} separated options which control the details of the dump.  Not
@@ -6111,7 +6113,7 @@ Print the mapping from multilib director
 that enable them.  The directory name is separated from the switches by
 @samp{;}, and each switch starts with an @samp{@@} instead of the
 @samp{-}, without spaces between multiple switches.  This is supposed to
-ease shell-processing.
+ease shell processing.
 
 @item -print-multi-os-directory
 @opindex print-multi-os-directory
@@ -6132,7 +6134,7 @@ Like @option{-print-file-name}, but sear
 Same as @option{-print-file-name=libgcc.a}.
 
 This is useful when you use @option{-nostdlib} or @option{-nodefaultlibs}
-but you do want to link with @file{libgcc.a}.  You can do
+but you do want to link with @file{libgcc.a}.  You can do:
 
 @smallexample
 gcc -nostdlib @var{files}@dots{} `gcc -print-libgcc-file-name`
@@ -6347,7 +6349,7 @@ optimizations designed to reduce code si
 @opindex Ofast
 Disregard strict standards compliance.  @option{-Ofast} enables all
 @option{-O3} optimizations.  It also enables optimizations that are not
-valid for all standard compliant programs.
+valid for all standard-compliant programs.
 It turns on @option{-ffast-math} and the Fortran-specific
 @option{-fno-protect-parens} and @option{-fstack-arrays}.
 
@@ -6621,7 +6623,7 @@ are initialized to zero into BSS@.  This
 code.
 
 This option turns off this behavior because some programs explicitly
-rely on variables going to the data section.  E.g., so that the
+rely on variables going to the data section---e.g., so that the
 resulting executable can find the beginning of that section and/or make
 assumptions based on that.
 
@@ -6655,7 +6657,7 @@ erroneously read data to propagate withi
 
 @item -fthread-jumps
 @opindex fthread-jumps
-Perform optimizations where we check to see if a jump branches to a
+Perform optimizations that check to see if a jump branches to a
 location where another comparison subsumed by the first is found.  If
 so, the first branch is redirected to either the destination of the
 second branch or a point immediately following it, depending on whether
@@ -6742,13 +6744,13 @@ Not enabled at any optimization level.
 @item -fgcse-after-reload
 @opindex fgcse-after-reload
 When @option{-fgcse-after-reload} is enabled, a redundant load elimination
-pass is performed after reload.  The purpose of this pass is to cleanup
+pass is performed after reload.  The purpose of this pass is to clean up
 redundant spilling.
 
 @item -funsafe-loop-optimizations
 @opindex funsafe-loop-optimizations
-If given, the loop optimizer assumes that loop indices do not
-overflow, and that the loops with nontrivial exit condition are not
+This option tells the loop optimizer to assume that loop indices do not
+overflow, and that loops with nontrivial exit condition are not
 infinite.  This enables a wider range of loop optimizations even if
 the loop optimizer itself cannot prove that these assumptions are valid.
 If you use @option{-Wunsafe-loop-optimizations}, the compiler warns you
@@ -6756,7 +6758,8 @@ if it finds this kind of loop.
 
 @item -fcrossjumping
 @opindex fcrossjumping
-Perform cross-jumping transformation.  This transformation unifies equivalent code and save code size.  The
+Perform cross-jumping transformation.
+This transformation unifies equivalent code and saves code size.  The
 resulting code may or may not perform better than without cross-jumping.
 
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@@ -6781,7 +6784,7 @@ Enabled by default at @option{-O} and hi
 @item -fif-conversion
 @opindex fif-conversion
 Attempt to transform conditional jumps into branch-less equivalents.  This
-include use of conditional moves, min, max, set flags and abs instructions, and
+includes use of conditional moves, min, max, set flags and abs instructions, and
 some tricks doable by standard arithmetics.  The use of conditional execution
 on chips where it is available is controlled by @code{if-conversion2}.
 
@@ -6951,13 +6954,13 @@ with @option{-fschedule-insns} or at @op
 
 @item -fsched-pressure
 @opindex fsched-pressure
-Enable register pressure sensitive insn scheduling before the register
+Enable register pressure sensitive insn scheduling before register
 allocation.  This only makes sense when scheduling before register
 allocation is enabled, i.e.@: with @option{-fschedule-insns} or at
 @option{-O2} or higher.  Usage of this option can improve the
 generated code and decrease its size by preventing register pressure
-increase above the number of available hard registers and as a
-consequence register spills in the register allocation.
+increase above the number of available hard registers and subsequent
+spills in register allocation.
 
 @item -fsched-spec-load
 @opindex fsched-spec-load
@@ -6996,9 +6999,9 @@ and only if @option{-fsched-stalled-insn
 
 @item -fsched2-use-superblocks
 @opindex fsched2-use-superblocks
-When scheduling after register allocation, do use superblock scheduling
-algorithm.  Superblock scheduling allows motion across basic block boundaries
-resulting on faster schedules.  This option is experimental, as not all machine
+When scheduling after register allocation, use superblock scheduling.
+This allows motion across basic block boundaries,
+resulting in faster schedules.  This option is experimental, as not all machine
 descriptions used by GCC model the CPU closely enough to avoid unreliable
 results from the algorithm.
 
@@ -7053,9 +7056,9 @@ at @option{-O2} or higher.
 
 @item -freschedule-modulo-scheduled-loops
 @opindex freschedule-modulo-scheduled-loops
-The modulo scheduling comes before the traditional scheduling.  If a loop
-is modulo scheduled you may want to prevent the later scheduling passes
-from changing its schedule; use this option to control that.
+Modulo scheduling is performed before traditional scheduling.  If a loop
+is modulo scheduled, later scheduling passes may change its schedule.  
+Use this option to control that behavior.
 
 @item -fselective-scheduling
 @opindex fselective-scheduling
@@ -7070,13 +7073,13 @@ scheduling runs instead of the second sc
 @item -fsel-sched-pipelining
 @opindex fsel-sched-pipelining
 Enable software pipelining of innermost loops during selective scheduling.
-This option has no effect until one of @option{-fselective-scheduling} or
+This option has no effect unless one of @option{-fselective-scheduling} or
 @option{-fselective-scheduling2} is turned on.
 
 @item -fsel-sched-pipelining-outer-loops
 @opindex fsel-sched-pipelining-outer-loops
 When pipelining loops during selective scheduling, also pipeline outer loops.
-This option has no effect until @option{-fsel-sched-pipelining} is turned on.
+This option has no effect unless @option{-fsel-sched-pipelining} is turned on.
 
 @item -fshrink-wrap
 @opindex fshrink-wrap
@@ -7163,7 +7166,7 @@ Enabled by default at @option{-O} and hi
 
 @item -fipa-reference
 @opindex fipa-reference
-Discover which static variables do not escape cannot escape the
+Discover which static variables do not escape the
 compilation unit.
 Enabled by default at @option{-O} and higher.
 
@@ -7240,7 +7243,7 @@ default at @option{-O} and higher.
 
 @item -ftree-builtin-call-dce
 @opindex ftree-builtin-call-dce
-Perform conditional dead code elimination (DCE) for calls to builtin functions
+Perform conditional dead code elimination (DCE) for calls to built-in functions
 that may set @code{errno} but are otherwise side-effect free.  This flag is
 enabled by default at @option{-O2} and higher if @option{-Os} is not also
 specified.
@@ -7583,7 +7586,7 @@ enabled.
 @opindex ftracer
 Perform tail duplication to enlarge superblock size.  This transformation
 simplifies the control flow of the function allowing other optimizations to do
-better job.
+a better job.
 
 @item -funroll-loops
 @opindex funroll-loops
@@ -7601,14 +7604,14 @@ the loop is entered.  This usually makes
 
 @item -fsplit-ivs-in-unroller
 @opindex fsplit-ivs-in-unroller
-Enables expressing of values of induction variables in later iterations
+Enables expression of values of induction variables in later iterations
 of the unrolled loop using the value in the first iteration.  This breaks
 long dependency chains, thus improving efficiency of the scheduling passes.
 
-Combination of @option{-fweb} and CSE is often sufficient to obtain the
-same effect.  However in cases the loop body is more complicated than
-a single basic block, this is not reliable.  It also does not work at all
-on some of the architectures due to restrictions in the CSE pass.
+A combination of @option{-fweb} and CSE is often sufficient to obtain the
+same effect.  However, that is not reliable in cases where the loop body
+is more complicated than a single basic block.  It also does not work at all
+on some architectures due to restrictions in the CSE pass.
 
 This optimization is enabled by default.
 
@@ -7700,7 +7703,7 @@ subsections @code{.text.hot} for most fr
 the linker so object file format must support named sections and linker must
 place them in a reasonable way.
 
-Also profile feedback must be available in to make this option effective.  See
+Also profile feedback must be available to make this option effective.  See
 @option{-fprofile-arcs} for details.
 
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@@ -8078,7 +8081,7 @@ You must prepend a @samp{+} to the comma
 for this to work.  This option likely only works if @env{MAKE} is
 GNU make.
 
-This option is disabled by default
+This option is disabled by default.
 
 @item -flto-partition=@var{alg}
 @opindex flto-partition
@@ -8156,7 +8159,7 @@ Enabled at levels @option{-O}, @option{-
 @item -fcprop-registers
 @opindex fcprop-registers
 After register allocation and post-register allocation instruction splitting,
-we perform a copy-propagation pass to try to reduce scheduling dependencies
+perform a copy-propagation pass to try to reduce scheduling dependencies
 and occasionally eliminate the copy.
 
 Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@@ -8451,8 +8454,8 @@ After running a program compiled with @o
 (@pxref{Debugging Options,, Options for Debugging Your Program or
 @command{gcc}}), you can compile it a second time using
 @option{-fbranch-probabilities}, to improve optimizations based on
-the number of times each branch was taken.  When the program
-compiled with @option{-fprofile-arcs} exits it saves arc execution
+the number of times each branch was taken.  When a program
+compiled with @option{-fprofile-arcs} exits, it saves arc execution
 counts to a file called @file{@var{sourcename}.gcda} for each source
 file.  The information in this data file is very dependent on the
 structure of the generated code, so you must use the same source code
@@ -8477,12 +8480,12 @@ Enabled with @option{-fprofile-generate}
 
 @item -fvpt
 @opindex fvpt
-If combined with @option{-fprofile-arcs}, it instructs the compiler to add
-a code to gather information about values of expressions.
+If combined with @option{-fprofile-arcs}, this option instructs the compiler
+to add code to gather information about values of expressions.
 
 With @option{-fbranch-probabilities}, it reads back the data gathered
 and actually performs the optimizations based on them.
-Currently the optimizations include specialization of division operation
+Currently the optimizations include specialization of division operations
 using the knowledge about the value of the denominator.
 
 @item -frename-registers
@@ -8500,7 +8503,7 @@ Enabled by default with @option{-funroll
 @opindex ftracer
 Perform tail duplication to enlarge superblock size.  This transformation
 simplifies the control flow of the function allowing other optimizations to do
-better job.
+a better job.
 
 Enabled with @option{-fprofile-use}.
 
@@ -8510,7 +8513,7 @@ Unroll loops whose number of iterations 
 upon entry to the loop.  @option{-funroll-loops} implies
 @option{-frerun-cse-after-loop}, @option{-fweb} and @option{-frename-registers}.
 It also turns on complete loop peeling (i.e.@: complete removal of loops with
-small constant number of iterations).  This option makes code larger, and may
+a small constant number of iterations).  This option makes code larger, and may
 or may not make it run faster.
 
 Enabled with @option{-fprofile-use}.
@@ -8578,7 +8581,7 @@ threading.
 @item -fbtr-bb-exclusive
 @opindex fbtr-bb-exclusive
 When performing branch target register load optimization, don't reuse
-branch target registers in within any basic block.
+branch target registers within any basic block.
 
 @item -fstack-protector
 @opindex fstack-protector
@@ -8636,7 +8639,7 @@ tied to the internals of the compiler, a
 without notice in future releases.
 
 In each case, the @var{value} is an integer.  The allowable choices for
-@var{name} are given in the following table:
+@var{name} are:
 
 @table @gcctabopt
 @item predictable-branch-outcome
@@ -8644,7 +8647,7 @@ When branch is predicted to be taken wit
 (in percent), then it is considered well predictable. The default is 10.
 
 @item max-crossjump-edges
-The maximum number of incoming edges to consider for crossjumping.
+The maximum number of incoming edges to consider for cross-jumping.
 The algorithm used by @option{-fcrossjumping} is @math{O(N^2)} in
 the number of edges incoming to each block.  Increasing values mean
 more aggressive optimization, making the compilation time increase with
@@ -8652,9 +8655,9 @@ probably small improvement in executable
 
 @item min-crossjump-insns
 The minimum number of instructions that must be matched at the end
-of two blocks before crossjumping is performed on them.  This
+of two blocks before cross-jumping is performed on them.  This
 value is ignored in the case where all instructions in the block being
-crossjumped from are matched.  The default value is 5.
+cross-jumped from are matched.  The default value is 5.
 
 @item max-grow-copy-bb-insns
 The maximum code size expansion factor when copying basic blocks
@@ -8739,13 +8742,14 @@ the original size.
 @item large-unit-insns
 The limit specifying large translation unit.  Growth caused by inlining of
 units larger than this limit is limited by @option{--param inline-unit-growth}.
-For small units this might be too tight (consider unit consisting of function A
-that is inline and B that just calls A three time.  If B is small relative to
+For small units this might be too tight.
+For example, consider a unit consisting of function A
+that is inline and B that just calls A three times.  If B is small relative to
 A, the growth of unit is 300\% and yet such inlining is very sane.  For very
-large units consisting of small inlineable functions however the overall unit
+large units consisting of small inlineable functions, however, the overall unit
 growth limit is needed to avoid exponential explosion of code size.  Thus for
 smaller units, the size is increased to @option{--param large-unit-insns}
-before applying @option{--param inline-unit-growth}.  The default is 10000
+before applying @option{--param inline-unit-growth}.  The default is 10000.
 
 @item inline-unit-growth
 Specifies maximal overall growth of the compilation unit caused by inlining.
@@ -8759,7 +8763,7 @@ unit growth to 1.1 times the original si
 
 @item large-stack-frame
 The limit specifying large stack frames.  While inlining the algorithm is trying
-to not grow past this limit too much.  Default value is 256 bytes.
+to not grow past this limit too much.  The default value is 256 bytes.
 
 @item large-stack-frame-growth
 Specifies maximal growth of large stack frames caused by inlining in percents.
@@ -8768,21 +8772,22 @@ the original size.
 
 @item max-inline-insns-recursive
 @itemx max-inline-insns-recursive-auto
-Specifies maximum number of instructions out-of-line copy of self recursive inline
+Specifies the maximum number of instructions an out-of-line copy of a
+self-recursive inline
 function can grow into by performing recursive inlining.
 
-For functions declared inline @option{--param max-inline-insns-recursive} is
-taken into account.  For function not declared inline, recursive inlining
+For functions declared inline, @option{--param max-inline-insns-recursive} is
+taken into account.  For functions not declared inline, recursive inlining
 happens only when @option{-finline-functions} (included in @option{-O3}) is
 enabled and @option{--param max-inline-insns-recursive-auto} is used.  The
 default value is 450.
 
 @item max-inline-recursive-depth
 @itemx max-inline-recursive-depth-auto
-Specifies maximum recursion depth used by the recursive inlining.
+Specifies the maximum recursion depth used for recursive inlining.
 
-For functions declared inline @option{--param max-inline-recursive-depth} is
-taken into account.  For function not declared inline, recursive inlining
+For functions declared inline, @option{--param max-inline-recursive-depth} is
+taken into account.  For functions not declared inline, recursive inlining
 happens only when @option{-finline-functions} (included in @option{-O3}) is
 enabled and @option{--param max-inline-recursive-depth-auto} is used.  The
 default value is 8.
@@ -8794,20 +8799,21 @@ increasing the prologue size or complexi
 optimizers.
 
 When profile feedback is available (see @option{-fprofile-generate}) the actual
-recursion depth can be guessed from probability that function will recurse via
-given call expression.  This parameter limits inlining only to call expression
-whose probability exceeds given threshold (in percents).  The default value is
-10.
+recursion depth can be guessed from probability that function recurses via a
+given call expression.  This parameter limits inlining only to call expressions
+whose probability exceeds the given threshold (in percents).
+The default value is 10.
 
 @item early-inlining-insns
-Specify growth that early inliner can make.  In effect it increases amount of
-inlining for code having large abstraction penalty.  The default value is 10.
+Specify growth that the early inliner can make.  In effect it increases
+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 early inliner.  This basically bounds number of nested
-indirect calls early inliner can resolve.  Deeper chains are still handled by
-late inlining.
+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
@@ -8815,7 +8821,7 @@ Probability (in percent) that C++ inline
 are shared across multiple compilation units.  The default value is 20.
 
 @item min-vect-loop-bound
-The minimum number of iterations under which a loop is not vectorized
+The minimum number of iterations under which loops are not vectorized
 when @option{-ftree-vectorize} is used.  The number of iterations after
 vectorization needs to be greater than the value specified by this option
 to allow vectorization.  The default value is 0.
@@ -8852,21 +8858,21 @@ The maximum amount of iterations of the 
 limit compilation time in tree tail merging.  The default value is 2.
 
 @item max-unrolled-insns
-The maximum number of instructions that a loop should have if that loop
-is unrolled, and if the loop is unrolled, it determines how many times
+The maximum number of instructions that a loop may have to be unrolled.
+If a loop is unrolled, this parameter also determines how many times
 the loop code is unrolled.
 
 @item max-average-unrolled-insns
 The maximum number of instructions biased by probabilities of their execution
-that a loop should have if that loop is unrolled, and if the loop is unrolled,
-it determines how many times the loop code is unrolled.
+that a loop may have to be unrolled.  If a loop is unrolled,
+this parameter also determines how many times the loop code is unrolled.
 
 @item max-unroll-times
 The maximum number of unrollings of a single loop.
 
 @item max-peeled-insns
-The maximum number of instructions that a loop should have if that loop
-is peeled, and if the loop is peeled, it determines how many times
+The maximum number of instructions that a loop may have to be peeled.
+If a loop is peeled, this parameter also determines how many times
 the loop code is peeled.
 
 @item max-peel-times
@@ -8891,19 +8897,19 @@ The maximum number of branches unswitche
 The minimum cost of an expensive expression in the loop invariant motion.
 
 @item iv-consider-all-candidates-bound
-Bound on number of candidates for induction variables below that
+Bound on number of candidates for induction variables, below which
 all candidates are considered for each use in induction variable
-optimizations.  Only the most relevant candidates are considered
-if there are more candidates, to avoid quadratic time complexity.
+optimizations.  If there are more candidates than this,
+only the most relevant ones are considered to avoid quadratic time complexity.
 
 @item iv-max-considered-uses
 The induction variable optimizations give up on loops that contain more
 induction variable uses.
 
 @item iv-always-prune-cand-set-bound
-If number of candidates in the set is smaller than this value,
-we always try to remove unnecessary ivs from the set during its
-optimization when a new iv is added to the set.
+If the number of candidates in the set is smaller than this value,
+always try to remove unnecessary ivs from the set
+when adding a new one.
 
 @item scev-max-expr-size
 Bound on size of expressions used in the scalar evolutions analyzer.
@@ -8952,9 +8958,8 @@ doing loop versioning for alias in the v
 @option{-ftree-vect-loop-version} for more information.
 
 @item max-iterations-to-track
-
-The maximum number of iterations of a loop the brute force algorithm
-for analysis of # of iterations of the loop tries to evaluate.
+The maximum number of iterations of a loop the brute-force algorithm
+for analysis of the number of iterations of the loop tries to evaluate.
 
 @item hot-bb-count-fraction
 Select fraction of the maximal count of repetitions of basic block in program
@@ -9017,10 +9022,12 @@ order to make tracer effective.
 
 @item max-cse-path-length
 
-Maximum number of basic blocks on path that cse considers.  The default is 10.
+The maximum number of basic blocks on path that CSE considers.
+The default is 10.
 
 @item max-cse-insns
-The maximum instructions CSE process before flushing. The default is 1000.
+The maximum number of instructions CSE processes before flushing.
+The default is 1000.
 
 @item ggc-min-expand
 
@@ -9070,13 +9077,13 @@ increase with probably slightly better p
 @item reorder-blocks-duplicate
 @itemx reorder-blocks-duplicate-feedback
 
-Used by basic block reordering pass to decide whether to use unconditional
+Used by the basic block reordering pass to decide whether to use unconditional
 branch or duplicate the code on its destination.  Code is duplicated when its
 estimated size is smaller than this value multiplied by the estimated size of
 unconditional jump in the hot spots of the program.
 
 The @option{reorder-block-duplicate-feedback} is used only when profile
-feedback is available and may be set to higher values than
+feedback is available.  It may be set to higher values than
 @option{reorder-block-duplicate} since information about the hot spots is more
 accurate.
 
@@ -9167,7 +9174,7 @@ and 100 for @option{-Os}, @option{-O2}, 
 
 @item prefetch-latency
 Estimate on average number of instructions that are executed before
-prefetch finishes.  The distance we prefetch ahead is proportional
+prefetch finishes.  The distance prefetched ahead is proportional
 to this constant.  Increasing this number may also lead to less
 streams being prefetched (see @option{simultaneous-prefetches}).
 
@@ -9425,7 +9432,7 @@ options instead.
 @item -Xpreprocessor @var{option}
 @opindex Xpreprocessor
 Pass @var{option} as an option to the preprocessor.  You can use this to
-supply system-specific preprocessor options that GCC does not know how to
+supply system-specific preprocessor options that GCC does not 
 recognize.
 
 If you want to pass an option that takes an argument, you must use
@@ -9464,7 +9471,7 @@ contains commas, it is split into multip
 @item -Xassembler @var{option}
 @opindex Xassembler
 Pass @var{option} as an option to the assembler.  You can use this to
-supply system-specific assembler options that GCC does not know how to
+supply system-specific assembler options that GCC does not
 recognize.
 
 If you want to pass an option that takes an argument, you must use
@@ -9548,7 +9555,9 @@ Only the libraries you specify are passe
 specifying linkage of the system libraries, such as @code{-static-libgcc}
 or @code{-shared-libgcc}, are ignored.  
 The standard startup files are used normally, unless @option{-nostartfiles}
-is used.  The compiler may generate calls to @code{memcmp},
+is used.  
+
+The compiler may generate calls to @code{memcmp},
 @code{memset}, @code{memcpy} and @code{memmove}.
 These entries are usually resolved by entries in
 libc.  These entry points should be supplied through some other
@@ -9631,7 +9640,7 @@ is innocuous.}
 @opindex shared-libgcc
 @opindex static-libgcc
 On systems that provide @file{libgcc} as a shared library, these options
-force the use of either the shared or static version respectively.
+force the use of either the shared or static version, respectively.
 If no shared version of @file{libgcc} was built when the compiler was
 configured, these options have no effect.
 
@@ -9939,7 +9948,7 @@ passed to the program @samp{z-compile}, 
 command-line switch @option{-input} and with the result of performing the
 @samp{%i} substitution.  (See below.)
 
-As an alternative to providing a spec string, the text that follows a
+As an alternative to providing a spec string, the text following a
 suffix directive can be one of the following:
 
 @table @code
@@ -10533,8 +10542,8 @@ That allows code to run on hardware vari
 @item -mprefer-short-insn-regs
 @opindex mprefer-short-insn-regs
 Preferrentially allocate registers that allow short instruction generation.
-This can result in increasesd instruction count, so if this reduces or
-increases code size might vary from case to case.
+This can result in increased instruction count, so this may either reduce or
+increase overall code size.
 
 @item -mbranch-cost=@var{num}
 @opindex mbranch-cost
@@ -10548,7 +10557,7 @@ Enable the generation of conditional mov
 
 @item -mnops=@var{num}
 @opindex mnops
-Emit @var{num} nops before every other generated instruction.
+Emit @var{num} NOPs before every other generated instruction.
 
 @item -mno-soft-cmpsf
 @opindex mno-soft-cmpsf
@@ -10562,10 +10571,10 @@ software comparisons.
 @item -mstack-offset=@var{num}
 @opindex mstack-offset
 Set the offset between the top of the stack and the stack pointer.
-E.g., a value of 8 means that the eight bytes in the range sp+0@dots{}sp+7
+E.g., a value of 8 means that the eight bytes in the range @code{sp+0@dots{}sp+7}
 can be used by leaf functions without stack allocation.
 Values other than @samp{8} or @samp{16} are untested and unlikely to work.
-Note also that this option changes the ABI, compiling a program with a
+Note also that this option changes the ABI; compiling a program with a
 different stack offset than the libraries have been compiled with
 generally does not work.
 This option can be useful if you want to evaluate if a different stack
@@ -10719,13 +10728,13 @@ Pass floating-point arguments using the 
 one of the variants of the APCS@.  This option is recommended if the
 target hardware has a floating-point unit or if a lot of floating-point
 arithmetic is going to be performed by the code.  The default is
-@option{-mno-apcs-float}, since integer only code is slightly increased in
-size if @option{-mapcs-float} is used.
+@option{-mno-apcs-float}, since the size of integer-only code is 
+slightly increased if @option{-mapcs-float} is used.
 
 @c not currently implemented
 @item -mapcs-reentrant
 @opindex mapcs-reentrant
-Generate reentrant, position independent code.  The default is
+Generate reentrant, position-independent code.  The default is
 @option{-mno-apcs-reentrant}.
 @end ignore
 
@@ -10900,7 +10909,7 @@ and 64.  The default value varies for di
 targeted toolchain the default value is 8.  A value of 64 is only allowed
 if the underlying ABI supports it.
 
-Specifying the larger number can produce faster, more efficient code, but
+Specifying a larger number can produce faster, more efficient code, but
 can also increase the size of the program.  Different values are potentially
 incompatible.  Code compiled with one value cannot necessarily expect to
 work with code or libraries compiled with another value, if they exchange
@@ -11495,6 +11504,7 @@ can be one of @samp{bf512}, @samp{bf514}
 @samp{bf542}, @samp{bf544}, @samp{bf547}, @samp{bf548}, @samp{bf549},
 @samp{bf542m}, @samp{bf544m}, @samp{bf547m}, @samp{bf548m}, @samp{bf549m},
 @samp{bf561}, @samp{bf592}.
+
 The optional @var{sirevision} specifies the silicon revision of the target
 Blackfin processor.  Any workarounds available for the targeted silicon revision
 are enabled.  If @var{sirevision} is @samp{none}, no workarounds are enabled.
@@ -11507,13 +11517,15 @@ is not defined.  If @var{sirevision} is 
 If this optional @var{sirevision} is not used, GCC assumes the latest known
 silicon revision of the targeted Blackfin processor.
 
-Support for @samp{bf561} is incomplete.  For @samp{bf561},
-Only the processor macro is defined.
-Without this option, @samp{bf532} is used as the processor by default.
-The corresponding predefined processor macros for @var{cpu} is to
-be defined.  And for @samp{bfin-elf} toolchain, this causes the hardware BSP
+GCC defines a preprocessor macro for the specified @var{cpu}.
+For the @samp{bfin-elf} toolchain, this option causes the hardware BSP
 provided by libgloss to be linked in if @option{-msim} is not given.
 
+Without this option, @samp{bf532} is used as the processor by default.
+
+Note that support for @samp{bf561} is incomplete.  For @samp{bf561},
+only the preprocessor macro is defined.
+
 @item -msim
 @opindex msim
 Specifies that the program will be run on the simulator.  This causes
@@ -11574,7 +11586,7 @@ With a @samp{bfin-elf} target, this opti
 
 @item -mno-id-shared-library
 @opindex mno-id-shared-library
-Generate code that doesn't assume ID based shared libraries are being used.
+Generate code that doesn't assume ID-based shared libraries are being used.
 This is the default.
 
 @item -mleaf-id-shared-library
@@ -11636,40 +11648,43 @@ not known to bind locally.  It has no ef
 
 @item -mmulticore
 @opindex mmulticore
-Build standalone application for multicore Blackfin processor. Proper
-start files and link scripts are used to support multicore.
-This option defines @code{__BFIN_MULTICORE}. It can only be used with
-@option{-mcpu=bf561@r{[}-@var{sirevision}@r{]}}. It can be used with
-@option{-mcorea} or @option{-mcoreb}. If it's used without
-@option{-mcorea} or @option{-mcoreb}, single application/dual core
+Build a standalone application for multicore Blackfin processors. 
+This option causes proper start files and link scripts supporting 
+multicore to be used, and defines the macro @code{__BFIN_MULTICORE}. 
+It can only be used with @option{-mcpu=bf561@r{[}-@var{sirevision}@r{]}}. 
+
+This option can be used with @option{-mcorea} or @option{-mcoreb}, which
+selects the one-application-per-core programming model.  Without
+@option{-mcorea} or @option{-mcoreb}, the single-application/dual-core
 programming model is used. In this model, the main function of Core B
-should be named as coreb_main. If it's used with @option{-mcorea} or
-@option{-mcoreb}, one application per core programming model is used.
-If this option is not used, single core application programming
+should be named as @code{coreb_main}.
+
+If this option is not used, the single-core application programming
 model is used.
 
 @item -mcorea
 @opindex mcorea
-Build standalone application for Core A of BF561 when using
-one application per core programming model. Proper start files
-and link scripts are used to support Core A. This option
-defines @code{__BFIN_COREA}. It must be used with @option{-mmulticore}.
+Build a standalone application for Core A of BF561 when using
+the one-application-per-core programming model. Proper start files
+and link scripts are used to support Core A, and the macro
+@code{__BFIN_COREA} is defined.
+This option can only be used in conjunction with @option{-mmulticore}.
 
 @item -mcoreb
 @opindex mcoreb
-Build standalone application for Core B of BF561 when using
-one application per core programming model. Proper start files
-and link scripts are used to support Core B. This option
-defines @code{__BFIN_COREB}. When this option is used, coreb_main
-should be used instead of main. It must be used with
-@option{-mmulticore}.
+Build a standalone application for Core B of BF561 when using
+the one-application-per-core programming model. Proper start files
+and link scripts are used to support Core B, and the macro
+@code{__BFIN_COREB} is defined. When this option is used, @code{coreb_main}
+should be used instead of @code{main}. 
+This option can only be used in conjunction with @option{-mmulticore}.
 
 @item -msdram
 @opindex msdram
-Build standalone application for SDRAM. Proper start files and
-link scripts are used to put the application into SDRAM.
-Loader should initialize SDRAM before loading the application
-into SDRAM. This option defines @code{__BFIN_SDRAM}.
+Build a standalone application for SDRAM. Proper start files and
+link scripts are used to put the application into SDRAM, and the macro
+@code{__BFIN_SDRAM} is defined.
+The loader should initialize SDRAM before loading the application.
 
 @item -micplb
 @opindex micplb
@@ -11713,7 +11728,7 @@ pieces of data are @samp{.fardata}, @sam
 
 @item -msdata=all
 @opindex msdata=all
-Put all data, not just small objets, into the sections reserved for
+Put all data, not just small objects, into the sections reserved for
 small data, and use addressing relative to the @code{B14} register to
 access them.
 
@@ -11771,7 +11786,7 @@ models where it applies.  This option is
 @item -mpdebug
 @opindex mpdebug
 Enable CRIS-specific verbose debug-related information in the assembly
-code.  This option also has the effect to turn off the @samp{#NO_APP}
+code.  This option also has the effect of turning off the @samp{#NO_APP}
 formatted-code indicator to the assembler at the beginning of the
 assembly file.
 
@@ -11782,7 +11797,7 @@ compare and test instructions before use
 
 @item -mno-side-effects
 @opindex mno-side-effects
-Do not emit instructions with side-effects in addressing modes other than
+Do not emit instructions with side effects in addressing modes other than
 post-increment.
 
 @item -mstack-align
@@ -11797,8 +11812,8 @@ post-increment.
 @opindex mno-data-align
 @opindex mconst-align
 @opindex mno-const-align
-These options (no-options) arranges (eliminate arrangements) for the
-stack-frame, individual data and constants to be aligned for the maximum
+These options (@samp{no-} options) arrange (eliminate arrangements) for the
+stack frame, individual data and constants to be aligned for the maximum
 single data access size for the chosen CPU model.  The default is to
 arrange for 32-bit alignment.  ABI details such as structure layout are
 not affected by these options.
@@ -11810,7 +11825,7 @@ not affected by these options.
 @opindex m16-bit
 @opindex m8-bit
 Similar to the stack- data- and const-align options above, these options
-arrange for stack-frame, writable data and constants to all be 32-bit,
+arrange for stack frame, writable data and constants to all be 32-bit,
 16-bit or 8-bit aligned.  The default is 32-bit alignment.
 
 @item -mno-prologue-epilogue
@@ -11822,7 +11837,7 @@ epilogue which set up the stack frame ar
 instructions or return sequences are generated in the code.  Use this
 option only together with visual inspection of the compiled code: no
 warnings or errors are generated when call-saved registers must be saved,
-or storage for local variable needs to be allocated.
+or storage for local variables needs to be allocated.
 
 @item -mno-gotplt
 @itemx -mgotplt
@@ -11844,7 +11859,7 @@ Legacy no-op option only recognized with
 
 @item -sim
 @opindex sim
-This option, recognized for the cris-axis-elf arranges
+This option, recognized for the cris-axis-elf, arranges
 to link with input-output functions from a simulator library.  Code,
 initialized data and zero-initialized data are allocated consecutively.
 
@@ -12010,8 +12025,8 @@ switch to conform to a non-default data 
 @opindex mfix-and-continue
 @opindex ffix-and-continue
 @opindex findirect-data
-Generate code suitable for fast turn around development.  Needed to
-enable GDB to dynamically load @code{.o} files into already running
+Generate code suitable for fast turnaround development, such as to
+allow GDB to dynamically load @code{.o} files into already-running
 programs.  @option{-findirect-data} and @option{-ffix-and-continue}
 are provided for backwards compatibility.
 
@@ -12667,9 +12682,9 @@ within the 32-bit address space.
 @item -malign-labels
 @opindex malign-labels
 
-Try to align labels to an 8-byte boundary by inserting nops into the
+Try to align labels to an 8-byte boundary by inserting NOPs into the
 previous packet.  This option only has an effect when VLIW packing
-is enabled.  It doesn't create new packets; it merely adds nops to
+is enabled.  It doesn't create new packets; it merely adds NOPs to
 existing ones.
 
 @item -mlibrary-pic
@@ -12803,7 +12818,7 @@ in a future version.
 @opindex moptimize-membar
 
 This switch removes redundant @code{membar} instructions from the
-compiler generated code.  It is enabled by default.
+compiler-generated code.  It is enabled by default.
 
 @item -mno-optimize-membar
 @opindex mno-optimize-membar
@@ -12952,7 +12967,7 @@ Synonyms for @option{-march=1.0}, @optio
 @item -mbig-switch
 @opindex mbig-switch
 Generate code suitable for big switch tables.  Use this option only if
-the assembler/linker complain about out of range branches within a switch
+the assembler/linker complain about out-of-range branches within a switch
 table.
 
 @item -mjump-in-delay
@@ -12991,7 +13006,7 @@ functions.
 @item -mfixed-range=@var{register-range}
 @opindex mfixed-range
 Generate code treating the given register range as fixed registers.
-A fixed register is one that the register allocator can not use.  This is
+A fixed register is one that the register allocator cannot use.  This is
 useful when compiling kernel code.  A register range is specified as
 two registers separated by a dash.  Multiple register ranges can be
 specified separated by a comma.
@@ -14467,7 +14482,7 @@ be scheduled.
 @subsection LM32 Options
 @cindex LM32 options
 
-These @option{-m} options are defined for the Lattice Mico32 architecture:
+These @option{-m} options are defined for the LatticeMico32 architecture:
 
 @table @gcctabopt
 @item -mbarrel-shift-enabled
@@ -14520,8 +14535,7 @@ registers, so there is a tradeoff betwee
 code into available registers, and the performance penalty of using
 memory instead of registers.  Note that all modules in a program must
 be compiled with the same value for this option.  Because of that, you
-must not use this option with the default runtime libraries gcc
-builds.
+must not use this option with GCC's default runtime libraries.
 
 @end table
 
@@ -14593,7 +14607,7 @@ special instructions to reference them.
 @opindex G
 @cindex smaller data references
 Put global and static objects less than or equal to @var{num} bytes
-into the small data or bss sections instead of the normal data or bss
+into the small data or BSS sections instead of the normal data or BSS
 sections.  The default value of @var{num} is 8.
 The @option{-msdata} option must be set to one of @samp{sdata} or @samp{use}
 for this option to have any effect.
@@ -14605,7 +14619,7 @@ generated.
 
 @item -mdebug
 @opindex mdebug
-Makes the M32R specific code in the compiler display some statistics
+Makes the M32R-specific code in the compiler display some statistics
 that might help in debugging programs.
 
 @item -malign-loops
@@ -14720,7 +14734,7 @@ where the value of @var{family} is given
 
 @item -mtune=@var{tune}
 @opindex mtune
-Tune the code for a particular microarchitecture, within the
+Tune the code for a particular microarchitecture within the
 constraints set by @option{-march} and @option{-mcpu}.
 The M680x0 microarchitectures are: @samp{68000}, @samp{68010},
 @samp{68020}, @samp{68030}, @samp{68040}, @samp{68060}
@@ -14973,7 +14987,7 @@ the system.
 
 @item -msep-data
 Generate code that allows the data segment to be located in a different
-area of memory from the text segment.  This allows for execute in place in
+area of memory from the text segment.  This allows for execute-in-place in
 an environment without virtual memory management.  This option implies
 @option{-fPIC}.
 
@@ -14983,11 +14997,11 @@ This is the default.
 
 @item -mid-shared-library
 Generate code that supports shared libraries via the library ID method.
-This allows for execute in place and shared libraries in an environment
+This allows for execute-in-place and shared libraries in an environment
 without virtual memory management.  This option implies @option{-fPIC}.
 
 @item -mno-id-shared-library
-Generate code that doesn't assume ID based shared libraries are being used.
+Generate code that doesn't assume ID-based shared libraries are being used.
 This is the default.
 
 @item -mshared-library-id=n
@@ -15056,13 +15070,13 @@ Use the divide instruction.  (Enabled by
 @itemx -mno-relax-immediate
 @opindex mrelax-immediate
 @opindex mno-relax-immediate
-Allow arbitrary sized immediates in bit operations.
+Allow arbitrary-sized immediates in bit operations.
 
 @item -mwide-bitfields
 @itemx -mno-wide-bitfields
 @opindex mwide-bitfields
 @opindex mno-wide-bitfields
-Always treat bit-fields as int-sized.
+Always treat bit-fields as @code{int}-sized.
 
 @item -m4byte-functions
 @itemx -mno-4byte-functions
@@ -15157,7 +15171,7 @@ useful unless you also provide @code{-mm
 
 @item -mconfig=@var{name}
 @opindex mconfig=
-Selects one of the build-in core configurations.  Each MeP chip has
+Selects one of the built-in core configurations.  Each MeP chip has
 one or more modules in it; each module has a core CPU and a variety of
 coprocessors, optional instructions, and peripherals.  The
 @code{MeP-Integrator} tool, not part of GCC, provides these
@@ -15296,7 +15310,7 @@ This option is deprecated.  Use @option{
 
 @item -mcpu=@var{cpu-type}
 @opindex mcpu=
-Use features of and schedule code for given CPU.
+Use features of, and schedule code for, the given CPU.
 Supported values are in the format @samp{v@var{X}.@var{YY}.@var{Z}},
 where @var{X} is a major version, @var{YY} is the minor version, and
 @var{Z} is compatibility code.  Example values are @samp{v3.00.a},
@@ -15351,7 +15365,7 @@ normal executable (default), uses startu
 @item xmdstub
 for use with Xilinx Microprocessor Debugger (XMD) based
 software intrusive debug agent called xmdstub. This uses startup file
-@file{crt1.o} and sets the start address of the program to be 0x800.
+@file{crt1.o} and sets the start address of the program to 0x800.
 
 @item bootstrap
 for applications that are loaded using a bootloader.
@@ -15782,8 +15796,8 @@ to generate shorter and faster reference
 @item -G @var{num}
 @opindex G
 Put definitions of externally-visible data in a small data section
-if that data is no bigger than @var{num} bytes.  GCC can then access
-the data more efficiently; see @option{-mgpopt} for details.
+if that data is no bigger than @var{num} bytes.  GCC can then generate
+more efficient accesses to the data; see @option{-mgpopt} for details.
 
 The default @option{-G} option depends on the configuration.
 
@@ -16040,7 +16054,7 @@ The workarounds for the division errata 
 @file{libgcc.a}.  At present, these functions are only provided by
 the @code{mips64vr*-elf} configurations.
 
-Other VR4120 errata require a nop to be inserted between certain pairs of
+Other VR4120 errata require a NOP to be inserted between certain pairs of
 instructions.  These errata are handled by the assembler, not by GCC itself.
 
 @item -mfix-vr4130
@@ -16204,7 +16218,7 @@ resolve the destination at link-time and
 range for a direct call.
 
 @option{-mrelax-pic-calls} is the default if GCC was configured to use
-an assembler and a linker that supports the @code{.reloc} assembly
+an assembler and a linker that support the @code{.reloc} assembly
 directive and @code{-mexplicit-relocs} is in effect.  With
 @code{-mno-explicit-relocs}, this optimization can be performed by the
 assembler and the linker alone without help from the compiler.
@@ -16760,11 +16774,11 @@ Generate VRSAVE instructions when genera
 
 @item -mgen-cell-microcode
 @opindex mgen-cell-microcode
-Generate Cell microcode instructions
+Generate Cell microcode instructions.
 
 @item -mwarn-cell-microcode
 @opindex mwarn-cell-microcode
-Warning when a Cell microcode instruction is going to emitted.  An example
+Warn when a Cell microcode instruction is emitted.  An example
 of a Cell microcode instruction is a variable shift.
 
 @item -msecure-plt
@@ -17186,7 +17200,7 @@ separate groups.  Insert @var{number} NO
 @item -mcall-sysv
 @opindex mcall-sysv
 On System V.4 and embedded PowerPC systems compile code using calling
-conventions that adheres to the March 1995 draft of the System V
+conventions that adhere to the March 1995 draft of the System V
 Application Binary Interface, PowerPC processor supplement.  This is the
 default unless you configured GCC using @samp{powerpc-*-eabiaix}.
 
@@ -17248,7 +17262,7 @@ ABI@.
 
 @item -mabi=no-spe
 @opindex mabi=no-spe
-Disable Booke SPE ABI extensions for the current ABI@.
+Disable Book-E SPE ABI extensions for the current ABI@.
 
 @item -mabi=ibmlongdouble
 @opindex mabi=ibmlongdouble
@@ -17266,7 +17280,7 @@ This is a PowerPC 32-bit Linux ABI optio
 @opindex mno-prototype
 On System V.4 and embedded PowerPC systems assume that all calls to
 variable argument functions are properly prototyped.  Otherwise, the
-compiler must insert an instruction before every non prototyped call to
+compiler must insert an instruction before every non-prototyped call to
 set or clear bit 6 of the condition code register (@var{CR}) to
 indicate whether floating-point values are passed in the floating-point
 registers in case the function takes variable arguments.  With
@@ -17313,14 +17327,14 @@ header to indicate that @samp{eabi} exte
 @opindex meabi
 @opindex mno-eabi
 On System V.4 and embedded PowerPC systems do (do not) adhere to the
-Embedded Applications Binary Interface (eabi) which is a set of
+Embedded Applications Binary Interface (EABI), which is a set of
 modifications to the System V.4 specifications.  Selecting @option{-meabi}
 means that the stack is aligned to an 8-byte boundary, a function
-@code{__eabi} is called to from @code{main} to set up the eabi
+@code{__eabi} is called from @code{main} to set up the EABI
 environment, and the @option{-msdata} option can use both @code{r2} and
 @code{r13} to point to two separate small data areas.  Selecting
 @option{-mno-eabi} means that the stack is aligned to a 16-byte boundary,
-do not call an initialization function from @code{main}, and the
+no EABI initialization function is called from @code{main}, and the
 @option{-msdata} option only uses @code{r13} to point to a single
 small data area.  The @option{-meabi} option is on by default if you
 configured GCC using one of the @samp{powerpc*-*-eabi*} options.
@@ -17382,8 +17396,8 @@ targets.  The default value is target-sp
 @cindex smaller data references (PowerPC)
 @cindex .sdata/.sdata2 references (PowerPC)
 On embedded PowerPC systems, put global and static items less than or
-equal to @var{num} bytes into the small data or bss sections instead of
-the normal data or bss section.  By default, @var{num} is 8.  The
+equal to @var{num} bytes into the small data or BSS sections instead of
+the normal data or BSS section.  By default, @var{num} is 8.  The
 @option{-G @var{num}} switch is also passed to the linker.
 All modules should be compiled with the same @option{-G @var{num}} value.
 
@@ -17398,9 +17412,9 @@ names in the assembly language output us
 @itemx -mno-longcall
 @opindex mlongcall
 @opindex mno-longcall
-By default assume that all calls are far away so that a longer more
+By default assume that all calls are far away so that a longer and more
 expensive calling sequence is required.  This is required for calls
-further than 32 megabytes (33,554,432 bytes) from the current location.
+farther than 32 megabytes (33,554,432 bytes) from the current location.
 A short call is generated if the compiler knows
 the call cannot be that far away.  This setting can be overridden by
 the @code{shortcall} function attribute, or by @code{#pragma
@@ -17457,13 +17471,13 @@ least @option{-funsafe-math-optimization
 @option{-fno-trapping-math}).  Note that while the throughput of the
 sequence is generally higher than the throughput of the non-reciprocal
 instruction, the precision of the sequence can be decreased by up to 2
-ulp (i.e. the inverse of 1.0 equals 0.99999994) for reciprocal square
+ulp (i.e.@: the inverse of 1.0 equals 0.99999994) for reciprocal square
 roots.
 
 @item -mrecip=@var{opt}
 @opindex mrecip=opt
-This option allows to control which reciprocal estimate instructions
-may be used.  @var{opt} is a comma separated list of options, which may
+This option controls which reciprocal estimate instructions
+may be used.  @var{opt} is a comma-separated list of options, which may
 be preceded by a @code{!} to invert the option:
 @code{all}: enable all estimate instructions,
 @code{default}: enable the default instructions, equivalent to @option{-mrecip},
@@ -17629,8 +17643,8 @@ actual register to hold the small data a
 @itemx -mno-sim
 @opindex msim
 @opindex mno-sim
-Use the simulator runtime.  The default is to use the libgloss board
-specific runtime.
+Use the simulator runtime.  The default is to use the libgloss
+board-specific runtime.
 
 @item -mas100-syntax
 @itemx -mno-as100-syntax
@@ -17638,8 +17652,7 @@ specific runtime.
 @opindex mno-as100-syntax
 When generating assembler output use a syntax that is compatible with
 Renesas's AS100 assembler.  This syntax can also be handled by the GAS
-assembler but it has some restrictions so generating it is not the
-default option.
+assembler, but it has some restrictions so it is not generated by default.
 
 @item -mmax-constant-size=@var{N}
 @opindex mmax-constant-size
@@ -17903,14 +17916,14 @@ arrays.  This is generally a bad idea wi
 @itemx -mstack-size=@var{stack-size}
 @opindex mstack-guard
 @opindex mstack-size
-If these options are provided the s390 back end emits additional instructions in
-the function prologue which trigger a trap if the stack size is @var{stack-guard}
-bytes above the @var{stack-size} (remember that the stack on s390 grows downward).
+If these options are provided the S/390 back end emits additional instructions in
+the function prologue that trigger a trap if the stack size is @var{stack-guard}
+bytes above the @var{stack-size} (remember that the stack on S/390 grows downward).
 If the @var{stack-guard} option is omitted the smallest power of 2 larger than
 the frame size of the compiled function is chosen.
 These options are intended to be used to help debugging stack overflow problems.
 The additionally emitted code causes only little overhead and hence can also be
-used in production like systems without greater performance degradation.  The given
+used in production-like systems without greater performance degradation.  The given
 values have to be exact powers of 2 and @var{stack-size} has to be greater than
 @var{stack-guard} without exceeding 64k.
 In order to be efficient the extra code makes the assumption that the stack starts
@@ -17935,11 +17948,11 @@ Compile code for little-endian mode.
 
 @item -mnhwloop
 @opindex mnhwloop
-Disable generate bcnz instruction.
+Disable generation of @code{bcnz} instructions.
 
 @item -muls
 @opindex muls
-Enable generate unaligned load and store instruction.
+Enable generation of unaligned load and store instructions.
 
 @item -mmac
 @opindex mmac
@@ -18438,7 +18451,7 @@ Specify @option{-mapp-regs} to generate 
 2 through 4, which the SPARC SVR4 ABI reserves for applications.  This
 is the default.
 
-To be fully SVR4 ABI compliant at the cost of some performance loss,
+To be fully SVR4 ABI-compliant at the cost of some performance loss,
 specify @option{-mno-app-regs}.  You should compile libraries and system
 software with this option.
 
@@ -18821,7 +18834,7 @@ local copy of @code{argv} strings.
 @item -mfixed-range=@var{register-range}
 @opindex mfixed-range
 Generate code treating the given register range as fixed registers.
-A fixed register is one that the register allocator can not use.  This is
+A fixed register is one that the register allocator cannot use.  This is
 useful when compiling kernel code.  A register range is specified as
 two registers separated by a dash.  Multiple register ranges can be
 specified separated by a comma.
@@ -18832,7 +18845,7 @@ specified separated by a comma.
 @opindex mea64
 Compile code assuming that pointers to the PPU address space accessed
 via the @code{__ea} named address space qualifier are either 32 or 64
-bits wide.  The default is 32 bits.  As this is an ABI changing option,
+bits wide.  The default is 32 bits.  As this is an ABI-changing option,
 all object code in an executable must be compiled with the same setting.
 
 @item -maddress-space-conversion
@@ -19777,7 +19790,7 @@ using universal character names.
 @opindex fstack-check
 Generate code to verify that you do not go beyond the boundary of the
 stack.  You should specify this flag if you are running in an
-environment with multiple threads, but only rarely need to specify it in
+environment with multiple threads, but you only rarely need to specify it in
 a single-threaded environment since stack overflow is automatically
 detected on nearly all systems if there is only one stack.
 
@@ -19805,7 +19818,7 @@ a warning is issued by the compiler.
 
 @item
 Inefficiency: because of both the modified allocation strategy and the
-generic implementation, the performances of the code are hampered.
+generic implementation, code performance is hampered.
 @end enumerate
 
 Note that old-style stack checking is also the fallback method for
@@ -19893,7 +19906,7 @@ Shared Libraries'' by Ulrich Drepper (wh
 @w{@uref{http://people.redhat.com/~drepper/}})---however a superior
 solution made possible by this option to marking things hidden when
 the default is public is to make the default hidden and mark things
-public.  This is the norm with DLL's on Windows and with @option{-fvisibility=hidden}
+public.  This is the norm with DLLs on Windows and with @option{-fvisibility=hidden}
 and @code{__attribute__ ((visibility("default")))} instead of
 @code{__declspec(dllexport)} you get almost identical semantics with
 identical syntax.  This is a great boon to those working with
@@ -19943,7 +19956,7 @@ structure fields, although the compiler 
 anyway) should use a single access of the width of the
 field's type, aligned to a natural alignment if possible.  For
 example, targets with memory-mapped peripheral registers might require
-all such accesses to be 16 bits wide; with this flag the user could
+all such accesses to be 16 bits wide; with this flag you can
 declare all peripheral bit-fields as @code{unsigned short} (assuming short
 is 16 bits on these targets) to force GCC to use 16-bit accesses
 instead of, perhaps, a more efficient 32-bit access.
