diff options
author | Steven Bosscher <stevenb.gcc@gmail.com> | 2006-02-26 20:23:40 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2006-02-26 20:23:40 +0000 |
commit | 37818e7cec777ac18d89ec448cb94603d3ec5c7f (patch) | |
tree | 17497b7fe2c1670f29453859c0c2bf34edca6ec2 | |
parent | 74fe790bfd431c25d77bca1bbe6df6d5d6eb1c82 (diff) | |
download | gcc-37818e7cec777ac18d89ec448cb94603d3ec5c7f.tar.gz |
common.opt (-floop-optimize, [...]): Remove.
gcc/
* 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.
From-SVN: r111459
-rw-r--r-- | gcc/ChangeLog | 18 | ||||
-rw-r--r-- | gcc/Makefile.in | 7 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 33 | ||||
-rw-r--r-- | gcc/common.opt | 8 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 21 | ||||
-rw-r--r-- | gcc/opts.c | 10 | ||||
-rw-r--r-- | gcc/passes.c | 1 | ||||
-rw-r--r-- | gcc/predict.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.robertl/eb132.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/20031201-1.c | 2 | ||||
-rw-r--r-- | gcc/toplev.c | 1 | ||||
-rw-r--r-- | gcc/toplev.h | 1 | ||||
-rw-r--r-- | gcc/tree-pass.h | 1 |
14 files changed, 31 insertions, 84 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38e3c59600a..c2e563914f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 59fdd4f0fc5..0cd1bec491a 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -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) diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index c2c262c6b64..0e67415e81c 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -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; diff --git a/gcc/common.opt b/gcc/common.opt index 36e52fcaefc..4229f147c2c 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 6a385821321..17efb6c1679 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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 diff --git a/gcc/opts.c b/gcc/opts.c index a5dc609aa45..ce0a5a92a00 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -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: diff --git a/gcc/passes.c b/gcc/passes.c index 43efc7f88f0..4b30d57e413 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -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); diff --git a/gcc/predict.c b/gcc/predict.c index dd76496e45e..8555982e072 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -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 (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a93b73c6637..68924f56938 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C index 1a5b45aec48..e5992aa66cb 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C @@ -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. diff --git a/gcc/testsuite/gcc.dg/20031201-1.c b/gcc/testsuite/gcc.dg/20031201-1.c index e6ea70b01c4..91f2d9ddf7d 100644 --- a/gcc/testsuite/gcc.dg/20031201-1.c +++ b/gcc/testsuite/gcc.dg/20031201-1.c @@ -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; diff --git a/gcc/toplev.c b/gcc/toplev.c index bd8260b8c6d..fab180db83d 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1833,7 +1833,6 @@ backend_init (void) init_regs (); init_fake_stack_mems (); init_alias_once (); - init_loop (); init_reload (); init_varasm_once (); diff --git a/gcc/toplev.h b/gcc/toplev.h index 35d53eb8d6c..c935f7ee797 100644 --- a/gcc/toplev.h +++ b/gcc/toplev.h @@ -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; diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index a538d5baab4..c34e198c5b7 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -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; |