OSDN Git Service

gcc/
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Feb 2006 20:23:40 +0000 (20:23 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 26 Feb 2006 20:23:40 +0000 (20:23 +0000)
* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
* tree-pass.h (pass_loop_optimize): Remove.
* passes.c (pass_loop_optimize): Never run it.
* toplev.c (backend_init): Don't call init_loop.
* opts.c (flag_loop_optimize_set): Remove.
(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
(common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
the old RTL loop optimizer when profiling enabled.
* predict.c (tree_estimate_probability): Always strip builtin_expect.
* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
pre-headers for the sake of the old RTL loop optimizer.
* Makefile.in: Remove all references to loop.o.

* doc/invoke.texi: Remove all references to -floop-optimize
and -frerun-loop-opt.

testsuite/
* gcc.dg/20031201-1.c: Don't use -frerun-loop-opt.
* g++.old-deja/g++.robertl/eb132.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111459 138bc75d-0d04-0410-961f-82ee72b054a4

14 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/cfgcleanup.c
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts.c
gcc/passes.c
gcc/predict.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.robertl/eb132.C
gcc/testsuite/gcc.dg/20031201-1.c
gcc/toplev.c
gcc/toplev.h
gcc/tree-pass.h

index 38e3c59..c2e5639 100644 (file)
@@ -1,3 +1,21 @@
+2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
+       * tree-pass.h (pass_loop_optimize): Remove.
+       * passes.c (pass_loop_optimize): Never run it.
+       * toplev.c (backend_init): Don't call init_loop.
+       * opts.c (flag_loop_optimize_set): Remove.
+       (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
+       (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
+       the old RTL loop optimizer when profiling enabled.
+       * predict.c (tree_estimate_probability): Always strip builtin_expect.
+       * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
+       pre-headers for the sake of the old RTL loop optimizer.
+       * Makefile.in: Remove all references to loop.o.
+
+       * doc/invoke.texi: Remove all references to -floop-optimize
+       and -frerun-loop-opt.
+
 2006-02-26  Zack Weinberg  <zackw@panix.com>
 
        * doc/md.texi (Machine Constraints): Refer to all files with paths
index 59fdd4f..0cd1bec 100644 (file)
@@ -981,7 +981,7 @@ OBJS-common = \
  haifa-sched.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o insn-modes.o    \
  insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o      \
  integrate.o intl.o jump.o  langhooks.o lcm.o lists.o local-alloc.o       \
loop.o mode-switching.o modulo-sched.o optabs.o options.o opts.o         \
mode-switching.o modulo-sched.o optabs.o options.o opts.o        \
  params.o postreload.o postreload-gcse.o predict.o                        \
  insn-preds.o insn-automata.o pointer-set.o                               \
  print-rtl.o print-tree.o profile.o value-prof.o var-tracking.o                   \
@@ -2371,11 +2371,6 @@ value-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(RECOG_H) insn-config.h $(OPTABS_H) $(REGS_H) $(GGC_H) $(DIAGNOSTIC_H) \
    $(TREE_H) $(COVERAGE_H) $(RTL_H) $(GCOV_IO_H) $(TREE_FLOW_H) \
    tree-flow-inline.h timevar.h tree-pass.h
-loop.o : loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
-   $(FLAGS_H) insn-config.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) \
-   real.h $(PREDICT_H) $(BASIC_BLOCK_H) $(FUNCTION_H) $(CFGLOOP_H) \
-   toplev.h except.h cselib.h $(OPTABS_H) $(TM_P_H) $(GGC_H) insn-flags.h \
-   timevar.h tree-pass.h
 loop-doloop.o : loop-doloop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(RTL_H) $(FLAGS_H) $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) \
    toplev.h $(CFGLOOP_H) output.h $(PARAMS_H)
index c2c262c..0e67415 100644 (file)
@@ -516,39 +516,6 @@ try_forward_edges (int mode, basic_block b)
          if (!new_target)
            break;
 
-         /* Avoid killing of loop pre-headers, as it is the place loop
-            optimizer wants to hoist code to.
-
-            For fallthru forwarders, the LOOP_BEG note must appear between
-            the header of block and CODE_LABEL of the loop, for non forwarders
-            it must appear before the JUMP_INSN.  */
-         if ((mode & CLEANUP_PRE_LOOP) && optimize && flag_loop_optimize)
-           {
-             rtx insn = (EDGE_SUCC (target, 0)->flags & EDGE_FALLTHRU
-                         ? BB_HEAD (target) : prev_nonnote_insn (BB_END (target)));
-
-             if (!NOTE_P (insn))
-               insn = NEXT_INSN (insn);
-
-             for (; insn && !LABEL_P (insn) && !INSN_P (insn);
-                  insn = NEXT_INSN (insn))
-               if (NOTE_P (insn)
-                   && NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG)
-                 break;
-
-             if (insn && NOTE_P (insn))
-               break;
-
-             /* Do not clean up branches to just past the end of a loop
-                at this time; it can mess up the loop optimizer's
-                recognition of some patterns.  */
-
-             insn = PREV_INSN (BB_HEAD (target));
-             if (insn && NOTE_P (insn)
-                   && NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
-               break;
-           }
-
          counter++;
          target = new_target;
          threaded |= new_target_threaded;
index 36e52fc..4229f14 100644 (file)
@@ -555,10 +555,6 @@ fleading-underscore
 Common Report Var(flag_leading_underscore) Init(-1)
 Give external symbols a leading underscore
 
-floop-optimize
-Common Report Var(flag_loop_optimize)
-Perform loop optimizations
-
 fmath-errno
 Common Report Var(flag_errno_math) Init(1)
 Set errno after built-in math functions
@@ -725,10 +721,6 @@ frerun-cse-after-loop
 Common Report Var(flag_rerun_cse_after_loop) Init(2)
 Add a common subexpression elimination pass after loop optimizations
 
-frerun-loop-opt
-Common Report Var(flag_rerun_loop_opt)
-Run the loop optimizer twice
-
 frounding-math
 Common Report Var(flag_rounding_math)
 Disable optimizations that assume default FP rounding behavior
index 6a38582..17efb6c 100644 (file)
@@ -310,7 +310,7 @@ Objective-C and Objective-C++ Dialects}.
 -fexpensive-optimizations  -ffast-math  -ffloat-store @gol
 -fforce-addr  -ffunction-sections @gol
 -fgcse  -fgcse-lm  -fgcse-sm  -fgcse-las  -fgcse-after-reload @gol
--floop-optimize -fcrossjumping  -fif-conversion  -fif-conversion2 @gol
+-fcrossjumping  -fif-conversion  -fif-conversion2 @gol
 -finline-functions  -finline-functions-called-once @gol
 -finline-limit=@var{n}  -fkeep-inline-functions @gol
 -fkeep-static-consts  -fmerge-constants  -fmerge-all-constants @gol
@@ -4401,7 +4401,6 @@ compilation time.
 -fdelayed-branch @gol
 -fguess-branch-probability @gol
 -fcprop-registers @gol
--floop-optimize @gol
 -fif-conversion @gol
 -fif-conversion2 @gol
 -ftree-ccp @gol
@@ -4775,12 +4774,6 @@ performed.
 
 Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
 
-@item -frerun-loop-opt
-@opindex frerun-loop-opt
-Run the loop optimizer twice.
-
-Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
-
 @item -fgcse
 @opindex fgcse
 Perform a global common subexpression elimination pass.
@@ -4826,13 +4819,6 @@ When @option{-fgcse-after-reload} is enabled, a redundant load elimination
 pass is performed after reload.  The purpose of this pass is to cleanup
 redundant spilling.
 
-@item -floop-optimize
-@opindex floop-optimize
-Perform loop optimizations: move constant expressions out of loops, simplify
-exit test conditions and optionally do strength-reduction as well.
-
-Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
-
 @item -funsafe-loop-optimizations
 @opindex funsafe-loop-optimizations
 If given, the loop optimizer will assume that loop indices do not
@@ -5452,8 +5438,7 @@ Enable profile feedback directed optimizations, and optimizations
 generally profitable only with profile feedback available.
 
 The following options are enabled: @code{-fbranch-probabilities}, @code{-fvpt},
-@code{-funroll-loops}, @code{-fpeel-loops}, @code{-ftracer},
-@code{-fno-loop-optimize}.
+@code{-funroll-loops}, @code{-fpeel-loops}, @code{-ftracer}
 
 @end table
 
@@ -5705,7 +5690,7 @@ Enabled with @option{-fprofile-use}.
 
 @item -fmove-loop-invariants
 @opindex fmove-loop-invariants
-Enables the loop invariant motion pass in the new loop optimizer.  Enabled
+Enables the loop invariant motion pass in the RTL loop optimizer.  Enabled
 at level @option{-O1}
 
 @item -funswitch-loops
index a5dc609..ce0a5a9 100644 (file)
@@ -100,7 +100,6 @@ static bool profile_arc_flag_set, flag_profile_values_set;
 static bool flag_unroll_loops_set, flag_tracer_set;
 static bool flag_value_profile_transformations_set;
 static bool flag_peel_loops_set, flag_branch_probabilities_set;
-static bool flag_loop_optimize_set;
 
 /* Input file names.  */
 const char **in_fnames;
@@ -526,7 +525,6 @@ decode_options (unsigned int argc, const char **argv)
 #endif
       flag_guess_branch_prob = 1;
       flag_cprop_registers = 1;
-      flag_loop_optimize = 1;
       flag_if_conversion = 1;
       flag_if_conversion2 = 1;
       flag_ipa_pure_const = 1;
@@ -568,7 +566,6 @@ decode_options (unsigned int argc, const char **argv)
       flag_ipa_type_escape = 1;
       flag_strength_reduce = 1;
       flag_rerun_cse_after_loop = 1;
-      flag_rerun_loop_opt = 1;
       flag_caller_saves = 1;
       flag_peephole2 = 1;
 #ifdef INSN_SCHEDULING
@@ -859,10 +856,6 @@ common_handle_option (size_t scode, const char *arg, int value,
       flag_branch_probabilities_set = true;
       break;
 
-    case OPT_floop_optimize:
-      flag_loop_optimize_set = true;
-      break;
-
     case OPT_fcall_used_:
       fix_register (arg, 0, 1);
       break;
@@ -939,9 +932,6 @@ common_handle_option (size_t scode, const char *arg, int value,
         flag_tracer = value;
       if (!flag_value_profile_transformations_set)
         flag_value_profile_transformations = value;
-      /* Old loop optimizer is incompatible with tree profiling.  */
-      if (!flag_loop_optimize_set)
-       flag_loop_optimize = 0;
       break;
 
     case OPT_fprofile_generate:
index 43efc7f..4b30d57 100644 (file)
@@ -633,7 +633,6 @@ init_optimization_passes (void)
   NEXT_PASS (pass_jump2);
   NEXT_PASS (pass_cse);
   NEXT_PASS (pass_gcse);
-  NEXT_PASS (pass_loop_optimize);
   NEXT_PASS (pass_jump_bypass);
   NEXT_PASS (pass_cfg);
   NEXT_PASS (pass_branch_prob);
index dd76496..8555982 100644 (file)
@@ -1387,8 +1387,7 @@ tree_estimate_probability (void)
   FOR_EACH_BB (bb)
     combine_predictions_for_bb (bb);
 
-  if (!flag_loop_optimize)
-    strip_builtin_expect ();
+  strip_builtin_expect ();
   estimate_bb_frequencies (&loops_info);
   free_dominance_info (CDI_POST_DOMINATORS);
   remove_fake_exit_edges ();
index a93b73c..68924f5 100644 (file)
@@ -1,3 +1,8 @@
+2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * gcc.dg/20031201-1.c: Don't use -frerun-loop-opt.
+       * g++.old-deja/g++.robertl/eb132.C: Likewise.
+
 2006-02-26  Roger Sayle  <roger@eyesopen.com>
 
        * gcc.dg/fold-even-1.c: New test case.
index 1a5b45a..e5992aa 100644 (file)
@@ -1,10 +1,10 @@
 // { dg-do assemble  }
-// { dg-options "-O -Wall  -fgcse -frerun-loop-opt" }
+// { dg-options "-O -Wall  -fgcse" }
 // From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 
 // Reported against EGCS snaps 98/06/28.
 //
 // Compilation of this program with the flags g++ -Wall -O -fgcse
-// -frerun-loop-opt or -O2 produces spurious warnings in the standard
+// or -O2 produces spurious warnings in the standard
 // header <std/bastring.h>.
 //
 // They vanish if the declaration of a::b is taken out.
index e6ea70b..91f2d9d 100644 (file)
@@ -4,7 +4,7 @@
    the jump bypassing pass.  */
 
 /* { dg-do compile } */
-/* { dg-options "-O2 -fno-expensive-optimizations -fno-rerun-loop-opt" } */
+/* { dg-options "-O2 -fno-expensive-optimizations" } */
 
 int outbuf[100];
 int outcnt;
index bd8260b..fab180d 100644 (file)
@@ -1833,7 +1833,6 @@ backend_init (void)
   init_regs ();
   init_fake_stack_mems ();
   init_alias_once ();
-  init_loop ();
   init_reload ();
   init_varasm_once ();
 
index 35d53eb..c935f7e 100644 (file)
@@ -118,7 +118,6 @@ extern int target_flags_explicit;
 extern bool user_defined_section_attribute;
 
 /* See toplev.c.  */
-extern int flag_loop_optimize;
 extern int flag_crossjumping;
 extern int flag_if_conversion;
 extern int flag_if_conversion2;
index a538d5b..c34e198 100644 (file)
@@ -332,7 +332,6 @@ extern struct tree_opt_pass pass_instantiate_virtual_regs;
 extern struct tree_opt_pass pass_jump2;
 extern struct tree_opt_pass pass_cse;
 extern struct tree_opt_pass pass_gcse;
-extern struct tree_opt_pass pass_loop_optimize;
 extern struct tree_opt_pass pass_jump_bypass;
 extern struct tree_opt_pass pass_cfg;
 extern struct tree_opt_pass pass_profiling;