+2004-09-12 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * common.opt: Remove flags -fmove-all-movables and
+ -freduce-all-givs.
+ * loop-invariant.c (find_invariants_to_move):
+ Remove all uses of flag_move_all_movables.
+ * loop.c (move_movables): Remove all uses of
+ flag_move_all_movables.
+ (strength_reduce): Remove all uses of
+ flag_reduce_all_givs.
+ * doc/invoke.texi: Remove documentation of flags
+ -fremove-all-movables and -freduce-all-givs.
+
2004-09-11 Roger Sayle <roger@eyesopen.com>
PR middle-end/17411
Common Report Var(flag_modulo_sched)
Perform SMS based modulo scheduling before the first scheduling pass
-fmove-all-movables
-Common Report Var(flag_move_all_movables)
-Force all loop invariant computations out of loops
-
fmove-loop-invariants
Common Report Var(flag_move_loop_invariants)
Move loop invariant computations out of loops
Common Joined RejectNegative
-frandom-seed=<string> Make compile reproducible using <string>
-freduce-all-givs
-Common Report Var(flag_reduce_all_givs)
-Strength reduce all loop general induction variables
-
freg-struct-return
Common Report Var(flag_pcc_struct_return,0) VarExists
Return small aggregates in registers
-floop-optimize -fcrossjumping -fif-conversion -fif-conversion2 @gol
-finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol
-fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol
--fmodulo-sched -fmove-all-movables -fnew-ra -fno-branch-count-reg @gol
+-fmodulo-sched -fnew-ra -fno-branch-count-reg @gol
-fno-default-inline -fno-defer-pop -floop-optimize2 -fmove-loop-invariants @gol
-fno-function-cse -fno-guess-branch-probability @gol
-fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol
-fomit-frame-pointer -foptimize-register-move @gol
-foptimize-sibling-calls -fprefetch-loop-arrays @gol
-fprofile-generate -fprofile-use @gol
--freduce-all-givs -fregmove -frename-registers @gol
+-fregmove -frename-registers @gol
-freorder-blocks -freorder-blocks-and-partition -freorder-functions @gol
-frerun-cse-after-loop -frerun-loop-opt @gol
-frounding-math -fschedule-insns -fschedule-insns2 @gol
If supported by the target machine, generate instructions to prefetch
memory to improve the performance of loops that access large arrays.
-@item -fmove-all-movables
-@opindex fmove-all-movables
-Forces all invariant computations in loops to be moved
-outside the loop.
-
-@item -freduce-all-givs
-@opindex freduce-all-givs
-Forces all general-induction variables in loops to be
-strength-reduced.
-
-@emph{Note:} When compiling programs written in Fortran,
-@option{-fmove-all-movables} and @option{-freduce-all-givs} are enabled
-by default when you use the optimizer.
-
These options may generate better or worse code; results are highly
dependent on the structure of loops within the source code.
unsigned i, regs_used, n_inv_uses, regs_needed = 0, new_regs;
struct invariant *inv = NULL;
- if (flag_move_all_movables)
- {
- /* This is easy & stupid. */
- for (i = 0; i < VARRAY_ACTIVE_SIZE (invariants); i++)
- {
- inv = VARRAY_GENERIC_PTR_NOGC (invariants, i);
- inv->move = true;
- }
- return;
- }
-
if (!VARRAY_ACTIVE_SIZE (invariants))
return;
extra cost because something else was already moved. */
if (already_moved[regno]
- || flag_move_all_movables
|| (threshold * savings * m->lifetime) >=
(regs->array[regno].moved_once ? insn_count * 2 : insn_count)
|| (m->forces && m->forces->done
of such giv's whether or not we know they are used after the loop
exit. */
- if (! flag_reduce_all_givs
- && v->lifetime * threshold * benefit < insn_count
+ if (v->lifetime * threshold * benefit < insn_count
&& ! bl->reversed)
{
if (loop_dump_stream)