mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 23:41:28 +08:00
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:
parent
74fe790bfd
commit
37818e7cec
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
10
gcc/opts.c
10
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:
|
||||
|
@ -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);
|
||||
|
@ -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 ();
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -1833,7 +1833,6 @@ backend_init (void)
|
||||
init_regs ();
|
||||
init_fake_stack_mems ();
|
||||
init_alias_once ();
|
||||
init_loop ();
|
||||
init_reload ();
|
||||
init_varasm_once ();
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user