diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-09-17 15:14:49 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2010-09-17 15:14:49 +0100 |
commit | e90afde6fe471ff16c06e00709fe51421d073724 (patch) | |
tree | b975a487ff46cf6a7b61b28aaa2fde8f9ec2cd09 /gcc | |
parent | 2d5581f1b2a140e1ca0bf4d3256457939fc3e6a3 (diff) | |
download | gcc-e90afde6fe471ff16c06e00709fe51421d073724.zip gcc-e90afde6fe471ff16c06e00709fe51421d073724.tar.gz gcc-e90afde6fe471ff16c06e00709fe51421d073724.tar.bz2 |
options.texi (Variable): Document.
* doc/options.texi (Variable): Document.
* optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
generate target_flags declarations explicitly. Don't define
VarExists variables for the driver.
* common.opt (target_flags): New Variable record.
(flag_dump_unnumbered, flag_dump_unnumbered_links,
flag_var_tracking, flag_var_tracking_assignments,
flag_var_tracking_assignments_toggle): Don't mark variables with
VarExists.
* config/i386/i386.c (ix86_isa_flags): Don't define here.
* config/i386/i386.opt (ix86_isa_flags): Define here.
* config/mcore/mcore.c (mcore_stack_increment): Don't define here.
* config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
VarExists.
* flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
* print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
Only define for generator programs.
* rtlanal.c (target_flags): Remove.
* toplev.c (flag_var_tracking, flag_var_tracking_assignments,
flag_var_tracking_assignments_toggle): Remove.
From-SVN: r164370
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 23 | ||||
-rw-r--r-- | gcc/common.opt | 24 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 3 | ||||
-rw-r--r-- | gcc/config/i386/i386.opt | 4 | ||||
-rw-r--r-- | gcc/config/mcore/mcore.c | 5 | ||||
-rw-r--r-- | gcc/config/mcore/mcore.opt | 5 | ||||
-rw-r--r-- | gcc/doc/options.texi | 11 | ||||
-rw-r--r-- | gcc/flags.h | 8 | ||||
-rw-r--r-- | gcc/optc-gen.awk | 20 | ||||
-rw-r--r-- | gcc/opth-gen.awk | 12 | ||||
-rw-r--r-- | gcc/print-rtl.c | 5 | ||||
-rw-r--r-- | gcc/rtlanal.c | 8 | ||||
-rw-r--r-- | gcc/toplev.c | 17 |
13 files changed, 87 insertions, 58 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dd29405..c36b4f0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,26 @@ +2010-09-17 Joseph Myers <joseph@codesourcery.com> + + * doc/options.texi (Variable): Document. + * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't + generate target_flags declarations explicitly. Don't define + VarExists variables for the driver. + * common.opt (target_flags): New Variable record. + (flag_dump_unnumbered, flag_dump_unnumbered_links, + flag_var_tracking, flag_var_tracking_assignments, + flag_var_tracking_assignments_toggle): Don't mark variables with + VarExists. + * config/i386/i386.c (ix86_isa_flags): Don't define here. + * config/i386/i386.opt (ix86_isa_flags): Define here. + * config/mcore/mcore.c (mcore_stack_increment): Don't define here. + * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with + VarExists. + * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove. + * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links): + Only define for generator programs. + * rtlanal.c (target_flags): Remove. + * toplev.c (flag_var_tracking, flag_var_tracking_assignments, + flag_var_tracking_assignments_toggle): Remove. + 2010-09-17 Michael Matz <matz@suse.de> PR tree-optimization/43432 diff --git a/gcc/common.opt b/gcc/common.opt index 3093ea5..9d653f6 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -23,6 +23,9 @@ ; Please try to keep this file in ASCII collating order. +Variable +int target_flags + ### Driver @@ -552,11 +555,11 @@ Common Report Var(flag_dump_noaddr) Suppress output of addresses in debugging dumps fdump-unnumbered -Common Report Var(flag_dump_unnumbered) VarExists +Common Report Var(flag_dump_unnumbered) Suppress output of instruction numbers, line number notes and addresses in debugging dumps fdump-unnumbered-links -Common Report Var(flag_dump_unnumbered_links) VarExists +Common Report Var(flag_dump_unnumbered_links) Suppress output of previous and next insn numbers in debugging dumps fdwarf2-cfi-asm @@ -1511,16 +1514,27 @@ Just generate unwind tables for exception handling fuse-linker-plugin Common Undocumented +; Positive if we should track variables, negative if we should run +; the var-tracking pass only to discard debug annotations, zero if +; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it +; will be set according to optimize, debug_info_level and debug_hooks +; in process_options (). fvar-tracking -Common Report Var(flag_var_tracking) VarExists Optimization +Common Report Var(flag_var_tracking) Init(2) Optimization Perform variable tracking +; Positive if we should track variables at assignments, negative if +; we should run the var-tracking pass only to discard debug +; annotations. When flag_var_tracking_assignments == +; AUTODETECT_VALUE it will be set according to flag_var_tracking. fvar-tracking-assignments -Common Report Var(flag_var_tracking_assignments) VarExists Optimization +Common Report Var(flag_var_tracking_assignments) Init(2) Optimization Perform variable tracking by annotating assignments +; Nonzero if we should toggle flag_var_tracking_assignments after +; processing options and computing its default. */ fvar-tracking-assignments-toggle -Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization +Common Report Var(flag_var_tracking_assignments_toggle) Optimization Toggle -fvar-tracking-assignments fvar-tracking-uninit diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index dcf8875..abec057 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2025,9 +2025,6 @@ static enum calling_abi ix86_function_abi (const_tree); static int ix86_tune_defaulted; static int ix86_arch_specified; -/* Bit flags that specify the ISA we are compiling for. */ -int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT; - /* A mask of ix86_isa_flags that includes bit X if X was set or cleared on the command line. */ static int ix86_isa_flags_explicit; diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index aa78cdf..38a53f6 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -19,6 +19,10 @@ ; along with GCC; see the file COPYING3. If not see ; <http://www.gnu.org/licenses/>. +; Bit flags that specify the ISA we are compiling for. +Variable +int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT + ;; Definitions to add to the cl_target_option structure ;; -march= processor TargetSave diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index b81a8b9..ce58827 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -46,11 +46,6 @@ #include "target-def.h" #include "df.h" -/* Maximum size we are allowed to grow the stack in a single operation. - If we want more, we must do it in increments of at most this size. - If this value is 0, we don't check at all. */ -int mcore_stack_increment = STACK_UNITS_MAXSTEP; - /* For dumping information about frame sizes. */ char * mcore_current_function_name = 0; long mcore_current_compilation_timestamp = 0; diff --git a/gcc/config/mcore/mcore.opt b/gcc/config/mcore/mcore.opt index c445237..8e465d3 100644 --- a/gcc/config/mcore/mcore.opt +++ b/gcc/config/mcore/mcore.opt @@ -63,8 +63,11 @@ mslow-bytes Target Report Mask(SLOW_BYTES) Prefer word accesses over byte accesses +; Maximum size we are allowed to grow the stack in a single operation. +; If we want more, we must do it in increments of at most this size. +; If this value is 0, we don't check at all. mstack-increment= -Target RejectNegative Joined UInteger Var(mcore_stack_increment) VarExists +Target RejectNegative Joined UInteger Var(mcore_stack_increment) Init(STACK_UNITS_MAXSTEP) Set the maximum amount for a single stack increment operation mwide-bitfields diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi index c224bbd..924ac17 100644 --- a/gcc/doc/options.texi +++ b/gcc/doc/options.texi @@ -41,6 +41,17 @@ records have two fields: the string @samp{TargetSave}, and a declaration type to go in the @code{cl_target_option} structure. @item +A variable record to define a variable used to store option +information. These records have two fields: the string +@samp{Variable}, and a declaration of the type and name of the +variable, optionally with an initializer (but without any trailing +@samp{;}). These records may be used for variables used for many +options where declaring the variable and its initializer by omitting +@code{VarExists} from a single option definition record would be +inappropriate, or for variables set in option handlers rather than +referenced by @code{Var} properties. + +@item An option definition record. These records have the following fields: @enumerate @item diff --git a/gcc/flags.h b/gcc/flags.h index 93221b4..805308c 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -164,11 +164,6 @@ extern int rtl_dump_and_exit; extern int flag_gen_aux_info; -/* Nonzero means suppress output of instruction numbers and line number - notes in debugging dumps. */ - -extern int flag_dump_unnumbered; - /* True if printing into -fdump-final-insns= dump. */ extern bool final_insns_dump_p; @@ -301,9 +296,6 @@ enum graph_dump_types }; extern enum graph_dump_types graph_dump_format; -/* Nonzero if we should track variables. */ -extern int flag_var_tracking; - /* True if flag_speculative_prefetching was set by user. Used to suppress warning message in case flag was set by -fprofile-{generate,use}. */ extern bool flag_speculative_prefetching_set; diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index bee780c..4a146dd 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -30,6 +30,7 @@ BEGIN { n_opts = 0 n_langs = 0 n_target_save = 0 + n_extra_vars = 0 quote = "\042" comma = "," FS=SUBSEP @@ -48,6 +49,10 @@ BEGIN { target_save_decl[n_target_save] = $2 n_target_save++ } + else if ($1 == "Variable") { + extra_vars[n_extra_vars] = $2 + n_extra_vars++ + } else { name = opt_args("Mask", $1) if (name == "") { @@ -72,7 +77,6 @@ print "#include " quote "opts.h" quote print "#include " quote "intl.h" quote print "" print "#ifdef GCC_DRIVER" -print "int target_flags;" print "int target_flags_explicit;" print "#else" print "#include " quote "flags.h" quote @@ -81,6 +85,9 @@ print "#endif /* GCC_DRIVER */" print "" have_save = 0; +for (i = 0; i < n_extra_vars; i++) { + print extra_vars[i] ";" +} for (i = 0; i < n_opts; i++) { if (flag_set_p("Save", flags[i])) have_save = 1; @@ -90,11 +97,7 @@ for (i = 0; i < n_opts; i++) { continue; if (flag_set_p("VarExists", flags[i])) { - # Need it for the gcc driver. - if (name in var_seen) - continue; - init = "" - gcc_driver = 1 + continue; } else { init = opt_args("Init", flags[i]) @@ -102,16 +105,11 @@ for (i = 0; i < n_opts; i++) { init = " = " init; else if (name in var_seen) continue; - gcc_driver = 0 } - if (gcc_driver == 1) - print "#ifdef GCC_DRIVER" print "/* Set by -" opts[i] "." print " " help[i] " */" print var_type(flags[i]) name init ";" - if (gcc_driver == 1) - print "#endif /* GCC_DRIVER */" print "" var_seen[name] = 1; diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk index 0d1d0df..423328d 100644 --- a/gcc/opth-gen.awk +++ b/gcc/opth-gen.awk @@ -28,6 +28,7 @@ BEGIN { n_opts = 0 n_langs = 0 n_target_save = 0 + n_extra_vars = 0 n_extra_masks = 0 FS=SUBSEP } @@ -43,6 +44,10 @@ BEGIN { target_save_decl[n_target_save] = $2 n_target_save++ } + else if ($1 == "Variable") { + extra_vars[n_extra_vars] = $2 + n_extra_vars++ + } else { name = opt_args("Mask", $1) if (name == "") { @@ -65,12 +70,17 @@ print "" print "#ifndef OPTIONS_H" print "#define OPTIONS_H" print "" -print "extern int target_flags;" print "extern int target_flags_explicit;" print "" have_save = 0; +for (i = 0; i < n_extra_vars; i++) { + var = extra_vars[i] + sub(" *=.*", "", var) + print "extern " var ";" +} + for (i = 0; i < n_opts; i++) { if (flag_set_p("Save", flags[i])) have_save = 1; diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index 04d7959..ec7e358 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -58,6 +58,10 @@ static void print_rtx (const_rtx); the assembly output file. */ const char *print_rtx_head = ""; +#ifdef GENERATOR_FILE +/* These are defined from the .opt file when not used in generator + programs. */ + /* Nonzero means suppress output of instruction numbers in debugging dumps. This must be defined here so that programs like gencodes can be linked. */ @@ -67,6 +71,7 @@ int flag_dump_unnumbered = 0; and next insns in debugging dumps. This must be defined here so that programs like gencodes can be linked. */ int flag_dump_unnumbered_links = 0; +#endif /* Nonzero means use simplified format without flags, modes, etc. */ int flag_simple = 0; diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 4331f41..d34dc80 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1,6 +1,6 @@ /* Analyze RTL for GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -64,12 +64,6 @@ static unsigned int num_sign_bit_copies1 (const_rtx, enum machine_mode, const_rt -1 if a code has no such operand. */ static int non_rtx_starting_operands[NUM_RTX_CODE]; -/* Bit flags that specify the machine subtype we are compiling for. - Bits are tested using macros TARGET_... defined in the tm.h file - and set by `-m...' switches. Must be defined in rtlanal.c. */ - -int target_flags; - /* Truncation narrows the mode from SOURCE mode to DESTINATION mode. If TARGET_MODE_REP_EXTENDED (DESTINATION, DESTINATION_REP) is SIGN_EXTEND then while narrowing we also have to enforce the diff --git a/gcc/toplev.c b/gcc/toplev.c index 5995798..e43b6d9 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -291,23 +291,6 @@ int flag_dump_rtl_in_asm = 0; the support provided depends on the backend. */ rtx stack_limit_rtx; -/* Positive if we should track variables, negative if we should run - the var-tracking pass only to discard debug annotations, zero if - we're not to run it. When flag_var_tracking == AUTODETECT_VALUE it - will be set according to optimize, debug_info_level and debug_hooks - in process_options (). */ -int flag_var_tracking = AUTODETECT_VALUE; - -/* Positive if we should track variables at assignments, negative if - we should run the var-tracking pass only to discard debug - annotations. When flag_var_tracking_assignments == - AUTODETECT_VALUE it will be set according to flag_var_tracking. */ -int flag_var_tracking_assignments = AUTODETECT_VALUE; - -/* Nonzero if we should toggle flag_var_tracking_assignments after - processing options and computing its default. */ -int flag_var_tracking_assignments_toggle = 0; - /* Type of stack check. */ enum stack_check_type flag_stack_check = NO_STACK_CHECK; |