From 01a132bbda35e728c9b8205986668d51c37b1030 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Sat, 8 Feb 2003 15:51:06 +0100 Subject: [PATCH] invoke.texi: Documentation for my previous commit. * doc/invoke.texi: Documentation for my previous commit. * doc/passes.texi: Ditto. From-SVN: r62580 --- gcc/ChangeLog | 5 +++++ gcc/doc/invoke.texi | 16 ++++++++++++++-- gcc/doc/passes.texi | 10 ++++++++-- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 418ff2a5529..8c4afa9fd63 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-02-08 Zdenek Dvorak + + * doc/invoke.texi: Documentation for my previous commit. + * doc/passes.texi: Ditto. + 2003-02-08 Zdenek Dvorak * cfgloop.h (fix_loop_placement, can_duplicate_loop_p, diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ed3334d6e03..c8f0086a423 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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. diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index 9da55d4b452..ae8b92cdff7 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -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