summaryrefslogtreecommitdiffstats
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-28 03:35:22 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-08-28 03:35:22 +0000
commita539e2e603dc2c55bc70761abad51129c1be1a9d (patch)
tree480e183f65e682922ade7ab74d0bbc0d16008908 /gcc/loop.c
parent240640517a6fa2ce461b21e8809a98e7a7ec74c8 (diff)
downloadppe42-gcc-a539e2e603dc2c55bc70761abad51129c1be1a9d.tar.gz
ppe42-gcc-a539e2e603dc2c55bc70761abad51129c1be1a9d.zip
* 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 :-) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14987 138bc75d-0d04-0410-961f-82ee72b054a4
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 5e0d1d1dac6..2b4af61b574 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,
OpenPOWER on IntegriCloud