aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry Quinn <jlquinn@optonline.net>2002-12-31 14:43:13 +0000
committerGerald Pfeifer <gerald@gcc.gnu.org>2002-12-31 14:43:13 +0000
commitfad893da140f29cabd16d316c87452d8efd76fc2 (patch)
tree66314343b4455cd802670a9bf4a476c2b0b2b20a /gcc
parenteddcae5a271754fc379c1b499b0a1ec3a86b7ade (diff)
downloadgcc-fad893da140f29cabd16d316c87452d8efd76fc2.zip
gcc-fad893da140f29cabd16d316c87452d8efd76fc2.tar.gz
gcc-fad893da140f29cabd16d316c87452d8efd76fc2.tar.bz2
invoke.texi (Optimization Options): List the options enabled by each -O flag.
* gcc/doc/invoke.texi (Optimization Options): List the options enabled by each -O flag. From-SVN: r60692
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/doc/invoke.texi45
2 files changed, 44 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3f7916b..559534c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-31 Jerry Quinn <jlquinn@optonline.net>
+
+ * gcc/doc/invoke.texi (Optimization Options): List the options
+ enabled by each -O flag.
+
2002-12-31 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
* doc/install.texi (Configuration): Explicitly refer
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index c1bfae4..b0d118c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3390,6 +3390,21 @@ With @option{-O}, the compiler tries to reduce code size and execution
time, without performing any optimizations that take a great deal of
compilation time.
+@option{-O} turns on the following optimization flags:
+@gccoptlist{-fdefer-pop
+-fmerge-constants
+-fthread-jumps
+-floop-optimize
+-fcrossjumping
+-fif-conversion
+-fif-conversion2
+-fdelayed-branch
+-fguess-branch-probability
+-fcprop-registers}
+
+@option{-O} also turns on @option{-fomit-frame-pointer} on machines
+where doing so does not interfere with debugging.
+
@item -O2
@opindex O2
Optimize even more. GCC performs nearly all supported optimizations
@@ -3398,11 +3413,25 @@ perform loop unrolling or function inlining when you specify @option{-O2}.
As compared to @option{-O}, this option increases both compilation time
and the performance of the generated code.
-@option{-O2} turns on all optional optimizations except for loop
-unrolling, function inlining, and register renaming. It also turns on
-the @option{-fforce-mem} and @option{-fstrict-aliasing} option on all
-machines and frame pointer elimination on machines where doing so does
-not interfere with debugging.
+@option{-O2} turns on all optimization flags specified by @option{-O}. It
+also turns on the following optimization flags:
+@gccoptlist{-fforce-mem
+-foptimize-sibling-calls
+-fstrength-reduce
+-fcse-follow-jumps -fcse-skip-blocks
+-frerun-cse-after-loop -frerun-loop-opt
+-fgcse -fgcse-lm -fgcse-sm
+-fdelete-null-pointer-checks
+-fexpensive-optimizations
+-fregmove
+-fschedule-insns -fschedule-insns2
+-fsched-interblock -fsched-spec
+-fcaller-saves
+-fpeephole2
+-freorder-blocks -freorder-functions
+-fstrict-aliasing
+-falign-functions -falign-jumps
+-falign-loops -falign-labels}
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
@@ -3415,7 +3444,7 @@ Optimize yet more. @option{-O3} turns on all optimizations specified by
@item -O0
@opindex O0
-Do not optimize.
+Do not optimize. This is the default.
@item -Os
@opindex Os
@@ -3423,6 +3452,10 @@ Optimize for size. @option{-Os} enables all @option{-O2} optimizations that
do not typically increase code size. It also performs further
optimizations designed to reduce code size.
+@option{-Os} disables the following optimization flags:
+@gccoptlist{-falign-functions -falign-jumps -falign-loops
+-falign-labels -freorder-blocks -fprefetch-loop-arrays}
+
If you use multiple @option{-O} options, with or without level numbers,
the last such option is the one that is effective.
@end table