diff options
author | Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> | 2004-06-20 23:31:32 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2004-06-20 21:31:32 +0000 |
commit | 5e96277660887473bdc8b1953fcc35aedd092e3a (patch) | |
tree | ba006d95fa2c6cd2214ff0411ebeceffe1b217d0 /gcc/doc/invoke.texi | |
parent | 2e24fa83ab8d4c5c532e98f0fd005e4f20c833fc (diff) | |
download | gcc-5e96277660887473bdc8b1953fcc35aedd092e3a.zip gcc-5e96277660887473bdc8b1953fcc35aedd092e3a.tar.gz gcc-5e96277660887473bdc8b1953fcc35aedd092e3a.tar.bz2 |
loop-invariant.c: New file.
* loop-invariant.c: New file.
* Makefile.in (loop-invariant.o): New.
* cfgloop.h (global_cost_for_size, init_set_costs,
move_loop_invariants): Declare.
* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
functions.
(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
variables.
* common.opt (floop-optimize2, fmove-loop-invariants): New options.
* loop-init.c (loop_optimizer_init): Call init_set_costs.
* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
(rest_of_compilation): Check flag_loop_optimize2.
* toplev.c (process_options): Handle flag_loop_optimize2.
* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
* doc/passes.texi (loop-invariant.c): Document.
From-SVN: r83419
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r-- | gcc/doc/invoke.texi | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 20b4949..2dd2b82 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -290,7 +290,7 @@ in the following sections. -finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol -fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol -fmodulo-sched -fmove-all-movables -fnew-ra -fno-branch-count-reg @gol --fno-default-inline -fno-defer-pop @gol +-fno-default-inline -fno-defer-pop -floop-optimize2 -fmove-loop-invariants @gol -fno-function-cse -fno-guess-branch-probability @gol -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol -funsafe-math-optimizations -ffinite-math-only @gol @@ -4191,6 +4191,12 @@ well. Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}. +@item -floop-optimize2 +@opindex floop-optimize2 +Perform loop optimizations using the new loop optimizer. The optimizations +(loop unrolling, peeling and unswitching, loop invariant motion) are enabled +by separate flags. + @item -fcrossjumping @opindex crossjumping Perform cross-jumping transformation. This transformation unifies equivalent code and save code size. The @@ -4922,6 +4928,11 @@ roll much (from profile feedback). It also turns on complete loop peeling Enabled with @option{-fprofile-use}. +@item -fmove-loop-invariants +@opindex fmove-loop-invariants +Enables the loop invariant motion pass in the new loop optimizer. Enabled +at level @option{-O1} + @item -funswitch-loops @opindex funswitch-loops Move branches with loop invariant conditions out of the loop, with duplicates |