mirror of git://gcc.gnu.org/git/gcc.git
common.opt (in_lto_p): New Variable entry.
* common.opt (in_lto_p): New Variable entry. * flags.h (in_lto_p): Move to common.opt. * gcc.c: Include params.h. (set_option_handlers): Also use common_handle_option and target_handle_option. (main): Call global_init_params, finish_params and init_options_struct. * opts.c (debug_type_names): Move from toplev.c. (print_filtered_help): Access quiet_flag through opts pointer. (common_handle_option): Return early in the driver for some options. Access in_lto_p, dwarf_version and warn_maybe_uninitialized through opts pointer. * toplev.c (in_lto_p): Move to common.opt. (debug_type_names): Move to opts.c. * Makefile.in (OBJS): Remove opts.o. (OBJS-libcommon-target): Add opts.o. (gcc.o): Update dependencies. From-SVN: r175591
This commit is contained in:
parent
cc6aa1000f
commit
a7d0d30f0b
|
|
@ -1,3 +1,23 @@
|
||||||
|
2011-06-28 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* common.opt (in_lto_p): New Variable entry.
|
||||||
|
* flags.h (in_lto_p): Move to common.opt.
|
||||||
|
* gcc.c: Include params.h.
|
||||||
|
(set_option_handlers): Also use common_handle_option and
|
||||||
|
target_handle_option.
|
||||||
|
(main): Call global_init_params, finish_params and
|
||||||
|
init_options_struct.
|
||||||
|
* opts.c (debug_type_names): Move from toplev.c.
|
||||||
|
(print_filtered_help): Access quiet_flag through opts pointer.
|
||||||
|
(common_handle_option): Return early in the driver for some
|
||||||
|
options. Access in_lto_p, dwarf_version and
|
||||||
|
warn_maybe_uninitialized through opts pointer.
|
||||||
|
* toplev.c (in_lto_p): Move to common.opt.
|
||||||
|
(debug_type_names): Move to opts.c.
|
||||||
|
* Makefile.in (OBJS): Remove opts.o.
|
||||||
|
(OBJS-libcommon-target): Add opts.o.
|
||||||
|
(gcc.o): Update dependencies.
|
||||||
|
|
||||||
2011-06-28 Kai Tietz <ktietz@redhat.com>
|
2011-06-28 Kai Tietz <ktietz@redhat.com>
|
||||||
|
|
||||||
* tree-ssa-forwprop.c (simplify_bitwise_binary): Improve
|
* tree-ssa-forwprop.c (simplify_bitwise_binary): Improve
|
||||||
|
|
|
||||||
|
|
@ -1354,7 +1354,6 @@ OBJS = \
|
||||||
optabs.o \
|
optabs.o \
|
||||||
options-save.o \
|
options-save.o \
|
||||||
opts-global.o \
|
opts-global.o \
|
||||||
opts.o \
|
|
||||||
passes.o \
|
passes.o \
|
||||||
plugin.o \
|
plugin.o \
|
||||||
pointer-set.o \
|
pointer-set.o \
|
||||||
|
|
@ -1504,7 +1503,7 @@ OBJS-libcommon = diagnostic.o pretty-print.o intl.o input.o version.o
|
||||||
# Objects in libcommon-target.a, used by drivers and by the core
|
# Objects in libcommon-target.a, used by drivers and by the core
|
||||||
# compiler and containing target-dependent code.
|
# compiler and containing target-dependent code.
|
||||||
OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \
|
OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \
|
||||||
opts-common.o options.o vec.o hooks.o common/common-targhooks.o
|
opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o
|
||||||
|
|
||||||
# This lists all host objects for the front ends.
|
# This lists all host objects for the front ends.
|
||||||
ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
|
ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
|
||||||
|
|
@ -2260,7 +2259,7 @@ DRIVER_DEFINES = \
|
||||||
|
|
||||||
gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
|
gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
|
||||||
Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
|
Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
|
||||||
configargs.h $(OBSTACK_H) $(OPTS_H) $(DIAGNOSTIC_H) $(VEC_H)
|
configargs.h $(OBSTACK_H) $(OPTS_H) $(DIAGNOSTIC_H) $(VEC_H) $(PARAMS_H)
|
||||||
(SHLIB_LINK='$(SHLIB_LINK)'; \
|
(SHLIB_LINK='$(SHLIB_LINK)'; \
|
||||||
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
|
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
|
||||||
$(DRIVER_DEFINES) \
|
$(DRIVER_DEFINES) \
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,13 @@ int optimize_size
|
||||||
Variable
|
Variable
|
||||||
int optimize_fast
|
int optimize_fast
|
||||||
|
|
||||||
|
; True if this is the lto front end. This is used to disable gimple
|
||||||
|
; generation and lowering passes that are normally run on the output
|
||||||
|
; of a front end. These passes must be bypassed for lto since they
|
||||||
|
; have already been done before the gimple was written.
|
||||||
|
Variable
|
||||||
|
bool in_lto_p = false
|
||||||
|
|
||||||
; 0 means straightforward implementation of complex divide acceptable.
|
; 0 means straightforward implementation of complex divide acceptable.
|
||||||
; 1 means wide ranges of inputs must work for complex divide.
|
; 1 means wide ranges of inputs must work for complex divide.
|
||||||
; 2 means C99-like requirements for complex multiply and divide.
|
; 2 means C99-like requirements for complex multiply and divide.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/* Compilation switch flag definitions for GCC.
|
/* Compilation switch flag definitions for GCC.
|
||||||
Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
|
Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
|
||||||
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GCC.
|
This file is part of GCC.
|
||||||
|
|
@ -34,13 +34,6 @@ extern const char *const debug_type_names[];
|
||||||
extern void strip_off_ending (char *, int);
|
extern void strip_off_ending (char *, int);
|
||||||
extern int base_of_path (const char *path, const char **base_out);
|
extern int base_of_path (const char *path, const char **base_out);
|
||||||
|
|
||||||
/* True if this is the LTO front end (lto1). This is used to disable
|
|
||||||
gimple generation and lowering passes that are normally run on the
|
|
||||||
output of a front end. These passes must be bypassed for lto since
|
|
||||||
they have already been done before the gimple was written. */
|
|
||||||
|
|
||||||
extern bool in_lto_p;
|
|
||||||
|
|
||||||
/* Return true iff flags are set as if -ffast-math. */
|
/* Return true iff flags are set as if -ffast-math. */
|
||||||
extern bool fast_math_flags_set_p (const struct gcc_options *);
|
extern bool fast_math_flags_set_p (const struct gcc_options *);
|
||||||
extern bool fast_math_flags_struct_set_p (struct cl_optimization *);
|
extern bool fast_math_flags_struct_set_p (struct cl_optimization *);
|
||||||
|
|
|
||||||
13
gcc/gcc.c
13
gcc/gcc.c
|
|
@ -43,6 +43,7 @@ compilation is specified by a string called a "spec". */
|
||||||
#include "diagnostic.h"
|
#include "diagnostic.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
#include "opts.h"
|
#include "opts.h"
|
||||||
|
#include "params.h"
|
||||||
#include "vec.h"
|
#include "vec.h"
|
||||||
#include "filenames.h"
|
#include "filenames.h"
|
||||||
|
|
||||||
|
|
@ -3532,9 +3533,13 @@ set_option_handlers (struct cl_option_handlers *handlers)
|
||||||
handlers->unknown_option_callback = driver_unknown_option_callback;
|
handlers->unknown_option_callback = driver_unknown_option_callback;
|
||||||
handlers->wrong_lang_callback = driver_wrong_lang_callback;
|
handlers->wrong_lang_callback = driver_wrong_lang_callback;
|
||||||
handlers->post_handling_callback = driver_post_handling_callback;
|
handlers->post_handling_callback = driver_post_handling_callback;
|
||||||
handlers->num_handlers = 1;
|
handlers->num_handlers = 3;
|
||||||
handlers->handlers[0].handler = driver_handle_option;
|
handlers->handlers[0].handler = driver_handle_option;
|
||||||
handlers->handlers[0].mask = CL_DRIVER;
|
handlers->handlers[0].mask = CL_DRIVER;
|
||||||
|
handlers->handlers[1].handler = common_handle_option;
|
||||||
|
handlers->handlers[1].mask = CL_COMMON;
|
||||||
|
handlers->handlers[2].handler = target_handle_option;
|
||||||
|
handlers->handlers[2].mask = CL_TARGET;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the vector `switches' and its contents.
|
/* Create the vector `switches' and its contents.
|
||||||
|
|
@ -6156,7 +6161,11 @@ main (int argc, char **argv)
|
||||||
if (argv != old_argv)
|
if (argv != old_argv)
|
||||||
at_file_supplied = true;
|
at_file_supplied = true;
|
||||||
|
|
||||||
global_options = global_options_init;
|
/* Register the language-independent parameters. */
|
||||||
|
global_init_params ();
|
||||||
|
finish_params ();
|
||||||
|
|
||||||
|
init_options_struct (&global_options, &global_options_set);
|
||||||
|
|
||||||
decode_cmdline_options_to_array (argc, CONST_CAST2 (const char **, char **,
|
decode_cmdline_options_to_array (argc, CONST_CAST2 (const char **, char **,
|
||||||
argv),
|
argv),
|
||||||
|
|
|
||||||
29
gcc/opts.c
29
gcc/opts.c
|
|
@ -35,6 +35,12 @@ along with GCC; see the file COPYING3. If not see
|
||||||
#include "insn-attr-common.h"
|
#include "insn-attr-common.h"
|
||||||
#include "common/common-target.h"
|
#include "common/common-target.h"
|
||||||
|
|
||||||
|
/* Indexed by enum debug_info_type. */
|
||||||
|
const char *const debug_type_names[] =
|
||||||
|
{
|
||||||
|
"none", "stabs", "coff", "dwarf-2", "xcoff", "vms"
|
||||||
|
};
|
||||||
|
|
||||||
/* Parse the -femit-struct-debug-detailed option value
|
/* Parse the -femit-struct-debug-detailed option value
|
||||||
and set the flag variables. */
|
and set the flag variables. */
|
||||||
|
|
||||||
|
|
@ -986,7 +992,7 @@ print_filtered_help (unsigned int include_flags,
|
||||||
|
|
||||||
/* With the -Q option enabled we change the descriptive text associated
|
/* With the -Q option enabled we change the descriptive text associated
|
||||||
with an option to be an indication of its current setting. */
|
with an option to be an indication of its current setting. */
|
||||||
if (!quiet_flag)
|
if (!opts->x_quiet_flag)
|
||||||
{
|
{
|
||||||
void *flag_var = option_flag_var (i, opts);
|
void *flag_var = option_flag_var (i, opts);
|
||||||
|
|
||||||
|
|
@ -1246,6 +1252,9 @@ common_handle_option (struct gcc_options *opts,
|
||||||
unsigned int undoc_mask;
|
unsigned int undoc_mask;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
if (lang_mask == CL_DRIVER)
|
||||||
|
break;;
|
||||||
|
|
||||||
undoc_mask = ((opts->x_verbose_flag | opts->x_extra_warnings)
|
undoc_mask = ((opts->x_verbose_flag | opts->x_extra_warnings)
|
||||||
? 0
|
? 0
|
||||||
: CL_UNDOCUMENTED);
|
: CL_UNDOCUMENTED);
|
||||||
|
|
@ -1265,6 +1274,9 @@ common_handle_option (struct gcc_options *opts,
|
||||||
}
|
}
|
||||||
|
|
||||||
case OPT__target_help:
|
case OPT__target_help:
|
||||||
|
if (lang_mask == CL_DRIVER)
|
||||||
|
break;
|
||||||
|
|
||||||
print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
|
print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
|
||||||
opts->x_exit_after_options = true;
|
opts->x_exit_after_options = true;
|
||||||
break;
|
break;
|
||||||
|
|
@ -1280,6 +1292,9 @@ common_handle_option (struct gcc_options *opts,
|
||||||
--help=target,^undocumented */
|
--help=target,^undocumented */
|
||||||
unsigned int exclude_flags = 0;
|
unsigned int exclude_flags = 0;
|
||||||
|
|
||||||
|
if (lang_mask == CL_DRIVER)
|
||||||
|
break;
|
||||||
|
|
||||||
/* Walk along the argument string, parsing each word in turn.
|
/* Walk along the argument string, parsing each word in turn.
|
||||||
The format is:
|
The format is:
|
||||||
arg = [^]{word}[,{arg}]
|
arg = [^]{word}[,{arg}]
|
||||||
|
|
@ -1390,6 +1405,9 @@ common_handle_option (struct gcc_options *opts,
|
||||||
}
|
}
|
||||||
|
|
||||||
case OPT__version:
|
case OPT__version:
|
||||||
|
if (lang_mask == CL_DRIVER)
|
||||||
|
break;
|
||||||
|
|
||||||
opts->x_exit_after_options = true;
|
opts->x_exit_after_options = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1400,6 +1418,9 @@ common_handle_option (struct gcc_options *opts,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPT_Werror_:
|
case OPT_Werror_:
|
||||||
|
if (lang_mask == CL_DRIVER)
|
||||||
|
break;
|
||||||
|
|
||||||
enable_warning_as_error (arg, value, lang_mask, handlers,
|
enable_warning_as_error (arg, value, lang_mask, handlers,
|
||||||
opts, opts_set, loc, dc);
|
opts, opts_set, loc, dc);
|
||||||
break;
|
break;
|
||||||
|
|
@ -1576,7 +1597,7 @@ common_handle_option (struct gcc_options *opts,
|
||||||
/* FIXME: Instrumentation we insert makes ipa-reference bitmaps
|
/* FIXME: Instrumentation we insert makes ipa-reference bitmaps
|
||||||
quadratic. Disable the pass until better memory representation
|
quadratic. Disable the pass until better memory representation
|
||||||
is done. */
|
is done. */
|
||||||
if (!opts_set->x_flag_ipa_reference && in_lto_p)
|
if (!opts_set->x_flag_ipa_reference && opts->x_in_lto_p)
|
||||||
opts->x_flag_ipa_reference = false;
|
opts->x_flag_ipa_reference = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1666,7 +1687,7 @@ common_handle_option (struct gcc_options *opts,
|
||||||
if (value < 2 || value > 4)
|
if (value < 2 || value > 4)
|
||||||
error_at (loc, "dwarf version %d is not supported", value);
|
error_at (loc, "dwarf version %d is not supported", value);
|
||||||
else
|
else
|
||||||
dwarf_version = value;
|
opts->x_dwarf_version = value;
|
||||||
set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc);
|
set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1713,7 +1734,7 @@ common_handle_option (struct gcc_options *opts,
|
||||||
|
|
||||||
case OPT_Wuninitialized:
|
case OPT_Wuninitialized:
|
||||||
/* Also turn on maybe uninitialized warning. */
|
/* Also turn on maybe uninitialized warning. */
|
||||||
warn_maybe_uninitialized = value;
|
opts->x_warn_maybe_uninitialized = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
13
gcc/toplev.c
13
gcc/toplev.c
|
|
@ -125,13 +125,6 @@ unsigned int save_decoded_options_count;
|
||||||
|
|
||||||
const struct gcc_debug_hooks *debug_hooks;
|
const struct gcc_debug_hooks *debug_hooks;
|
||||||
|
|
||||||
/* True if this is the lto front end. This is used to disable
|
|
||||||
gimple generation and lowering passes that are normally run on the
|
|
||||||
output of a front end. These passes must be bypassed for lto since
|
|
||||||
they have already been done before the gimple was written. */
|
|
||||||
|
|
||||||
bool in_lto_p = false;
|
|
||||||
|
|
||||||
/* The FUNCTION_DECL for the function currently being compiled,
|
/* The FUNCTION_DECL for the function currently being compiled,
|
||||||
or 0 if between functions. */
|
or 0 if between functions. */
|
||||||
tree current_function_decl;
|
tree current_function_decl;
|
||||||
|
|
@ -658,12 +651,6 @@ compile_file (void)
|
||||||
timevar_stop (TV_PHASE_GENERATE);
|
timevar_stop (TV_PHASE_GENERATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Indexed by enum debug_info_type. */
|
|
||||||
const char *const debug_type_names[] =
|
|
||||||
{
|
|
||||||
"none", "stabs", "coff", "dwarf-2", "xcoff", "vms"
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Print version information to FILE.
|
/* Print version information to FILE.
|
||||||
Each line begins with INDENT (for the case where FILE is the
|
Each line begins with INDENT (for the case where FILE is the
|
||||||
assembler output file). */
|
assembler output file). */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue