diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2e9a88f7cfd777da8135fd701dc1ef78f696b31..413d150de61dc304045be9ccd14aa86ef12daea5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +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 diff --git a/gcc/common.opt b/gcc/common.opt index d16b9977c93a91a966bd9c66e4ccf0c55f5c352a..f8077ae37517036c0377bb0ee0598f69579a328f 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -555,10 +555,6 @@ floop-optimize 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 @@ -587,7 +583,7 @@ Common Report Var(flag_modulo_sched) 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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 1cbbcbdaa0d1b8c508afdd686053d32bf5bd2028..1384562b98560af8faace68710d51d9a33181bc9 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -315,7 +315,7 @@ Objective-C and Objective-C++ Dialects}. -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 @@ -4832,12 +4832,6 @@ exit test conditions and optionally do strength-reduction as well. 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 diff --git a/gcc/loop-init.c b/gcc/loop-init.c index 44f02b704c9cd5f475048bc8cc4de66aaaa290c4..51ad1dad3785b04651e7b857a6086e18f8455ce7 100644 --- a/gcc/loop-init.c +++ b/gcc/loop-init.c @@ -133,12 +133,15 @@ loop_optimizer_finalize (struct loops *loops) 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 = diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b158d4a292da425ccd3bb3381b8b2dd66967eef8..be9824e030c1f041158777ee7eeeb20e895952c0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +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. diff --git a/gcc/testsuite/gcc.dg/20050105-1.c b/gcc/testsuite/gcc.dg/20050105-1.c index 46a742ffe63ab938225ec43e5a45aed424ab95fa..58a75150bdb1a637ff4b49a4a04ea210111e317a 100644 --- a/gcc/testsuite/gcc.dg/20050105-1.c +++ b/gcc/testsuite/gcc.dg/20050105-1.c @@ -1,6 +1,6 @@ /* PR rtl-optimization/18861 */ /* { dg-do compile } */ -/* { dg-options "-O2 -floop-optimize2" } */ +/* { dg-options "-O2" } */ extern void abort (void); diff --git a/gcc/toplev.c b/gcc/toplev.c index 9e7588e8da3af0300e2aefcaa2ce9d70f4e507a2..013ce6e7a678214ada2920f63fd63fcc1540453f 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1568,19 +1568,6 @@ process_options (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)