From a82484af55cf9d9565eb3d2d583010f20270bb9d Mon Sep 17 00:00:00 2001
From: rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 10 Feb 2006 21:01:10 +0000
Subject: [PATCH] 	* 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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110852 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                     |  9 +++++++++
 gcc/common.opt                    |  6 +-----
 gcc/doc/invoke.texi               |  8 +-------
 gcc/loop-init.c                   |  7 +++++--
 gcc/testsuite/ChangeLog           |  4 ++++
 gcc/testsuite/gcc.dg/20050105-1.c |  2 +-
 gcc/toplev.c                      | 13 -------------
 7 files changed, 21 insertions(+), 28 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f2e9a88f7cfd..413d150de61d 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 d16b9977c93a..f8077ae37517 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 1cbbcbdaa0d1..1384562b9856 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 44f02b704c9c..51ad1dad3785 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 b158d4a292da..be9824e030c1 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 46a742ffe63a..58a75150bdb1 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 9e7588e8da3a..013ce6e7a678 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)
-- 
GitLab