OSDN Git Service

PR rtl-optimization/20376
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Jul 2005 09:38:44 +0000 (09:38 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Jul 2005 09:38:44 +0000 (09:38 +0000)
* 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

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/toplev.c

index 3f3d0fe..fcef3d2 100644 (file)
@@ -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
index 0f509d0..ba355c0 100644 (file)
@@ -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}.
 
index 8e7da03..0250c97 100644 (file)
@@ -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.  */