+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
@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
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
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
@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}.
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. */