diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-13 09:38:44 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-13 09:38:44 +0000 |
commit | 90f1c56314fedb54eee70729cc5b0741749b3d40 (patch) | |
tree | 46cadb0d2b158517b4c06e56835052187efbef3c /gcc | |
parent | af40609c80f82f4033a8321f205258f8a3e5a4f2 (diff) | |
download | gcc-90f1c56314fedb54eee70729cc5b0741749b3d40.tar.gz |
PR rtl-optimization/20376
* toplev.c (process_options): Enable -fweb and -frename-registers when
unrolling.
* doc/invoke.texi: Update the information about when -fweb and
-frename-registers are enabled.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101961 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 16 | ||||
-rw-r--r-- | gcc/toplev.c | 10 |
3 files changed, 23 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f3d0feb01e..fcef3d20813 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-07-12 Zdenek Dvorak <dvorakz@suse.cz> + + PR rtl-optimization/20376 + * toplev.c (process_options): Enable -fweb and -frename-registers when + unrolling. + * doc/invoke.texi: Update the information about when -fweb and + -frename-registers are enabled. + 2005-07-12 Andrew Pinski <pinskia@physics.uc.edu> PR tree-opt/21840 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 0f509d0ce7b..ba355c0d046 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -5017,8 +5017,7 @@ the loop is entered. This usually makes programs run more slowly. @opindex -fsplit-ivs-in-unroller Enables expressing of values of induction variables in later iterations of the unrolled loop using the value in the first iteration. This breaks -long dependency chains, thus improving efficiency of the scheduling passes -(for best results, @option{-fweb} should be used as well). +long dependency chains, thus improving efficiency of the scheduling passes. Combination of @option{-fweb} and CSE is often sufficient to obtain the same effect. However in cases the loop body is more complicated than @@ -5260,9 +5259,7 @@ passes, such as CSE, loop optimizer and trivial dead code remover. It can, however, make debugging impossible, since variables will no longer stay in a ``home register''. -Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}, -on targets where the default format for debugging information supports -variable tracking. +Enabled by default with @option{-funroll-loops}. @item -fwhole-program @opindex fwhole-program @@ -5524,7 +5521,7 @@ debug information format adopted by the target, however, it can make debugging impossible, since variables will no longer stay in a ``home register''. -Not enabled by default at any level because it has known bugs. +Enabled by default with @option{-funroll-loops}. @item -ftracer @opindex ftracer @@ -5538,9 +5535,10 @@ Enabled with @option{-fprofile-use}. @opindex funroll-loops Unroll loops whose number of iterations can be determined at compile time or upon entry to the loop. @option{-funroll-loops} implies -@option{-frerun-cse-after-loop}. It also turns on complete loop peeling -(i.e.@: complete removal of loops with small constant number of iterations). -This option makes code larger, and may or may not make it run faster. +@option{-frerun-cse-after-loop}, @option{-fweb} and @option{-frename-registers}. +It also turns on complete loop peeling (i.e.@: complete removal of loops with +small constant number of iterations). This option makes code larger, and may +or may not make it run faster. Enabled with @option{-fprofile-use}. diff --git a/gcc/toplev.c b/gcc/toplev.c index 8e7da03c7e0..0250c97d417 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1530,9 +1530,15 @@ process_options (void) if (flag_unroll_all_loops) flag_unroll_loops = 1; - /* The loop unrolling code assumes that cse will be run after loop. */ + /* The loop unrolling code assumes that cse will be run after loop. + Also enable -fweb and -frename-registers that help scheduling + the unrolled loop. */ if (flag_unroll_loops || flag_peel_loops) - flag_rerun_cse_after_loop = 1; + { + flag_rerun_cse_after_loop = 1; + flag_web = 1; + flag_rename_registers = 1; + } /* If explicitly asked to run new loop optimizer, switch off the old one. */ |