aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-08-28 03:35:22 +0000
committerJeff Law <law@gcc.gnu.org>1997-08-27 21:35:22 -0600
commite5eb27e51fe9f28375a7ae5a8a9ed5719968b482 (patch)
tree480e183f65e682922ade7ab74d0bbc0d16008908 /gcc/loop.c
parent73624c403d6bc189395af0c8b7c47c0262d38ca0 (diff)
downloadgcc-e5eb27e51fe9f28375a7ae5a8a9ed5719968b482.zip
gcc-e5eb27e51fe9f28375a7ae5a8a9ed5719968b482.tar.gz
gcc-e5eb27e51fe9f28375a7ae5a8a9ed5719968b482.tar.bz2
flags.h (flag_move_all_movables): Declare.
* flags.h (flag_move_all_movables): Declare. (flag_reduce_all_givs): Likewise. * loop.c (move_movables): Handle flag_move_all_movables. (strength_reduce): Handle flag_reduce_all_givs. * toplev.c (flag_move_all_movables): Define. (flag_reduce_all_givs): Likewise. (f_options): Add -fmove-all-movables and -freduce-all-givs. * invoke.texi: Document new options, including alias stuff that wasn't included last time. Two of the "Tooning" options :-) From-SVN: r14987
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 5e0d1d1..2b4af61 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -1722,6 +1722,7 @@ move_movables (movables, threshold, insn_count, loop_start, end, nregs)
extra cost because something else was already moved. */
if (already_moved[regno]
+ || flag_move_all_movables
|| (threshold * savings * m->lifetime) >= insn_count
|| (m->forces && m->forces->done
&& n_times_used[m->forces->regno] == 1))
@@ -3991,8 +3992,8 @@ strength_reduce (scan_start, end, loop_top, insn_count,
of such giv's whether or not we know they are used after the loop
exit. */
- if (v->lifetime * threshold * benefit < insn_count
- && ! bl->reversed)
+ if ( ! flag_reduce_all_givs && v->lifetime * threshold * benefit < insn_count
+ && ! bl->reversed )
{
if (loop_dump_stream)
fprintf (loop_dump_stream,