invoke.texi: Documentation for my previous commit.
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Sat, 8 Feb 2003 14:51:06 +0000 (15:51 +0100)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Sat, 8 Feb 2003 14:51:06 +0000 (14:51 +0000)
* doc/invoke.texi: Documentation for my previous commit.
* doc/passes.texi: Ditto.

From-SVN: r62580

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/doc/passes.texi

index 418ff2a55295f6b7b474ab237d3899c1848a5b8e..8c4afa9fd637916b5826e431ed26c085e888b5b3 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * doc/invoke.texi: Documentation for my previous commit.
+       * doc/passes.texi: Ditto.
+
 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
        * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
index ed3334d6e0365900fe7b740e8ad5b67ea7a80f14..c8f0086a423497bbdbd5e833dc4aaa21f35d8a11 100644 (file)
@@ -290,7 +290,7 @@ in the following sections.
 -fsched-spec-load-dangerous  -fsignaling-nans @gol
 -fsingle-precision-constant  -fssa -fssa-ccp -fssa-dce @gol
 -fstrength-reduce  -fstrict-aliasing  -ftracer -fthread-jumps @gol
--funroll-all-loops  -funroll-loops  @gol
+-funroll-all-loops  -funroll-loops  -funswitch-loops @gol
 --param @var{name}=@var{value}
 -O  -O0  -O1  -O2  -O3  -Os}
 
@@ -3171,7 +3171,8 @@ Dump after conversion from registers to stack, to @file{@var{file}.31.stack}.
 Dump after local register allocation, to @file{@var{file}.23.lreg}.
 @item L
 @opindex dL
-Dump after loop optimization, to @file{@var{file}.12.loop}.
+Dump after loop optimization passes, to @file{@var{file}.12.loop} and
+@file{@var{file}.18.loop2}.
 @item M
 @opindex dM
 Dump after performing the machine dependent reorganization pass, to
@@ -4270,6 +4271,11 @@ the loop is entered.  This usually makes programs run more slowly.
 @option{-funroll-all-loops} implies the same options as
 @option{-funroll-loops},
 
+@item -funswitch-loops
+@opindex funswitch-loops
+Move branches with loop invariant conditions out of the loop, with duplicates
+of the loop on both branches (modified according to result of the condition).
+
 @item -fprefetch-loop-arrays
 @opindex fprefetch-loop-arrays
 If supported by the target machine, generate instructions to prefetch
@@ -4372,6 +4378,12 @@ 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 loop code is unrolled.
 
+@item max-unswitch-insns
+The maximum number of insns of an unswitched loop.
+
+@item max-unswitch-level
+The maximum number of branches unswitched in a single loop.
+
 @item hot-bb-count-fraction
 Select fraction of the maximal count of repetitions of basic block in program
 given basic block needs to have to be considered hot.
index 9da55d4b452a360a3d77c647fc0ffaf6826094ca..ae8b92cdff72519bdb2dbed60ab46380323c82d0 100644 (file)
@@ -333,10 +333,16 @@ Its source files are @file{loop.c} and @file{unroll.c}, plus the header
 some functions in @file{integrate.c} and the header @file{integrate.h}.
 Loop dependency analysis routines are contained in @file{dependence.c}.
 
+Second loop optimization pass takes care of basic block level optimalizations --
+unswitching loops. The source files are
+@file{cfgloopanal.c} and @file{cfgloopmanip.c} containing generic loop
+analysis and manipulation code, @file{loop-init.c} with initialization and
+finalization code, @file{loop-unswitch.c} for loop unswitching.
+
 @opindex dL
 The option @option{-dL} causes a debugging dump of the RTL code after
-this pass.  This dump file's name is made by appending @samp{.loop} to
-the input file name.
+these passes.  The dump file names are made by appending @samp{.loop} and
+@samp{.loop2} to the input file name.
 
 @cindex jump bypassing
 @item