aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-09-17 15:14:49 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2010-09-17 15:14:49 +0100
commite90afde6fe471ff16c06e00709fe51421d073724 (patch)
treeb975a487ff46cf6a7b61b28aaa2fde8f9ec2cd09 /gcc
parent2d5581f1b2a140e1ca0bf4d3256457939fc3e6a3 (diff)
downloadgcc-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/ChangeLog23
-rw-r--r--gcc/common.opt24
-rw-r--r--gcc/config/i386/i386.c3
-rw-r--r--gcc/config/i386/i386.opt4
-rw-r--r--gcc/config/mcore/mcore.c5
-rw-r--r--gcc/config/mcore/mcore.opt5
-rw-r--r--gcc/doc/options.texi11
-rw-r--r--gcc/flags.h8
-rw-r--r--gcc/optc-gen.awk20
-rw-r--r--gcc/opth-gen.awk12
-rw-r--r--gcc/print-rtl.c5
-rw-r--r--gcc/rtlanal.c8
-rw-r--r--gcc/toplev.c17
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;