summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-13 09:38:44 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-13 09:38:44 +0000
commit90f1c56314fedb54eee70729cc5b0741749b3d40 (patch)
tree46cadb0d2b158517b4c06e56835052187efbef3c /gcc
parentaf40609c80f82f4033a8321f205258f8a3e5a4f2 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/doc/invoke.texi16
-rw-r--r--gcc/toplev.c10
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. */