* [doc] cleanups for optimization options in invoke.texi
@ 2007-10-18 19:13 Janis Johnson
2007-10-20 20:11 ` Gerald Pfeifer
0 siblings, 1 reply; 5+ messages in thread
From: Janis Johnson @ 2007-10-18 19:13 UTC (permalink / raw)
To: gcc-patches
This patch cleans up several little things for optimization options in
the GCC Manual. Tested with make dvi/info/make. OK for mainline?
Should I backport it to 4.2, 4.1?
I have more cleanups coming but want to get these out of the way first.
2007-10-18 Janis Johnson <janis187@us.ibm.com>
* doc/invoke.texi (Optimization Options): In summary, show that
falign-* and -fsched-stalled-insns options take an optional value
and that -ftree-parallelize-loops takes a value; add opindex for
several optimization options; fix types in opindex for several
others; in description for -fsched-stalled-insns, show it with
and without a value.
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi (revision 129450)
+++ gcc/doc/invoke.texi (working copy)
@@ -315,8 +315,8 @@
@item Optimization Options
@xref{Optimize Options,,Options that Control Optimization}.
-@gccoptlist{-falign-functions=@var{n} -falign-jumps=@var{n} @gol
--falign-labels=@var{n} -falign-loops=@var{n} @gol
+@gccoptlist{-falign-functions[=@var{n}] -falign-jumps[=@var{n}] @gol
+-falign-labels[=@var{n}] -falign-loops[=@var{n}] @gol
-fbounds-check -fmudflap -fmudflapth -fmudflapir @gol
-fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize @gol
-fbranch-target-load-optimize2 -fbtr-bb-exclusive @gol
@@ -347,7 +347,7 @@
-fschedule-insns -fschedule-insns2 @gol
-fno-sched-interblock -fno-sched-spec -fsched-spec-load @gol
-fsched-spec-load-dangerous @gol
--fsched-stalled-insns=@var{n} -fsched-stalled-insns-dep=@var{n} @gol
+-fsched-stalled-insns[=@var{n}] -fsched-stalled-insns-dep=@var{n} @gol
-fsched2-use-superblocks @gol
-fsched2-use-traces -fsee -freschedule-modulo-scheduled-loops @gol
-fsection-anchors -fsignaling-nans -fsingle-precision-constant @gol
@@ -358,7 +358,7 @@
-fvariable-expansion-in-unroller -ftree-reassoc @gol
-ftree-pre -ftree-ccp -ftree-dce -ftree-loop-optimize @gol
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol
--fcheck-data-deps -ftree-parallelize-loops @gol
+-fcheck-data-deps -ftree-parallelize-loops=@var{n} @gol
-ftree-dominator-opts -ftree-dse -ftree-copyrename -ftree-sink @gol
-ftree-ch -ftree-sra -ftree-ter -ftree-fre -ftree-vectorize @gol
-ftree-vect-loop-version -fvect-cost-model -ftree-salias -fipa-pta -fweb @gol
@@ -5275,6 +5275,7 @@
optimization is turned on, use the @option{-fno-keep-static-consts} option.
@item -fmerge-constants
+@opindex fmerge-constants
Attempt to merge identical constants (string constants and floating point
constants) across compilation units.
@@ -5285,6 +5286,7 @@
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fmerge-all-constants
+@opindex fmerge-all-constants
Attempt to merge identical constants and identical variables.
This option implies @option{-fmerge-constants}. In addition to
@@ -5477,14 +5479,14 @@
if it finds this kind of loop.
@item -fcrossjumping
-@opindex crossjumping
+@opindex fcrossjumping
Perform cross-jumping transformation. This transformation unifies equivalent code and save code size. The
resulting code may or may not perform better than without cross-jumping.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion
-@opindex if-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
some tricks doable by standard arithmetics. The use of conditional execution
@@ -5493,7 +5495,7 @@
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion2
-@opindex if-conversion2
+@opindex fif-conversion2
Use conditional execution (where available) to transform conditional jumps into
branch-less equivalents.
@@ -5584,10 +5586,15 @@
sense when scheduling before register allocation, i.e.@: with
@option{-fschedule-insns} or at @option{-O2} or higher.
-@item -fsched-stalled-insns=@var{n}
+@item -fsched-stalled-insns
+@itemx -fsched-stalled-insns=@var{n}
@opindex fsched-stalled-insns
-Define how many insns (if any) can be moved prematurely from the queue
+Define how many insns (if any) can be removed prematurely from the queue
of stalled insns into the ready list, during the second scheduling pass.
+@option{-fno-fsched-stalled-insns} and @option{-fsched-stalled-insns=0}
+are equivalent and mean that no insns will be removed prematurely.
+If @var{n} is unspecified then there is no limit on how many queued
+insns can be removed prematurely.
@item -fsched-stalled-insns-dep=@var{n}
@opindex fsched-stalled-insns-dep
@@ -5626,7 +5633,7 @@
ones to optimal placement using LCM.
@item -freschedule-modulo-scheduled-loops
-@opindex fscheduling-in-modulo-scheduled-loops
+@opindex freschedule-modulo-scheduled-loops
The modulo scheduling comes before the traditional scheduling, if a loop
was modulo scheduled we may want to prevent the later scheduling passes
from changing its schedule, we use this option to control that.
@@ -5644,14 +5651,17 @@
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -ftree-reassoc
+@opindex ftree-reassoc
Perform Reassociation on trees This flag is enabled by default
at @option{-O} and higher.
@item -ftree-pre
+@opindex ftree-pre
Perform Partial Redundancy Elimination (PRE) on trees. This flag is
enabled by default at @option{-O2} and @option{-O3}.
@item -ftree-fre
+@opindex ftree-fre
Perform Full Redundancy Elimination (FRE) on trees. The difference
between FRE and PRE is that FRE only considers expressions
that are computed on all paths leading to the redundant computation.
@@ -5659,43 +5669,52 @@
This flag is enabled by default at @option{-O} and higher.
@item -ftree-copy-prop
+@opindex ftree-copy-prop
Perform copy propagation on trees. This pass eliminates unnecessary
copy operations. This flag is enabled by default at @option{-O} and
higher.
@item -ftree-store-copy-prop
+@opindex ftree-store-copy-prop
Perform copy propagation of memory loads and stores. This pass
eliminates unnecessary copy operations in memory references
(structures, global variables, arrays, etc). This flag is enabled by
default at @option{-O2} and higher.
@item -ftree-salias
+@opindex ftree-salias
Perform structural alias analysis on trees. This flag
is enabled by default at @option{-O} and higher.
@item -fipa-pta
+@opindex fipa-pta
Perform interprocedural pointer analysis.
@item -ftree-sink
+@opindex ftree-sink
Perform forward store motion on trees. This flag is
enabled by default at @option{-O} and higher.
@item -ftree-ccp
+@opindex ftree-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass only operates on local scalar variables and is enabled by default
at @option{-O} and higher.
@item -ftree-store-ccp
+@opindex ftree-store-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass operates on both local scalar variables and memory stores and
loads (global variables, structures, arrays, etc). This flag is
enabled by default at @option{-O2} and higher.
@item -ftree-dce
+@opindex ftree-dce
Perform dead code elimination (DCE) on trees. This flag is enabled by
default at @option{-O} and higher.
@item -ftree-dominator-opts
+@opindex ftree-dominator-opts
Perform a variety of simple scalar cleanups (constant/copy
propagation, redundancy elimination, range propagation and expression
simplification) based on a dominator tree traversal. This also
@@ -5710,24 +5729,29 @@
flag is enabled by default at @option{-O} and higher.
@item -ftree-ch
+@opindex ftree-ch
Perform loop header copying on trees. This is beneficial since it increases
effectiveness of code motion optimizations. It also saves one jump. This flag
is enabled by default at @option{-O} and higher. It is not enabled
for @option{-Os}, since it usually increases code size.
@item -ftree-loop-optimize
+@opindex ftree-loop-optimize
Perform loop optimizations on trees. This flag is enabled by default
at @option{-O} and higher.
@item -ftree-loop-linear
+@opindex ftree-loop-linear
Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
@item -fcheck-data-deps
+@opindex fcheck-data-deps
Compare the results of several data dependence analyzers. This option
is used for debugging the data dependence analyzers.
@item -ftree-loop-im
+@opindex ftree-loop-im
Perform loop invariant motion on trees. This pass moves only invariants that
would be hard to handle at RTL level (function calls, operations that expand to
nontrivial sequences of insns). With @option{-funswitch-loops} it also moves
@@ -5736,12 +5760,14 @@
store motion.
@item -ftree-loop-ivcanon
+@opindex ftree-loop-ivcanon
Create a canonical counter for number of iterations in the loop for that
determining number of iterations requires complicated analysis. Later
optimizations then may determine the number easily. Useful especially
in connection with unrolling.
@item -fivopts
+@opindex fivopts
Perform induction variable optimizations (strength reduction, induction
variable merging and induction variable elimination) on trees.
@@ -5754,17 +5780,20 @@
rather than constrained e.g. by memory bandwidth.
@item -ftree-sra
+@opindex ftree-sra
Perform scalar replacement of aggregates. This pass replaces structure
references with scalars to prevent committing structures to memory too
early. This flag is enabled by default at @option{-O} and higher.
@item -ftree-copyrename
+@opindex ftree-copyrename
Perform copy renaming on trees. This pass attempts to rename compiler
temporaries to other variables at copy locations, usually resulting in
variable names which more closely resemble the original variables. This flag
is enabled by default at @option{-O} and higher.
@item -ftree-ter
+@opindex ftree-ter
Perform temporary expression replacement during the SSA->normal phase. Single
use/single def temporaries are replaced at their use location with their
defining expression. This results in non-GIMPLE code, but gives the expanders
@@ -5772,6 +5801,7 @@
enabled by default at @option{-O} and higher.
@item -ftree-vectorize
+@opindex ftree-vectorize
Perform loop vectorization on trees.
@item -ftree-vect-loop-version
@@ -5784,9 +5814,11 @@
except at level @option{-Os} where it is disabled.
@item -fvect-cost-model
+@opindex fvect-cost-model
Enable cost model for vectorization.
@item -ftree-vrp
+@opindex ftree-vrp
Perform Value Range Propagation on trees. This is similar to the
constant propagation pass, but instead of values, ranges of values are
propagated. This allows the optimizers to remove unnecessary range
@@ -6222,7 +6254,7 @@
The default is @option{-fno-unsafe-math-optimizations}.
@item -fassociative-math
-@opindex -fassociative-math
+@opindex fassociative-math
Allow re-association of operands in series of floating-point operations.
This violates the ISO C and C++ language standard by possibly changing
@@ -6237,7 +6269,7 @@
The default is @option{-fno-associative-math}.
@item -freciprocal-math
-@opindex -freciprocal-math
+@opindex freciprocal-math
Allow the reciprocal of a value to be used instead of dividing by
the value if this enables optimizations. For example @code{x / y}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [doc] cleanups for optimization options in invoke.texi
2007-10-18 19:13 [doc] cleanups for optimization options in invoke.texi Janis Johnson
@ 2007-10-20 20:11 ` Gerald Pfeifer
2007-10-23 3:15 ` Janis Johnson
0 siblings, 1 reply; 5+ messages in thread
From: Gerald Pfeifer @ 2007-10-20 20:11 UTC (permalink / raw)
To: Janis Johnson; +Cc: gcc-patches
Hi Janis,
On Thu, 18 Oct 2007, Janis Johnson wrote:
> This patch cleans up several little things for optimization options in
> the GCC Manual. Tested with make dvi/info/make. OK for mainline?
> Should I backport it to 4.2, 4.1?
thanks for working on this. Yes, as far as applicable it definitely
would be good to also backport this set of fixes to the 4.2 branch and
also 4.1 would be desirable.
> 2007-10-18 Janis Johnson <janis187@us.ibm.com>
>
> * doc/invoke.texi (Optimization Options): In summary, show that
> falign-* and -fsched-stalled-insns options take an optional value
> and that -ftree-parallelize-loops takes a value; add opindex for
> several optimization options; fix types in opindex for several
> others; in description for -fsched-stalled-insns, show it with
> and without a value.
When it comes to the name of functions in ChangeLog entries, the GNU
Coding Conventions advise not to use wild cards or regular expressions;
I don't think command-line options are explicitly covered, but following
the spirit we probably have to spell those out as well.
Using full stops instead of semicolons will make the changelog easier to
parse, and I believe "type" is a typo for "typo"? ;-)
> --fsched-stalled-insns=@var{n} -fsched-stalled-insns-dep=@var{n} @gol
> +-fsched-stalled-insns[=@var{n}] -fsched-stalled-insns-dep=@var{n} @gol
As far as I can see the parameter is optional also in the case of
-fsched-stalled-insns-dep?
> -Define how many insns (if any) can be moved prematurely from the queue
> +Define how many insns (if any) can be removed prematurely from the queue
> of stalled insns into the ready list, during the second scheduling pass.
Would't "moved" be better here than "removed" since the second half of
the sentence says "into the ready list")? If so, we may want to adjust
this in the following two new sentences added by your patch.
The patch is fine with these changes.
Thanks,
Gerald
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [doc] cleanups for optimization options in invoke.texi
2007-10-20 20:11 ` Gerald Pfeifer
@ 2007-10-23 3:15 ` Janis Johnson
2007-11-02 12:21 ` Jakub Jelinek
0 siblings, 1 reply; 5+ messages in thread
From: Janis Johnson @ 2007-10-23 3:15 UTC (permalink / raw)
To: Gerald Pfeifer; +Cc: gcc-patches
On Sat, 2007-10-20 at 17:35 +0200, Gerald Pfeifer wrote:
> Hi Janis,
>
> On Thu, 18 Oct 2007, Janis Johnson wrote:
> > This patch cleans up several little things for optimization options in
> > the GCC Manual. Tested with make dvi/info/make. OK for mainline?
> > Should I backport it to 4.2, 4.1?
>
> thanks for working on this. Yes, as far as applicable it definitely
> would be good to also backport this set of fixes to the 4.2 branch and
> also 4.1 would be desirable.
Thanks for the review, here's what I checked into mainline:
2007-10-22 Janis Johnson <janis187@us.ibm.com>
* doc/invoke.texi (Optimization Options): In the summary, show
that the value for options -falign-jumps, -falign-labels,
-falign-loops, -falign-functions, -fsched-stalled-insns, and
-fsched-stalled-insns-dep is optional. In the summary, show that
-fsched-stalled-insns takes an optional argument and that
-fparallelize-loops takes an argument. Add opindex for several
optimization options, and fix typos in the opindex commands for
several others. In the descriptions for -fsched-stalled-insns
and -fsched-stalled-insns-dep, show the options with and without
values.
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi (revision 129552)
+++ gcc/doc/invoke.texi (working copy)
@@ -315,8 +315,8 @@
@item Optimization Options
@xref{Optimize Options,,Options that Control Optimization}.
-@gccoptlist{-falign-functions=@var{n} -falign-jumps=@var{n} @gol
--falign-labels=@var{n} -falign-loops=@var{n} @gol
+@gccoptlist{-falign-functions[=@var{n}] -falign-jumps[=@var{n}] @gol
+-falign-labels[=@var{n}] -falign-loops[=@var{n}] @gol
-fbounds-check -fmudflap -fmudflapth -fmudflapir @gol
-fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize @gol
-fbranch-target-load-optimize2 -fbtr-bb-exclusive @gol
@@ -347,7 +347,7 @@
-fschedule-insns -fschedule-insns2 @gol
-fno-sched-interblock -fno-sched-spec -fsched-spec-load @gol
-fsched-spec-load-dangerous @gol
--fsched-stalled-insns=@var{n} -fsched-stalled-insns-dep=@var{n} @gol
+-fsched-stalled-insns[=@var{n}] -fsched-stalled-insns-dep[=@var{n}] @gol
-fsched2-use-superblocks @gol
-fsched2-use-traces -fsee -freschedule-modulo-scheduled-loops @gol
-fsection-anchors -fsignaling-nans -fsingle-precision-constant @gol
@@ -358,7 +358,7 @@
-fvariable-expansion-in-unroller -ftree-reassoc @gol
-ftree-pre -ftree-ccp -ftree-dce -ftree-loop-optimize @gol
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol
--fcheck-data-deps -ftree-parallelize-loops @gol
+-fcheck-data-deps -ftree-parallelize-loops=@var{n} @gol
-ftree-dominator-opts -ftree-dse -ftree-copyrename -ftree-sink @gol
-ftree-ch -ftree-sra -ftree-ter -ftree-fre -ftree-vectorize @gol
-ftree-vect-loop-version -fvect-cost-model -ftree-salias -fipa-pta -fweb @gol
@@ -5277,6 +5277,7 @@
optimization is turned on, use the @option{-fno-keep-static-consts} option.
@item -fmerge-constants
+@opindex fmerge-constants
Attempt to merge identical constants (string constants and floating point
constants) across compilation units.
@@ -5287,6 +5288,7 @@
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fmerge-all-constants
+@opindex fmerge-all-constants
Attempt to merge identical constants and identical variables.
This option implies @option{-fmerge-constants}. In addition to
@@ -5479,14 +5481,14 @@
if it finds this kind of loop.
@item -fcrossjumping
-@opindex crossjumping
+@opindex fcrossjumping
Perform cross-jumping transformation. This transformation unifies equivalent code and save code size. The
resulting code may or may not perform better than without cross-jumping.
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion
-@opindex if-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
some tricks doable by standard arithmetics. The use of conditional execution
@@ -5495,7 +5497,7 @@
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fif-conversion2
-@opindex if-conversion2
+@opindex fif-conversion2
Use conditional execution (where available) to transform conditional jumps into
branch-less equivalents.
@@ -5586,17 +5588,27 @@
sense when scheduling before register allocation, i.e.@: with
@option{-fschedule-insns} or at @option{-O2} or higher.
-@item -fsched-stalled-insns=@var{n}
+@item -fsched-stalled-insns
+@itemx -fsched-stalled-insns=@var{n}
@opindex fsched-stalled-insns
Define how many insns (if any) can be moved prematurely from the queue
of stalled insns into the ready list, during the second scheduling pass.
+@option{-fno-fsched-stalled-insns} and @option{-fsched-stalled-insns=0}
+are equivalent and mean that no insns will be moved prematurely.
+If @var{n} is unspecified then there is no limit on how many queued
+insns can be moved prematurely.
-@item -fsched-stalled-insns-dep=@var{n}
+@item -fsched-stalled-insns-dep
+@itemx -fsched-stalled-insns-dep=@var{n}
@opindex fsched-stalled-insns-dep
Define how many insn groups (cycles) will be examined for a dependency
on a stalled insn that is candidate for premature removal from the queue
-of stalled insns. Has an effect only during the second scheduling pass,
+of stalled insns. This has an effect only during the second scheduling pass,
and only if @option{-fsched-stalled-insns} is used and its value is not zero.
+@option{-fno-sched-stalled-insns-dep} is equivalent to
+@option{-fsched-stalled-insns-dep=0}.
+@option{-fsched-stalled-insns-dep} without a value is equivalent to
+@option{-fsched-stalled-insns-dep=1}.
@item -fsched2-use-superblocks
@opindex fsched2-use-superblocks
@@ -5628,7 +5640,7 @@
ones to optimal placement using LCM.
@item -freschedule-modulo-scheduled-loops
-@opindex fscheduling-in-modulo-scheduled-loops
+@opindex freschedule-modulo-scheduled-loops
The modulo scheduling comes before the traditional scheduling, if a loop
was modulo scheduled we may want to prevent the later scheduling passes
from changing its schedule, we use this option to control that.
@@ -5646,14 +5658,17 @@
Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -ftree-reassoc
+@opindex ftree-reassoc
Perform Reassociation on trees This flag is enabled by default
at @option{-O} and higher.
@item -ftree-pre
+@opindex ftree-pre
Perform Partial Redundancy Elimination (PRE) on trees. This flag is
enabled by default at @option{-O2} and @option{-O3}.
@item -ftree-fre
+@opindex ftree-fre
Perform Full Redundancy Elimination (FRE) on trees. The difference
between FRE and PRE is that FRE only considers expressions
that are computed on all paths leading to the redundant computation.
@@ -5661,43 +5676,52 @@
This flag is enabled by default at @option{-O} and higher.
@item -ftree-copy-prop
+@opindex ftree-copy-prop
Perform copy propagation on trees. This pass eliminates unnecessary
copy operations. This flag is enabled by default at @option{-O} and
higher.
@item -ftree-store-copy-prop
+@opindex ftree-store-copy-prop
Perform copy propagation of memory loads and stores. This pass
eliminates unnecessary copy operations in memory references
(structures, global variables, arrays, etc). This flag is enabled by
default at @option{-O2} and higher.
@item -ftree-salias
+@opindex ftree-salias
Perform structural alias analysis on trees. This flag
is enabled by default at @option{-O} and higher.
@item -fipa-pta
+@opindex fipa-pta
Perform interprocedural pointer analysis.
@item -ftree-sink
+@opindex ftree-sink
Perform forward store motion on trees. This flag is
enabled by default at @option{-O} and higher.
@item -ftree-ccp
+@opindex ftree-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass only operates on local scalar variables and is enabled by default
at @option{-O} and higher.
@item -ftree-store-ccp
+@opindex ftree-store-ccp
Perform sparse conditional constant propagation (CCP) on trees. This
pass operates on both local scalar variables and memory stores and
loads (global variables, structures, arrays, etc). This flag is
enabled by default at @option{-O2} and higher.
@item -ftree-dce
+@opindex ftree-dce
Perform dead code elimination (DCE) on trees. This flag is enabled by
default at @option{-O} and higher.
@item -ftree-dominator-opts
+@opindex ftree-dominator-opts
Perform a variety of simple scalar cleanups (constant/copy
propagation, redundancy elimination, range propagation and expression
simplification) based on a dominator tree traversal. This also
@@ -5712,24 +5736,29 @@
flag is enabled by default at @option{-O} and higher.
@item -ftree-ch
+@opindex ftree-ch
Perform loop header copying on trees. This is beneficial since it increases
effectiveness of code motion optimizations. It also saves one jump. This flag
is enabled by default at @option{-O} and higher. It is not enabled
for @option{-Os}, since it usually increases code size.
@item -ftree-loop-optimize
+@opindex ftree-loop-optimize
Perform loop optimizations on trees. This flag is enabled by default
at @option{-O} and higher.
@item -ftree-loop-linear
+@opindex ftree-loop-linear
Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
@item -fcheck-data-deps
+@opindex fcheck-data-deps
Compare the results of several data dependence analyzers. This option
is used for debugging the data dependence analyzers.
@item -ftree-loop-im
+@opindex ftree-loop-im
Perform loop invariant motion on trees. This pass moves only invariants that
would be hard to handle at RTL level (function calls, operations that expand to
nontrivial sequences of insns). With @option{-funswitch-loops} it also moves
@@ -5738,12 +5767,14 @@
store motion.
@item -ftree-loop-ivcanon
+@opindex ftree-loop-ivcanon
Create a canonical counter for number of iterations in the loop for that
determining number of iterations requires complicated analysis. Later
optimizations then may determine the number easily. Useful especially
in connection with unrolling.
@item -fivopts
+@opindex fivopts
Perform induction variable optimizations (strength reduction, induction
variable merging and induction variable elimination) on trees.
@@ -5756,17 +5787,20 @@
rather than constrained e.g. by memory bandwidth.
@item -ftree-sra
+@opindex ftree-sra
Perform scalar replacement of aggregates. This pass replaces structure
references with scalars to prevent committing structures to memory too
early. This flag is enabled by default at @option{-O} and higher.
@item -ftree-copyrename
+@opindex ftree-copyrename
Perform copy renaming on trees. This pass attempts to rename compiler
temporaries to other variables at copy locations, usually resulting in
variable names which more closely resemble the original variables. This flag
is enabled by default at @option{-O} and higher.
@item -ftree-ter
+@opindex ftree-ter
Perform temporary expression replacement during the SSA->normal phase. Single
use/single def temporaries are replaced at their use location with their
defining expression. This results in non-GIMPLE code, but gives the expanders
@@ -5774,6 +5808,7 @@
enabled by default at @option{-O} and higher.
@item -ftree-vectorize
+@opindex ftree-vectorize
Perform loop vectorization on trees.
@item -ftree-vect-loop-version
@@ -5786,9 +5821,11 @@
except at level @option{-Os} where it is disabled.
@item -fvect-cost-model
+@opindex fvect-cost-model
Enable cost model for vectorization.
@item -ftree-vrp
+@opindex ftree-vrp
Perform Value Range Propagation on trees. This is similar to the
constant propagation pass, but instead of values, ranges of values are
propagated. This allows the optimizers to remove unnecessary range
@@ -6224,7 +6261,7 @@
The default is @option{-fno-unsafe-math-optimizations}.
@item -fassociative-math
-@opindex -fassociative-math
+@opindex fassociative-math
Allow re-association of operands in series of floating-point operations.
This violates the ISO C and C++ language standard by possibly changing
@@ -6239,7 +6276,7 @@
The default is @option{-fno-associative-math}.
@item -freciprocal-math
-@opindex -freciprocal-math
+@opindex freciprocal-math
Allow the reciprocal of a value to be used instead of dividing by
the value if this enables optimizations. For example @code{x / y}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [doc] cleanups for optimization options in invoke.texi
2007-10-23 3:15 ` Janis Johnson
@ 2007-11-02 12:21 ` Jakub Jelinek
2007-11-13 22:13 ` Diego Novillo
0 siblings, 1 reply; 5+ messages in thread
From: Jakub Jelinek @ 2007-11-02 12:21 UTC (permalink / raw)
To: Janis Johnson; +Cc: Gerald Pfeifer, gcc-patches
On Mon, Oct 22, 2007 at 04:24:01PM -0700, Janis Johnson wrote:
> 2007-10-22 Janis Johnson <janis187@us.ibm.com>
>
> * doc/invoke.texi (Optimization Options): In the summary, show
> that the value for options -falign-jumps, -falign-labels,
> -falign-loops, -falign-functions, -fsched-stalled-insns, and
> -fsched-stalled-insns-dep is optional. In the summary, show that
> -fsched-stalled-insns takes an optional argument and that
> -fparallelize-loops takes an argument. Add opindex for several
> optimization options, and fix typos in the opindex commands for
> several others. In the descriptions for -fsched-stalled-insns
> and -fsched-stalled-insns-dep, show the options with and without
> values.
The description of -fsched-stalled-insns doesn't match what the compiler
actually does. -fno-sched-stalled-insns (invoke.texi has there an extra
f) means what is written, but -fsched-stalled-insns=0 means infinity,
not zero and -fsched-stalled-insns without argument is the same as
-fsched-stalled-insns=1.
Ok for trunk?
2007-11-02 Jakub Jelinek <jakub@redhat.com>
* doc/invoke.texi: Fix description of -fsched-stalled-insns=0
and -fsched-stalled-insns.
--- gcc/doc/invoke.texi.jj 2007-11-01 20:48:56.000000000 +0100
+++ gcc/doc/invoke.texi 2007-11-02 13:14:10.000000000 +0100
@@ -5601,10 +5601,11 @@ sense when scheduling before register al
@opindex fsched-stalled-insns
Define how many insns (if any) can be moved prematurely from the queue
of stalled insns into the ready list, during the second scheduling pass.
-@option{-fno-fsched-stalled-insns} and @option{-fsched-stalled-insns=0}
-are equivalent and mean that no insns will be moved prematurely.
-If @var{n} is unspecified then there is no limit on how many queued
-insns can be moved prematurely.
+@option{-fno-sched-stalled-insns} means that no insns will be moved
+prematurely, @option{-fsched-stalled-insns=0} means there is no limit
+on how many queued insns can be moved prematurely.
+@option{-fsched-stalled-insns} without a value is equivalent to
+@option{-fsched-stalled-insns=1}.
@item -fsched-stalled-insns-dep
@itemx -fsched-stalled-insns-dep=@var{n}
@@ -5612,7 +5613,7 @@ insns can be moved prematurely.
Define how many insn groups (cycles) will be examined for a dependency
on a stalled insn that is candidate for premature removal from the queue
of stalled insns. This has an effect only during the second scheduling pass,
-and only if @option{-fsched-stalled-insns} is used and its value is not zero.
+and only if @option{-fsched-stalled-insns} is used.
@option{-fno-sched-stalled-insns-dep} is equivalent to
@option{-fsched-stalled-insns-dep=0}.
@option{-fsched-stalled-insns-dep} without a value is equivalent to
Jakub
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [doc] cleanups for optimization options in invoke.texi
2007-11-02 12:21 ` Jakub Jelinek
@ 2007-11-13 22:13 ` Diego Novillo
0 siblings, 0 replies; 5+ messages in thread
From: Diego Novillo @ 2007-11-13 22:13 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Janis Johnson, Gerald Pfeifer, gcc-patches
Jakub Jelinek wrote:
> 2007-11-02 Jakub Jelinek <jakub@redhat.com>
>
> * doc/invoke.texi: Fix description of -fsched-stalled-insns=0
> and -fsched-stalled-insns.
OK.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-11-13 20:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-18 19:13 [doc] cleanups for optimization options in invoke.texi Janis Johnson
2007-10-20 20:11 ` Gerald Pfeifer
2007-10-23 3:15 ` Janis Johnson
2007-11-02 12:21 ` Jakub Jelinek
2007-11-13 22:13 ` Diego Novillo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).