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>
|
||||
|
||||
* tree-ssa-forwprop.c (simplify_bitwise_binary): Improve
|
||||
|
@ -1354,7 +1354,6 @@ OBJS = \
|
||||
optabs.o \
|
||||
options-save.o \
|
||||
opts-global.o \
|
||||
opts.o \
|
||||
passes.o \
|
||||
plugin.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
|
||||
# compiler and containing target-dependent code.
|
||||
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.
|
||||
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 \
|
||||
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)'; \
|
||||
$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
|
||||
$(DRIVER_DEFINES) \
|
||||
|
@ -37,6 +37,13 @@ int optimize_size
|
||||
Variable
|
||||
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.
|
||||
; 1 means wide ranges of inputs must work for complex divide.
|
||||
; 2 means C99-like requirements for complex multiply and divide.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* Compilation switch flag definitions for GCC.
|
||||
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.
|
||||
|
||||
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 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. */
|
||||
extern bool fast_math_flags_set_p (const struct gcc_options *);
|
||||
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 "flags.h"
|
||||
#include "opts.h"
|
||||
#include "params.h"
|
||||
#include "vec.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->wrong_lang_callback = driver_wrong_lang_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].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.
|
||||
@ -6156,7 +6161,11 @@ main (int argc, char **argv)
|
||||
if (argv != old_argv)
|
||||
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 **,
|
||||
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 "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
|
||||
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 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);
|
||||
|
||||
@ -1246,6 +1252,9 @@ common_handle_option (struct gcc_options *opts,
|
||||
unsigned int undoc_mask;
|
||||
unsigned int i;
|
||||
|
||||
if (lang_mask == CL_DRIVER)
|
||||
break;;
|
||||
|
||||
undoc_mask = ((opts->x_verbose_flag | opts->x_extra_warnings)
|
||||
? 0
|
||||
: CL_UNDOCUMENTED);
|
||||
@ -1265,6 +1274,9 @@ common_handle_option (struct gcc_options *opts,
|
||||
}
|
||||
|
||||
case OPT__target_help:
|
||||
if (lang_mask == CL_DRIVER)
|
||||
break;
|
||||
|
||||
print_specific_help (CL_TARGET, CL_UNDOCUMENTED, 0, opts, lang_mask);
|
||||
opts->x_exit_after_options = true;
|
||||
break;
|
||||
@ -1280,6 +1292,9 @@ common_handle_option (struct gcc_options *opts,
|
||||
--help=target,^undocumented */
|
||||
unsigned int exclude_flags = 0;
|
||||
|
||||
if (lang_mask == CL_DRIVER)
|
||||
break;
|
||||
|
||||
/* Walk along the argument string, parsing each word in turn.
|
||||
The format is:
|
||||
arg = [^]{word}[,{arg}]
|
||||
@ -1390,6 +1405,9 @@ common_handle_option (struct gcc_options *opts,
|
||||
}
|
||||
|
||||
case OPT__version:
|
||||
if (lang_mask == CL_DRIVER)
|
||||
break;
|
||||
|
||||
opts->x_exit_after_options = true;
|
||||
break;
|
||||
|
||||
@ -1400,6 +1418,9 @@ common_handle_option (struct gcc_options *opts,
|
||||
break;
|
||||
|
||||
case OPT_Werror_:
|
||||
if (lang_mask == CL_DRIVER)
|
||||
break;
|
||||
|
||||
enable_warning_as_error (arg, value, lang_mask, handlers,
|
||||
opts, opts_set, loc, dc);
|
||||
break;
|
||||
@ -1576,7 +1597,7 @@ common_handle_option (struct gcc_options *opts,
|
||||
/* FIXME: Instrumentation we insert makes ipa-reference bitmaps
|
||||
quadratic. Disable the pass until better memory representation
|
||||
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;
|
||||
break;
|
||||
|
||||
@ -1666,7 +1687,7 @@ common_handle_option (struct gcc_options *opts,
|
||||
if (value < 2 || value > 4)
|
||||
error_at (loc, "dwarf version %d is not supported", value);
|
||||
else
|
||||
dwarf_version = value;
|
||||
opts->x_dwarf_version = value;
|
||||
set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc);
|
||||
break;
|
||||
|
||||
@ -1713,7 +1734,7 @@ common_handle_option (struct gcc_options *opts,
|
||||
|
||||
case OPT_Wuninitialized:
|
||||
/* Also turn on maybe uninitialized warning. */
|
||||
warn_maybe_uninitialized = value;
|
||||
opts->x_warn_maybe_uninitialized = value;
|
||||
break;
|
||||
|
||||
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;
|
||||
|
||||
/* 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,
|
||||
or 0 if between functions. */
|
||||
tree current_function_decl;
|
||||
@ -658,12 +651,6 @@ compile_file (void)
|
||||
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.
|
||||
Each line begins with INDENT (for the case where FILE is the
|
||||
assembler output file). */
|
||||
|
Loading…
Reference in New Issue
Block a user