* doc/invoke.texi (-floop-optimize2): Removed.
* toplev.c (process_options): Remove handling of flag_loop_optimize2.
* loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
Test flag_branch_on_count_reg only if HAVE_doloop_end.
* common.opt (floop-optimize2): Removed.
(fmove-loop-invariants): Enabled by default.
* gcc.dg/
20050105-1.c: Do not use -floop-optimize2.
From-SVN: r110852
+2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * doc/invoke.texi (-floop-optimize2): Removed.
+ * toplev.c (process_options): Remove handling of flag_loop_optimize2.
+ * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
+ Test flag_branch_on_count_reg only if HAVE_doloop_end.
+ * common.opt (floop-optimize2): Removed.
+ (fmove-loop-invariants): Enabled by default.
+
2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
* tree-if-conv.c (combine_blocks): Free the result of
Common Report Var(flag_loop_optimize)
Perform loop optimizations
-floop-optimize2
-Common Report Var(flag_loop_optimize2)
-Perform loop optimizations using the new loop optimizer
-
fmath-errno
Common Report Var(flag_errno_math) Init(1)
Set errno after built-in math functions
Perform SMS based modulo scheduling before the first scheduling pass
fmove-loop-invariants
-Common Report Var(flag_move_loop_invariants)
+Common Report Var(flag_move_loop_invariants) Init(1)
Move loop invariant computations out of loops
fmudflap
-finline-limit=@var{n} -fkeep-inline-functions @gol
-fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol
-fmodulo-sched -fno-branch-count-reg @gol
--fno-default-inline -fno-defer-pop -floop-optimize2 -fmove-loop-invariants @gol
+-fno-default-inline -fno-defer-pop -fmove-loop-invariants @gol
-fno-function-cse -fno-guess-branch-probability @gol
-fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol
-funsafe-math-optimizations -funsafe-loop-optimizations -ffinite-math-only @gol
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
-@item -floop-optimize2
-@opindex floop-optimize2
-Perform loop optimizations using the new loop optimizer. The optimizations
-(loop unrolling, peeling and unswitching, loop invariant motion) are enabled
-by separate flags.
-
@item -funsafe-loop-optimizations
@opindex funsafe-loop-optimizations
If given, the loop optimizer will assume that loop indices do not
static bool
gate_handle_loop2 (void)
{
- return (optimize > 0 && flag_loop_optimize2
+ return (optimize > 0
&& (flag_move_loop_invariants
|| flag_unswitch_loops
|| flag_peel_loops
|| flag_unroll_loops
- || flag_branch_on_count_reg));
+#ifdef HAVE_doloop_end
+ || (flag_branch_on_count_reg && HAVE_doloop_end)
+#endif
+ ));
}
struct tree_opt_pass pass_loop2 =
+2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * gcc.dg/20050105-1.c: Do not use -floop-optimize2.
+
2006-02-10 Jeff Law <law@redhat.com>
* gcc.c-torture/compile/pr26213.c: New test.
/* PR rtl-optimization/18861 */
/* { dg-do compile } */
-/* { dg-options "-O2 -floop-optimize2" } */
+/* { dg-options "-O2" } */
extern void abort (void);
if (flag_rename_registers == AUTODETECT_VALUE)
flag_rename_registers = flag_unroll_loops || flag_peel_loops;
- /* If explicitly asked to run new loop optimizer, switch off the old
- one. */
- if (flag_loop_optimize2)
- flag_loop_optimize = 0;
-
- /* Enable new loop optimizer pass if any of its optimizations is called. */
- if (flag_move_loop_invariants
- || flag_unswitch_loops
- || flag_peel_loops
- || flag_unroll_loops
- || flag_branch_on_count_reg)
- flag_loop_optimize2 = 1;
-
if (flag_non_call_exceptions)
flag_asynchronous_unwind_tables = 1;
if (flag_asynchronous_unwind_tables)