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
This commit is contained in:
Steven Bosscher 2006-02-26 20:23:40 +00:00 committed by Steven Bosscher
parent 74fe790bfd
commit 37818e7cec
14 changed files with 31 additions and 84 deletions

View 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

View 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)

View 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;

View 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

View 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

View 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:

View 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);

View 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 ();

View 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.

View 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.

View 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;

View File

@ -1833,7 +1833,6 @@ backend_init (void)
init_regs ();
init_fake_stack_mems ();
init_alias_once ();
init_loop ();
init_reload ();
init_varasm_once ();

View 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;

View 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;