Makefile.in: Update.
* Makefile.in: Update. * common.opt: New switches. * opts.c: Include diagnostic.h. (common_handle_option): Handle new switches. * toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion, flag_if_conversion2, flag_delete_null_pointer_checks, flag_rerun_cse_after_loop): Make extern. (flag_dummy): New. (f_options): Update to use flag_dummy for moved options. (decode_f_option): Some switches moved to opts.c. * toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion, flag_if_conversion2, flag_delete_null_pointer_checks, flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops, flag_tracer, flag_thread_jumps, flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops): New. f: * lang.opt: Add -fpreprocessed. * top.c (ffe_handle_option): Handle it. From-SVN: r68315
This commit is contained in:
parent
25abc0a5ef
commit
de32c0cb3b
@ -1,3 +1,21 @@
|
||||
2003-06-21 Neil Booth <neil@daikokuya.co.uk>
|
||||
|
||||
* Makefile.in: Update.
|
||||
* common.opt: New switches.
|
||||
* opts.c: Include diagnostic.h.
|
||||
(common_handle_option): Handle new switches.
|
||||
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
|
||||
flag_if_conversion2, flag_delete_null_pointer_checks,
|
||||
flag_rerun_cse_after_loop): Make extern.
|
||||
(flag_dummy): New.
|
||||
(f_options): Update to use flag_dummy for moved options.
|
||||
(decode_f_option): Some switches moved to opts.c.
|
||||
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
|
||||
flag_if_conversion2, flag_delete_null_pointer_checks,
|
||||
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
|
||||
flag_tracer, flag_thread_jumps, flag_unroll_loops,
|
||||
flag_unroll_all_loops, flag_unswitch_loops): New.
|
||||
|
||||
Sat Jun 21 13:41:00 CEST 2003 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.c (ix86_va_arg): Fix allocation of temporary slot.
|
||||
|
@ -1482,7 +1482,8 @@ diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \
|
||||
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(TM_P_H) flags.h $(GGC_H) \
|
||||
input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H)
|
||||
opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
|
||||
coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H) $(GGC_H) $(RTL_H) output.h
|
||||
coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H) $(GGC_H) $(RTL_H) \
|
||||
output.h diagnostic.h
|
||||
toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
|
||||
function.h flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \
|
||||
debug.h insn-config.h intl.h $(RECOG_H) Makefile toplev.h \
|
||||
|
171
gcc/common.opt
171
gcc/common.opt
@ -151,27 +151,198 @@ Common RejectNegative Joined UInteger
|
||||
falign-loops=
|
||||
Common RejectNegative Joined UInteger
|
||||
|
||||
fbranch-target-load-optimize
|
||||
Common
|
||||
|
||||
fbranch-target-load-optimize2
|
||||
Common
|
||||
|
||||
fcall-saved-
|
||||
Common Joined RejectNegative
|
||||
|
||||
fcall-used-
|
||||
Common Joined RejectNegative
|
||||
|
||||
fcaller-saves
|
||||
Common
|
||||
|
||||
fcrossjumping
|
||||
Common
|
||||
|
||||
fcse-follow-jumps
|
||||
Common
|
||||
|
||||
fcse-skip-blocks
|
||||
Common
|
||||
|
||||
fdefer-pop
|
||||
Common
|
||||
|
||||
fdelayed-branch
|
||||
Common
|
||||
|
||||
fdelete-null-pointer-checks
|
||||
Common
|
||||
|
||||
fdiagnostics-show-location=
|
||||
Common Joined RejectNegative
|
||||
|
||||
feliminate-dwarf2-dups
|
||||
Common
|
||||
|
||||
feliminate-unused-debug-types
|
||||
Common
|
||||
|
||||
fexpensive-optimizations
|
||||
Common
|
||||
|
||||
ffast-math
|
||||
Common
|
||||
|
||||
ffixed-
|
||||
Common Joined RejectNegative
|
||||
|
||||
ffloat-store
|
||||
Common
|
||||
|
||||
fforce-addr
|
||||
Common
|
||||
|
||||
fforce-mem
|
||||
Common
|
||||
|
||||
ffunction-cse
|
||||
Common
|
||||
|
||||
fgcse
|
||||
Common
|
||||
|
||||
fgcse-lm
|
||||
Common
|
||||
|
||||
fgcse-sm
|
||||
Common
|
||||
|
||||
fif-conversion
|
||||
Common
|
||||
|
||||
fif-conversion2
|
||||
Common
|
||||
|
||||
finline
|
||||
Common
|
||||
|
||||
finline-functions
|
||||
Common
|
||||
|
||||
fkeep-inline-functions
|
||||
Common
|
||||
|
||||
fkeep-static-consts
|
||||
Common
|
||||
|
||||
floop-optimize
|
||||
Common
|
||||
|
||||
fmessage-length=
|
||||
Common RejectNegative Joined UInteger
|
||||
|
||||
fmove-all-movables
|
||||
Common
|
||||
|
||||
fold-unroll-loops
|
||||
Common
|
||||
|
||||
fold-unroll-all-loops
|
||||
Common
|
||||
|
||||
fomit-frame-pointer
|
||||
Common
|
||||
|
||||
foptimize-sibling-calls
|
||||
Common
|
||||
|
||||
fpcc-struct-return
|
||||
Common
|
||||
|
||||
fpeel-loops
|
||||
Common
|
||||
|
||||
fpeephole
|
||||
Common
|
||||
|
||||
fprefetch-loop-arrays
|
||||
Common
|
||||
|
||||
frandom-seed
|
||||
Common
|
||||
|
||||
frandom-seed=
|
||||
Common Joined RejectNegative
|
||||
|
||||
freduce-all-givs
|
||||
Common
|
||||
|
||||
freg-struct-return
|
||||
Common
|
||||
|
||||
frerun-cse-after-loop
|
||||
Common
|
||||
|
||||
frerun-loop-opt
|
||||
Common
|
||||
|
||||
fsched-verbose=
|
||||
Common RejectNegative Joined
|
||||
|
||||
fschedule-insns
|
||||
Common
|
||||
|
||||
fschedule-insns2
|
||||
Common
|
||||
|
||||
fshared-data
|
||||
Common
|
||||
|
||||
fstack-limit
|
||||
Common
|
||||
|
||||
fstack-limit-register=
|
||||
Common RejectNegative Joined
|
||||
|
||||
fstack-limit-symbol=
|
||||
Common RejectNegative Joined
|
||||
|
||||
fstrength-reduce
|
||||
Common
|
||||
|
||||
fsyntax-only
|
||||
Common
|
||||
|
||||
fthread-jumps
|
||||
Common
|
||||
|
||||
ftls-model=
|
||||
Common Joined RejectNegative
|
||||
|
||||
ftracer
|
||||
Common
|
||||
|
||||
funit-at-a-time
|
||||
Common
|
||||
|
||||
funroll-loops
|
||||
Common
|
||||
|
||||
funroll-all-loops
|
||||
Common
|
||||
|
||||
funswitch-loops
|
||||
Common
|
||||
|
||||
fwritable-strings
|
||||
Common
|
||||
|
||||
g
|
||||
Common JoinedOrMissing
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
Sat Jun 21 21:29:38 2003 Neil Booth <neil@daikokuya.co.uk>
|
||||
|
||||
* lang.opt: Add -fpreprocessed.
|
||||
* top.c (ffe_handle_option): Handle it.
|
||||
|
||||
Fri Jun 20 10:00:31 2003 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* com.c (finish_function): Adjust expand_function_end call.
|
||||
|
@ -214,6 +214,9 @@ F77
|
||||
fpedantic
|
||||
F77
|
||||
|
||||
fpreprocessed
|
||||
F77
|
||||
|
||||
fsecond-underscore
|
||||
F77
|
||||
|
||||
|
@ -573,6 +573,7 @@ ffe_handle_option (size_t scode, const char *arg, int value)
|
||||
case OPT_Wcomments:
|
||||
case OPT_Wimport:
|
||||
case OPT_Wtrigraphs:
|
||||
case OPT_fpreprocessed:
|
||||
/* These are for cpp. */
|
||||
break;
|
||||
|
||||
|
245
gcc/opts.c
245
gcc/opts.c
@ -33,6 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "flags.h"
|
||||
#include "toplev.h"
|
||||
#include "params.h"
|
||||
#include "diagnostic.h"
|
||||
|
||||
/* Value of the -G xx switch, and whether it was passed or not. */
|
||||
unsigned HOST_WIDE_INT g_switch_value;
|
||||
@ -537,6 +538,14 @@ common_handle_option (size_t scode, const char *arg,
|
||||
align_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_fbranch_target_load_optimize:
|
||||
flag_branch_target_load_optimize = value;
|
||||
break;
|
||||
|
||||
case OPT_fbranch_target_load_optimize2:
|
||||
flag_branch_target_load_optimize2 = value;
|
||||
break;
|
||||
|
||||
case OPT_fcall_used_:
|
||||
fix_register (arg, 0, 1);
|
||||
break;
|
||||
@ -545,6 +554,56 @@ common_handle_option (size_t scode, const char *arg,
|
||||
fix_register (arg, 0, 0);
|
||||
break;
|
||||
|
||||
case OPT_fcaller_saves:
|
||||
flag_caller_saves = value;
|
||||
break;
|
||||
|
||||
case OPT_fcrossjumping:
|
||||
flag_crossjumping = value;
|
||||
break;
|
||||
|
||||
case OPT_fcse_follow_jumps:
|
||||
flag_cse_follow_jumps = value;
|
||||
break;
|
||||
|
||||
case OPT_fcse_skip_blocks:
|
||||
flag_cse_skip_blocks = value;
|
||||
break;
|
||||
|
||||
case OPT_fdefer_pop:
|
||||
flag_defer_pop = value;
|
||||
break;
|
||||
|
||||
case OPT_fdelayed_branch:
|
||||
flag_delayed_branch = value;
|
||||
break;
|
||||
|
||||
case OPT_fdelete_null_pointer_checks:
|
||||
flag_delete_null_pointer_checks = value;
|
||||
break;
|
||||
|
||||
case OPT_fdiagnostics_show_location_:
|
||||
if (!strcmp (arg, "once"))
|
||||
diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE;
|
||||
else if (!strcmp (arg, "every-line"))
|
||||
diagnostic_prefixing_rule (global_dc)
|
||||
= DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE;
|
||||
else
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case OPT_feliminate_dwarf2_dups:
|
||||
flag_eliminate_dwarf2_dups = value;
|
||||
break;
|
||||
|
||||
case OPT_feliminate_unused_debug_types:
|
||||
flag_eliminate_unused_debug_types = value;
|
||||
break;
|
||||
|
||||
case OPT_fexpensive_optimizations:
|
||||
flag_expensive_optimizations = value;
|
||||
break;
|
||||
|
||||
case OPT_ffast_math:
|
||||
set_fast_math_flags (value);
|
||||
break;
|
||||
@ -553,6 +612,156 @@ common_handle_option (size_t scode, const char *arg,
|
||||
fix_register (arg, 1, 1);
|
||||
break;
|
||||
|
||||
case OPT_ffunction_cse:
|
||||
flag_no_function_cse = !value;
|
||||
break;
|
||||
|
||||
case OPT_ffloat_store:
|
||||
flag_float_store = value;
|
||||
break;
|
||||
|
||||
case OPT_fforce_addr:
|
||||
flag_force_addr = value;
|
||||
break;
|
||||
|
||||
case OPT_fforce_mem:
|
||||
flag_force_mem = value;
|
||||
break;
|
||||
|
||||
case OPT_fgcse:
|
||||
flag_gcse = value;
|
||||
break;
|
||||
|
||||
case OPT_fgcse_lm:
|
||||
flag_gcse_lm = value;
|
||||
break;
|
||||
|
||||
case OPT_fgcse_sm:
|
||||
flag_gcse_sm = value;
|
||||
break;
|
||||
|
||||
case OPT_fif_conversion:
|
||||
flag_if_conversion = value;
|
||||
break;
|
||||
|
||||
case OPT_fif_conversion2:
|
||||
flag_if_conversion2 = value;
|
||||
break;
|
||||
|
||||
case OPT_finline:
|
||||
flag_no_inline = !value;
|
||||
break;
|
||||
|
||||
case OPT_finline_functions:
|
||||
flag_inline_functions = value;
|
||||
break;
|
||||
|
||||
case OPT_fkeep_inline_functions:
|
||||
flag_keep_inline_functions =value;
|
||||
break;
|
||||
|
||||
case OPT_fkeep_static_consts:
|
||||
flag_keep_static_consts = value;
|
||||
break;
|
||||
|
||||
case OPT_floop_optimize:
|
||||
flag_loop_optimize = value;
|
||||
break;
|
||||
|
||||
case OPT_fmessage_length_:
|
||||
output_set_maximum_length (&global_dc->buffer, value);
|
||||
break;
|
||||
|
||||
case OPT_fmove_all_movables:
|
||||
flag_move_all_movables = value;
|
||||
break;
|
||||
|
||||
case OPT_fold_unroll_all_loops:
|
||||
flag_old_unroll_all_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_fold_unroll_loops:
|
||||
flag_old_unroll_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_fomit_frame_pointer:
|
||||
flag_omit_frame_pointer = value;
|
||||
break;
|
||||
|
||||
case OPT_foptimize_sibling_calls:
|
||||
flag_optimize_sibling_calls = value;
|
||||
break;
|
||||
|
||||
case OPT_fpeel_loops:
|
||||
flag_peel_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_fpcc_struct_return:
|
||||
flag_pcc_struct_return = value;
|
||||
break;
|
||||
|
||||
case OPT_fpeephole:
|
||||
flag_no_peephole = !value;
|
||||
break;
|
||||
|
||||
case OPT_fprefetch_loop_arrays:
|
||||
flag_prefetch_loop_arrays = value;
|
||||
break;
|
||||
|
||||
case OPT_frandom_seed:
|
||||
/* The real switch is -fno-random-seed. */
|
||||
if (value)
|
||||
return 0;
|
||||
flag_random_seed = NULL;
|
||||
break;
|
||||
|
||||
case OPT_frandom_seed_:
|
||||
flag_random_seed = arg;
|
||||
break;
|
||||
|
||||
case OPT_freduce_all_givs:
|
||||
flag_reduce_all_givs = value;
|
||||
break;
|
||||
|
||||
case OPT_freg_struct_return:
|
||||
flag_pcc_struct_return = !value;
|
||||
break;
|
||||
|
||||
case OPT_frerun_cse_after_loop:
|
||||
flag_rerun_cse_after_loop = value;
|
||||
break;
|
||||
|
||||
case OPT_frerun_loop_opt:
|
||||
flag_rerun_loop_opt = value;
|
||||
break;
|
||||
|
||||
case OPT_fsched_verbose_:
|
||||
#ifdef INSN_SCHEDULING
|
||||
fix_sched_param ("verbose", arg);
|
||||
break;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
case OPT_fschedule_insns:
|
||||
flag_schedule_insns = value;
|
||||
break;
|
||||
|
||||
case OPT_fschedule_insns2:
|
||||
flag_schedule_insns_after_reload = value;
|
||||
break;
|
||||
|
||||
case OPT_fshared_data:
|
||||
flag_shared_data = value;
|
||||
break;
|
||||
|
||||
case OPT_fstack_limit:
|
||||
/* The real switch is -fno-stack-limit. */
|
||||
if (value)
|
||||
return 0;
|
||||
stack_limit_rtx = NULL_RTX;
|
||||
break;
|
||||
|
||||
case OPT_fstack_limit_register_:
|
||||
{
|
||||
int reg = decode_reg_name (arg);
|
||||
@ -567,6 +776,18 @@ common_handle_option (size_t scode, const char *arg,
|
||||
stack_limit_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (arg));
|
||||
break;
|
||||
|
||||
case OPT_fstrength_reduce:
|
||||
flag_strength_reduce = value;
|
||||
break;
|
||||
|
||||
case OPT_fsyntax_only:
|
||||
flag_syntax_only = value;
|
||||
break;
|
||||
|
||||
case OPT_fthread_jumps:
|
||||
flag_thread_jumps = value;
|
||||
break;
|
||||
|
||||
case OPT_ftls_model_:
|
||||
if (!strcmp (arg, "global-dynamic"))
|
||||
flag_tls_default = TLS_MODEL_GLOBAL_DYNAMIC;
|
||||
@ -580,6 +801,30 @@ common_handle_option (size_t scode, const char *arg,
|
||||
warning ("unknown tls-model \"%s\"", arg);
|
||||
break;
|
||||
|
||||
case OPT_ftracer:
|
||||
flag_tracer = value;
|
||||
break;
|
||||
|
||||
case OPT_funit_at_a_time:
|
||||
flag_unit_at_a_time = value;
|
||||
break;
|
||||
|
||||
case OPT_funroll_all_loops:
|
||||
flag_unroll_all_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_funroll_loops:
|
||||
flag_unroll_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_funswitch_loops:
|
||||
flag_unswitch_loops = value;
|
||||
break;
|
||||
|
||||
case OPT_fwritable_strings:
|
||||
flag_writable_strings = value;
|
||||
break;
|
||||
|
||||
case OPT_g:
|
||||
decode_g_option (arg);
|
||||
break;
|
||||
|
147
gcc/toplev.c
147
gcc/toplev.c
@ -654,24 +654,24 @@ int flag_syntax_only = 0;
|
||||
|
||||
/* Nonzero means perform loop optimizer. */
|
||||
|
||||
static int flag_loop_optimize;
|
||||
int flag_loop_optimize;
|
||||
|
||||
/* Nonzero means perform crossjumping. */
|
||||
|
||||
static int flag_crossjumping;
|
||||
int flag_crossjumping;
|
||||
|
||||
/* Nonzero means perform if conversion. */
|
||||
|
||||
static int flag_if_conversion;
|
||||
int flag_if_conversion;
|
||||
|
||||
/* Nonzero means perform if conversion after reload. */
|
||||
|
||||
static int flag_if_conversion2;
|
||||
int flag_if_conversion2;
|
||||
|
||||
/* Nonzero means to use global dataflow analysis to eliminate
|
||||
useless null pointer tests. */
|
||||
|
||||
static int flag_delete_null_pointer_checks;
|
||||
int flag_delete_null_pointer_checks;
|
||||
|
||||
/* Nonzero means perform global CSE. */
|
||||
|
||||
@ -702,7 +702,7 @@ int flag_branch_target_load_optimize2 = 0;
|
||||
/* Nonzero means to rerun cse after loop optimization. This increases
|
||||
compilation time about 20% and picks up a few more common expressions. */
|
||||
|
||||
static int flag_rerun_cse_after_loop;
|
||||
int flag_rerun_cse_after_loop;
|
||||
|
||||
/* Nonzero means to run loop optimizations twice. */
|
||||
|
||||
@ -1040,6 +1040,9 @@ static const param_info lang_independent_params[] = {
|
||||
{ NULL, 0, NULL }
|
||||
};
|
||||
|
||||
/* Used for the f_options array temporarily. */
|
||||
static int flag_dummy;
|
||||
|
||||
/* Table of language-independent -f options.
|
||||
STRING is the option name. VARIABLE is the address of the variable.
|
||||
ON_VALUE is the value to store in VARIABLE
|
||||
@ -1048,107 +1051,107 @@ static const param_info lang_independent_params[] = {
|
||||
|
||||
static const lang_independent_options f_options[] =
|
||||
{
|
||||
{"eliminate-dwarf2-dups", &flag_eliminate_dwarf2_dups, 1,
|
||||
{"eliminate-dwarf2-dups", &flag_dummy, 1,
|
||||
N_("Perform DWARF2 duplicate elimination") },
|
||||
{"eliminate-unused-debug-types", &flag_eliminate_unused_debug_types, 1,
|
||||
{"eliminate-unused-debug-types", &flag_dummy, 1,
|
||||
N_("Perform unused type elimination in debug info") },
|
||||
{"float-store", &flag_float_store, 1,
|
||||
{"float-store", &flag_dummy, 1,
|
||||
N_("Do not store floats in registers") },
|
||||
{"defer-pop", &flag_defer_pop, 1,
|
||||
{"defer-pop", &flag_dummy, 1,
|
||||
N_("Defer popping functions args from stack until later") },
|
||||
{"omit-frame-pointer", &flag_omit_frame_pointer, 1,
|
||||
{"omit-frame-pointer", &flag_dummy, 1,
|
||||
N_("When possible do not generate stack frames") },
|
||||
{"optimize-sibling-calls", &flag_optimize_sibling_calls, 1,
|
||||
{"optimize-sibling-calls", &flag_dummy, 1,
|
||||
N_("Optimize sibling and tail recursive calls") },
|
||||
{"tracer", &flag_tracer, 1,
|
||||
{"tracer", &flag_dummy, 1,
|
||||
N_("Perform superblock formation via tail duplication") },
|
||||
{"unit-at-a-time", &flag_unit_at_a_time, 1,
|
||||
{"unit-at-a-time", &flag_dummy, 1,
|
||||
N_("Compile whole compilation unit at a time") },
|
||||
{"cse-follow-jumps", &flag_cse_follow_jumps, 1,
|
||||
{"cse-follow-jumps", &flag_dummy, 1,
|
||||
N_("When running CSE, follow jumps to their targets") },
|
||||
{"cse-skip-blocks", &flag_cse_skip_blocks, 1,
|
||||
{"cse-skip-blocks", &flag_dummy, 1,
|
||||
N_("When running CSE, follow conditional jumps") },
|
||||
{"expensive-optimizations", &flag_expensive_optimizations, 1,
|
||||
{"expensive-optimizations", &flag_dummy, 1,
|
||||
N_("Perform a number of minor, expensive optimizations") },
|
||||
{"thread-jumps", &flag_thread_jumps, 1,
|
||||
{"thread-jumps", &flag_dummy, 1,
|
||||
N_("Perform jump threading optimizations") },
|
||||
{"strength-reduce", &flag_strength_reduce, 1,
|
||||
{"strength-reduce", &flag_dummy, 1,
|
||||
N_("Perform strength reduction optimizations") },
|
||||
{"unroll-loops", &flag_unroll_loops, 1,
|
||||
{"unroll-loops", &flag_dummy, 1,
|
||||
N_("Perform loop unrolling when iteration count is known") },
|
||||
{"unroll-all-loops", &flag_unroll_all_loops, 1,
|
||||
{"unroll-all-loops", &flag_dummy, 1,
|
||||
N_("Perform loop unrolling for all loops") },
|
||||
{"old-unroll-loops", &flag_old_unroll_loops, 1,
|
||||
{"old-unroll-loops", &flag_dummy, 1,
|
||||
N_("Perform loop unrolling when iteration count is known") },
|
||||
{"old-unroll-all-loops", &flag_old_unroll_all_loops, 1,
|
||||
{"old-unroll-all-loops", &flag_dummy, 1,
|
||||
N_("Perform loop unrolling for all loops") },
|
||||
{"peel-loops", &flag_peel_loops, 1,
|
||||
{"peel-loops", &flag_dummy, 1,
|
||||
N_("Perform loop peeling") },
|
||||
{"unswitch-loops", &flag_unswitch_loops, 1,
|
||||
{"unswitch-loops", &flag_dummy, 1,
|
||||
N_("Perform loop unswitching") },
|
||||
{"prefetch-loop-arrays", &flag_prefetch_loop_arrays, 1,
|
||||
{"prefetch-loop-arrays", &flag_dummy, 1,
|
||||
N_("Generate prefetch instructions, if available, for arrays in loops") },
|
||||
{"move-all-movables", &flag_move_all_movables, 1,
|
||||
{"move-all-movables", &flag_dummy, 1,
|
||||
N_("Force all loop invariant computations out of loops") },
|
||||
{"reduce-all-givs", &flag_reduce_all_givs, 1,
|
||||
{"reduce-all-givs", &flag_dummy, 1,
|
||||
N_("Strength reduce all loop general induction variables") },
|
||||
{"writable-strings", &flag_writable_strings, 1,
|
||||
{"writable-strings", &flag_dummy, 1,
|
||||
N_("Store strings in writable data section") },
|
||||
{"peephole", &flag_no_peephole, 0,
|
||||
{"peephole", &flag_dummy, 0,
|
||||
N_("Enable machine specific peephole optimizations") },
|
||||
{"force-mem", &flag_force_mem, 1,
|
||||
{"force-mem", &flag_dummy, 1,
|
||||
N_("Copy memory operands into registers before using") },
|
||||
{"force-addr", &flag_force_addr, 1,
|
||||
{"force-addr", &flag_dummy, 1,
|
||||
N_("Copy memory address constants into regs before using") },
|
||||
{"function-cse", &flag_no_function_cse, 0,
|
||||
{"function-cse", &flag_dummy, 0,
|
||||
N_("Allow function addresses to be held in registers") },
|
||||
{"inline-functions", &flag_inline_functions, 1,
|
||||
{"inline-functions", &flag_dummy, 1,
|
||||
N_("Integrate simple functions into their callers") },
|
||||
{"keep-inline-functions", &flag_keep_inline_functions, 1,
|
||||
{"keep-inline-functions", &flag_dummy, 1,
|
||||
N_("Generate code for funcs even if they are fully inlined") },
|
||||
{"inline", &flag_no_inline, 0,
|
||||
{"inline", &flag_dummy, 0,
|
||||
N_("Pay attention to the 'inline' keyword") },
|
||||
{"keep-static-consts", &flag_keep_static_consts, 1,
|
||||
{"keep-static-consts", &flag_dummy, 1,
|
||||
N_("Emit static const variables even if they are not used") },
|
||||
{"syntax-only", &flag_syntax_only, 1,
|
||||
{"syntax-only", &flag_dummy, 1,
|
||||
N_("Check for syntax errors, then stop") },
|
||||
{"shared-data", &flag_shared_data, 1,
|
||||
{"shared-data", &flag_dummy, 1,
|
||||
N_("Mark data as shared rather than private") },
|
||||
{"caller-saves", &flag_caller_saves, 1,
|
||||
{"caller-saves", &flag_dummy, 1,
|
||||
N_("Enable saving registers around function calls") },
|
||||
{"pcc-struct-return", &flag_pcc_struct_return, 1,
|
||||
{"pcc-struct-return", &flag_dummy, 1,
|
||||
N_("Return 'short' aggregates in memory, not registers") },
|
||||
{"reg-struct-return", &flag_pcc_struct_return, 0,
|
||||
{"reg-struct-return", &flag_dummy, 0,
|
||||
N_("Return 'short' aggregates in registers") },
|
||||
{"delayed-branch", &flag_delayed_branch, 1,
|
||||
{"delayed-branch", &flag_dummy, 1,
|
||||
N_("Attempt to fill delay slots of branch instructions") },
|
||||
{"gcse", &flag_gcse, 1,
|
||||
{"gcse", &flag_dummy, 1,
|
||||
N_("Perform the global common subexpression elimination") },
|
||||
{"gcse-lm", &flag_gcse_lm, 1,
|
||||
{"gcse-lm", &flag_dummy, 1,
|
||||
N_("Perform enhanced load motion during global subexpression elimination") },
|
||||
{"gcse-sm", &flag_gcse_sm, 1,
|
||||
{"gcse-sm", &flag_dummy, 1,
|
||||
N_("Perform store motion after global subexpression elimination") },
|
||||
{"branch-target-load-optimize", &flag_branch_target_load_optimize, 1,
|
||||
{"branch-target-load-optimize", &flag_dummy, 1,
|
||||
N_("Perform branch target load optimization before prologue / epilogue threading") },
|
||||
{"branch-target-load-optimize2", &flag_branch_target_load_optimize2, 1,
|
||||
{"branch-target-load-optimize2", &flag_dummy, 1,
|
||||
N_("Perform branch target load optimization after prologue / epilogue threading") },
|
||||
{"loop-optimize", &flag_loop_optimize, 1,
|
||||
{"loop-optimize", &flag_dummy, 1,
|
||||
N_("Perform the loop optimizations") },
|
||||
{"crossjumping", &flag_crossjumping, 1,
|
||||
{"crossjumping", &flag_dummy, 1,
|
||||
N_("Perform cross-jumping optimization") },
|
||||
{"if-conversion", &flag_if_conversion, 1,
|
||||
{"if-conversion", &flag_dummy, 1,
|
||||
N_("Perform conversion of conditional jumps to branchless equivalents") },
|
||||
{"if-conversion2", &flag_if_conversion2, 1,
|
||||
{"if-conversion2", &flag_dummy, 1,
|
||||
N_("Perform conversion of conditional jumps to conditional execution") },
|
||||
{"rerun-cse-after-loop", &flag_rerun_cse_after_loop, 1,
|
||||
{"rerun-cse-after-loop", &flag_dummy, 1,
|
||||
N_("Run CSE pass after loop optimizations") },
|
||||
{"rerun-loop-opt", &flag_rerun_loop_opt, 1,
|
||||
{"rerun-loop-opt", &flag_dummy, 1,
|
||||
N_("Run the loop optimizer twice") },
|
||||
{"delete-null-pointer-checks", &flag_delete_null_pointer_checks, 1,
|
||||
{"delete-null-pointer-checks", &flag_dummy, 1,
|
||||
N_("Delete useless null pointer checks") },
|
||||
{"schedule-insns", &flag_schedule_insns, 1,
|
||||
{"schedule-insns", &flag_dummy, 1,
|
||||
N_("Reschedule instructions before register allocation") },
|
||||
{"schedule-insns2", &flag_schedule_insns_after_reload, 1,
|
||||
{"schedule-insns2", &flag_dummy, 1,
|
||||
N_("Reschedule instructions after register allocation") },
|
||||
{"sched-interblock",&flag_schedule_interblock, 1,
|
||||
N_("Enable scheduling across basic blocks") },
|
||||
@ -4191,36 +4194,6 @@ decode_f_option (const char *arg)
|
||||
set_param_value ("min-inline-insns", 10);
|
||||
}
|
||||
}
|
||||
#ifdef INSN_SCHEDULING
|
||||
else if ((option_value = skip_leading_substring (arg, "sched-verbose=")))
|
||||
fix_sched_param ("verbose", option_value);
|
||||
#endif
|
||||
else if ((option_value
|
||||
= skip_leading_substring (arg, "message-length=")))
|
||||
output_set_maximum_length
|
||||
(&global_dc->buffer, read_integral_parameter
|
||||
(option_value, arg - 2, diagnostic_line_cutoff (global_dc)));
|
||||
else if ((option_value
|
||||
= skip_leading_substring (arg, "diagnostics-show-location=")))
|
||||
{
|
||||
if (!strcmp (option_value, "once"))
|
||||
diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE;
|
||||
else if (!strcmp (option_value, "every-line"))
|
||||
diagnostic_prefixing_rule (global_dc)
|
||||
= DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE;
|
||||
else
|
||||
error ("unrecognized option `%s'", arg - 2);
|
||||
}
|
||||
else if (!strcmp (arg, "no-stack-limit"))
|
||||
stack_limit_rtx = NULL_RTX;
|
||||
else if ((option_value = skip_leading_substring (arg, "random-seed=")))
|
||||
flag_random_seed = option_value;
|
||||
else if (!strcmp (arg, "no-random-seed"))
|
||||
flag_random_seed = NULL;
|
||||
else if (!strcmp (arg, "preprocessed"))
|
||||
/* Recognize this switch but do nothing. This prevents warnings
|
||||
about an unrecognized switch if cpplib has not been linked in. */
|
||||
;
|
||||
else
|
||||
return 0;
|
||||
|
||||
|
15
gcc/toplev.h
15
gcc/toplev.h
@ -104,6 +104,21 @@ extern bool version_flag;
|
||||
|
||||
extern int target_flags_explicit;
|
||||
|
||||
/* See toplev.c. */
|
||||
extern int flag_loop_optimize;
|
||||
extern int flag_crossjumping;
|
||||
extern int flag_if_conversion;
|
||||
extern int flag_if_conversion2;
|
||||
extern int flag_delete_null_pointer_checks;
|
||||
extern int flag_keep_static_consts;
|
||||
extern int flag_peel_loops;
|
||||
extern int flag_rerun_cse_after_loop;
|
||||
extern int flag_thread_jumps;
|
||||
extern int flag_tracer;
|
||||
extern int flag_unroll_loops;
|
||||
extern int flag_unroll_all_loops;
|
||||
extern int flag_unswitch_loops;
|
||||
|
||||
extern void display_help (void);
|
||||
extern void display_target_options (void);
|
||||
extern void print_version (FILE *, const char *);
|
||||
|
Loading…
Reference in New Issue
Block a user