summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/alpha/alpha.c45
-rw-r--r--gcc/config/alpha/alpha.h1
-rw-r--r--gcc/config/alpha/alpha.opt14
-rw-r--r--gcc/config/arc/arc.c26
-rw-r--r--gcc/config/arc/arc.opt8
-rw-r--r--gcc/config/arm/arm.c39
-rw-r--r--gcc/config/arm/arm.opt14
-rw-r--r--gcc/config/avr/avr.c29
-rw-r--r--gcc/config/avr/avr.opt4
-rw-r--r--gcc/config/bfin/bfin.c4
-rw-r--r--gcc/config/bfin/bfin.opt2
-rw-r--r--gcc/config/c4x/c4x.c5
-rw-r--r--gcc/config/c4x/c4x.h1
-rw-r--r--gcc/config/c4x/c4x.opt2
-rw-r--r--gcc/config/cris/aout.h4
-rw-r--r--gcc/config/cris/aout.opt4
-rw-r--r--gcc/config/cris/cris.c26
-rw-r--r--gcc/config/cris/cris.h14
-rw-r--r--gcc/config/cris/cris.opt10
-rw-r--r--gcc/config/i386/i386.c79
-rw-r--r--gcc/config/i386/i386.h3
-rw-r--r--gcc/config/i386/i386.opt24
-rw-r--r--gcc/config/ia64/ia64.c18
-rw-r--r--gcc/config/ia64/ia64.h1
-rw-r--r--gcc/config/ia64/ia64.opt2
-rw-r--r--gcc/config/m32r/m32r.c19
-rw-r--r--gcc/config/m32r/m32r.h4
-rw-r--r--gcc/config/m32r/m32r.opt4
-rw-r--r--gcc/config/mips/mips.c14
-rw-r--r--gcc/config/mips/mips.h1
-rw-r--r--gcc/config/mips/mips.opt6
-rw-r--r--gcc/config/s390/s390.c2
-rw-r--r--gcc/config/s390/s390.opt2
-rw-r--r--gcc/config/sparc/sparc.c7
-rw-r--r--gcc/config/sparc/sparc.h2
-rw-r--r--gcc/config/sparc/sparc.opt2
36 files changed, 59 insertions, 383 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 56e08c5339a..b02175e8aa1 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -79,19 +79,6 @@ enum alpha_fp_rounding_mode alpha_fprm;
enum alpha_fp_trap_mode alpha_fptm;
-/* Specify bit size of immediate TLS offsets. */
-
-int alpha_tls_size = 32;
-
-/* Strings decoded into the above options. */
-
-static const char *alpha_cpu_string; /* -mcpu= */
-static const char *alpha_tune_string; /* -mtune= */
-static const char *alpha_tp_string; /* -mtrap-precision=[p|s|i] */
-static const char *alpha_fprm_string; /* -mfp-rounding-mode=[n|m|c|d] */
-static const char *alpha_fptm_string; /* -mfp-trap-mode=[n|u|su|sui] */
-static const char *alpha_mlat_string; /* -mmemory-latency= */
-
/* Save information from a "cmpxx" operation until the branch or scc is
emitted. */
@@ -239,38 +226,8 @@ alpha_handle_option (size_t code, const char *arg, int value)
target_flags |= MASK_IEEE_CONFORMANT;
break;
- case OPT_mcpu_:
- alpha_cpu_string = arg;
- break;
-
- case OPT_mtune_:
- alpha_tune_string = arg;
- break;
-
- case OPT_mfp_rounding_mode_:
- alpha_fprm_string = arg;
- break;
-
- case OPT_mfp_trap_mode_:
- alpha_fptm_string = arg;
- break;
-
- case OPT_mtrap_precision_:
- alpha_tp_string = arg;
- break;
-
- case OPT_mmemory_latency_:
- alpha_mlat_string = arg;
- break;
-
case OPT_mtls_size_:
- if (strcmp (arg, "16") == 0)
- alpha_tls_size = 16;
- else if (strcmp (arg, "32") == 0)
- alpha_tls_size = 32;
- else if (strcmp (arg, "64") == 0)
- alpha_tls_size = 64;
- else
+ if (value != 16 && value != 32 && value != 64)
error ("bad value %qs for -mtls-size switch", arg);
break;
}
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 8d2974574a1..68508220658 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -152,7 +152,6 @@ extern int target_flags;
extern enum alpha_trap_precision alpha_tp;
extern enum alpha_fp_rounding_mode alpha_fprm;
extern enum alpha_fp_trap_mode alpha_fptm;
-extern int alpha_tls_size;
/* Invert the easy way to make options work. */
#define TARGET_FP (!TARGET_SOFT_FP)
diff --git a/gcc/config/alpha/alpha.opt b/gcc/config/alpha/alpha.opt
index 0c6ca3c302e..d3bc9044461 100644
--- a/gcc/config/alpha/alpha.opt
+++ b/gcc/config/alpha/alpha.opt
@@ -107,29 +107,29 @@ Target Report RejectNegative InverseMask(LONG_DOUBLE_128)
Use 64-bit long double
mcpu=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_cpu_string)
Use features of and schedule given CPU
mtune=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_tune_string)
Schedule given CPU
mfp-rounding-mode=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_fprm_string)
Control the generated fp rounding mode
mfp-trap-mode=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_fptm_string)
Control the IEEE trap mode
mtrap-precision=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_tp_string)
Control the precision given to fp exceptions
mmemory-latency=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(alpha_mlat_string)
Tune expected memory latency
mtls-size=
-Target RejectNegative Joined
+Target RejectNegative Joined UInteger Var(alpha_tls_size) Init(32)
Specify bit size of immediate TLS offsets
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 2161817ca95..1a7024530a3 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -45,7 +45,6 @@ Boston, MA 02111-1307, USA. */
#include "target-def.h"
/* Which cpu we're compiling for. */
-static const char *arc_cpu_string = "base";
int arc_cpu_type;
/* Name of mangle string to add to symbols to separate code compiled for each
@@ -56,12 +55,6 @@ const char *arc_mangle_cpu;
generate a scc or bcc insn. */
rtx arc_compare_op0, arc_compare_op1;
-/* Name of text, data, and rodata sections, as specified on command line.
- Selected by -m{text,data,rodata} flags. */
-static const char *arc_text_string = ARC_DEFAULT_TEXT_SECTION;
-static const char *arc_data_string = ARC_DEFAULT_DATA_SECTION;
-static const char *arc_rodata_string = ARC_DEFAULT_RODATA_SECTION;
-
/* Name of text, data, and rodata sections used in varasm.c. */
const char *arc_text_section;
const char *arc_data_section;
@@ -163,24 +156,7 @@ arc_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
switch (code)
{
case OPT_mcpu_:
- if (strcmp (arg, "base") == 0 || ARC_EXTENSION_CPU (arg))
- {
- arc_cpu_string = arg;
- return true;
- }
- return false;
-
- case OPT_mtext_:
- arc_text_string = arg;
- return true;
-
- case OPT_mdata_:
- arc_data_string = arg;
- return true;
-
- case OPT_mrodata_:
- arc_rodata_string = arg;
- return true;
+ return strcmp (arg, "base") == 0 || ARC_EXTENSION_CPU (arg);
default:
return true;
diff --git a/gcc/config/arc/arc.opt b/gcc/config/arc/arc.opt
index ffb6b010b7b..919550a2878 100644
--- a/gcc/config/arc/arc.opt
+++ b/gcc/config/arc/arc.opt
@@ -39,17 +39,17 @@ mno-cond-exec
Target Undocumented Report RejectNegative Mask(NO_COND_EXEC)
mcpu=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(arc_cpu_string) Init("base")
-mcpu=CPU Compile code for ARC variant CPU
mtext=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(arc_text_string) Init(ARC_DEFAULT_TEXT_SECTION)
-mtext=SECTION Put functions in SECTION
mdata=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(arc_data_string) Init(ARC_DEFAULT_DATA_SECTION)
-mdata=SECTION Put data in SECTION
mrodata=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(arc_rodata_string) Init(ARC_DEFAULT_RODATA_SECTION)
-mrodata=SECTION Put read-only data in SECTION
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index f2266c7c991..3cfca14220e 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -374,20 +374,7 @@ enum float_abi_type arm_float_abi;
/* Which ABI to use. */
enum arm_abi_type arm_abi;
-/* Set by the -mfpu=... option. */
-static const char * target_fpu_name = NULL;
-
-/* Set by the -mfpe=... option. */
-static const char * target_fpe_name = NULL;
-
-/* Set by the -mfloat-abi=... option. */
-static const char * target_float_abi_name = NULL;
-
-/* Set by the -mabi=... option. */
-static const char * target_abi_name = NULL;
-
/* Used to parse -mstructure_size_boundary command line option. */
-static const char * structure_size_string = NULL;
int arm_structure_size_boundary = DEFAULT_STRUCTURE_SIZE_BOUNDARY;
/* Used for Thumb call_via trampolines. */
@@ -498,7 +485,6 @@ int arm_cpp_interwork = 0;
enum machine_mode output_memory_reference_mode;
/* The register number to be used for the PIC offset register. */
-static const char * arm_pic_register_string = NULL;
int arm_pic_register = INVALID_REGNUM;
/* Set to 1 when a return insn is output, this means that the epilogue
@@ -801,10 +787,6 @@ arm_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
{
switch (code)
{
- case OPT_mabi_:
- target_abi_name = arg;
- return true;
-
case OPT_march_:
arm_select[1].string = arg;
return true;
@@ -813,35 +795,14 @@ arm_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
arm_select[0].string = arg;
return true;
- case OPT_mfloat_abi_:
- target_float_abi_name = arg;
- return true;
-
- case OPT_mfp_:
- case OPT_mfpe_:
- target_fpe_name = arg;
- return true;
-
- case OPT_mfpu_:
- target_fpu_name = arg;
- return true;
-
case OPT_mhard_float:
target_float_abi_name = "hard";
return true;
- case OPT_mpic_register_:
- arm_pic_register_string = arg;
- return true;
-
case OPT_msoft_float:
target_float_abi_name = "soft";
return true;
- case OPT_mstructure_size_boundary_:
- structure_size_string = arg;
- return true;
-
case OPT_mtune_:
arm_select[2].string = arg;
return true;
diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
index 28bec490e38..d03679a2d66 100644
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -20,7 +20,7 @@
; 02111-1307, USA.
mabi=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(target_abi_name)
Specify an ABI
mabort-on-noreturn
@@ -73,21 +73,21 @@ Target RejectNegative Joined
Specify the name of the target CPU
mfloat-abi=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(target_float_abi_name)
Specify if floating point hardware should be used
mfp=
-Target RejectNegative Joined Undocumented
+Target RejectNegative Joined Undocumented Var(target_fpe_name) VarExists
;; Now ignored.
mfpe
Target RejectNegative Mask(FPE) Undocumented
mfpe=
-Target RejectNegative Joined Undocumented
+Target RejectNegative Joined Undocumented Var(target_fpe_name)
mfpu=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(target_fpu_name)
Specify the name of the target floating point hardware/format
mhard-float
@@ -103,7 +103,7 @@ Target Report Mask(LONG_CALLS)
Generate call insns as indirect calls, if necessary
mpic-register=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(arm_pic_register_string)
Specify the register to be used for PIC addressing
mpoke-function-name
@@ -123,7 +123,7 @@ Target RejectNegative
Alias for -mfloat-abi=soft
mstructure-size-boundary=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(structure_size_string)
Specify the minimum bit alignment of structures
mthumb
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 45b51f24fb5..3de646b025d 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -48,7 +48,6 @@
/* Maximal allowed offset for an address in the LD command */
#define MAX_LD_OFFSET(MODE) (64 - (signed)GET_MODE_SIZE (MODE))
-static bool avr_handle_option (size_t, const char *, int);
static int avr_naked_function_p (tree);
static int interrupt_function_p (tree);
static int signal_function_p (tree);
@@ -111,12 +110,6 @@ static int epilogue_size;
/* Size of all jump tables in the current function, in words. */
static int jump_tables_size;
-/* Initial stack value specified by the `-minit-stack=' option */
-static const char *avr_init_stack = "__stack";
-
-/* Default MCU name */
-static const char *avr_mcu_name = "avr2";
-
/* Preprocessor macros to define depending on MCU type. */
const char *avr_base_arch_macro;
const char *avr_extra_arch_macro;
@@ -245,8 +238,6 @@ int avr_case_values_threshold = 30000;
#define TARGET_ATTRIBUTE_TABLE avr_attribute_table
#undef TARGET_ASM_FUNCTION_RODATA_SECTION
#define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section
-#undef TARGET_HANDLE_OPTION
-#define TARGET_HANDLE_OPTION avr_handle_option
#undef TARGET_INSERT_ATTRIBUTES
#define TARGET_INSERT_ATTRIBUTES avr_insert_attributes
#undef TARGET_SECTION_TYPE_FLAGS
@@ -266,26 +257,6 @@ int avr_case_values_threshold = 30000;
struct gcc_target targetm = TARGET_INITIALIZER;
-/* Implement TARGET_HANDLE_OPTION. */
-
-static bool
-avr_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
-{
- switch (code)
- {
- case OPT_minit_stack_:
- avr_init_stack = arg;
- return true;
-
- case OPT_mmcu_:
- avr_mcu_name = arg;
- return true;
-
- default:
- return true;
- }
-}
-
void
avr_override_options (void)
{
diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt
index 8d40f926907..303816a24e9 100644
--- a/gcc/config/avr/avr.opt
+++ b/gcc/config/avr/avr.opt
@@ -24,14 +24,14 @@ Target Report Mask(CALL_PROLOGUES)
Use subroutines for function prologues and epilogues
mmcu=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(avr_mcu_name) Init("avr2")
-mmcu=MCU Select the target MCU
mdeb
Target Report Undocumented Mask(ALL_DEBUG)
minit-stack=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(avr_init_stack) Init("__stack")
-minit-stack=STACK Use STACK as the initial value of the stack pointer
mint8
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 8f3e0547457..e20a6c3991d 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -67,8 +67,6 @@ const char *byte_reg_names[] = BYTE_REGISTER_NAMES;
static int arg_regs[] = FUNCTION_ARG_REGISTERS;
-/* The value passed to -mshared-library-id=. */
-static int bfin_library_id;
/* Nonzero if -mshared-library-id was given. */
static int bfin_lib_id_given;
@@ -1722,8 +1720,6 @@ bfin_handle_option (size_t code, const char *arg, int value)
if (value > MAX_LIBRARY_ID)
error ("-mshared-library-id=%s is not between 0 and %d",
arg, MAX_LIBRARY_ID);
- else
- bfin_library_id = value;
bfin_lib_id_given = 1;
return true;
diff --git a/gcc/config/bfin/bfin.opt b/gcc/config/bfin/bfin.opt
index 827947d5e6a..4aace2f7182 100644
--- a/gcc/config/bfin/bfin.opt
+++ b/gcc/config/bfin/bfin.opt
@@ -36,5 +36,5 @@ Target Report Mask(ID_SHARED_LIBRARY)
Enabled ID based shared library
mshared-library-id=
-Target RejectNegative Joined UInteger
+Target RejectNegative Joined UInteger Var(bfin_library_id)
ID of shared library to build
diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c
index 119c7be80d8..110dfcc00aa 100644
--- a/gcc/config/c4x/c4x.c
+++ b/gcc/config/c4x/c4x.c
@@ -153,7 +153,6 @@ enum machine_mode c4x_caller_save_map[FIRST_PSEUDO_REGISTER] =
rtx c4x_compare_op0;
rtx c4x_compare_op1;
-int c4x_rpts_cycles = 0; /* Max. cycles for RPTS. */
int c4x_cpu_version = 40; /* CPU version C30/31/32/33/40/44. */
/* Pragma definitions. */
@@ -291,10 +290,6 @@ c4x_handle_option (size_t code, const char *arg, int value)
}
return false;
- case OPT_mrpts_:
- c4x_rpts_cycles = value;
- return true;
-
default:
return true;
}
diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h
index 832ed8e4609..b9fd452b4ac 100644
--- a/gcc/config/c4x/c4x.h
+++ b/gcc/config/c4x/c4x.h
@@ -121,7 +121,6 @@
RPTS blocks interrupts. */
-extern int c4x_rpts_cycles; /* Max cycles for RPTS. */
extern int c4x_cpu_version; /* Cpu version C30/31/32/33/40/44. */
#define TARGET_INLINE (! optimize_size) /* Inline MPYI. */
diff --git a/gcc/config/c4x/c4x.opt b/gcc/config/c4x/c4x.opt
index a135e632fe4..43288463575 100644
--- a/gcc/config/c4x/c4x.opt
+++ b/gcc/config/c4x/c4x.opt
@@ -128,7 +128,7 @@ Target Report Mask(RPTS)
Enable use of RTPS instruction
mrpts=
-Target RejectNegative Joined UInteger
+Target RejectNegative Joined UInteger Var(c4x_rpts_cycles)
-mrpts=N Set the maximum number of iterations for RPTS to N
msmall
diff --git a/gcc/config/cris/aout.h b/gcc/config/cris/aout.h
index 0b6e61e3cf1..f39676cdaa5 100644
--- a/gcc/config/cris/aout.h
+++ b/gcc/config/cris/aout.h
@@ -94,10 +94,6 @@ Boston, MA 02111-1307, USA. */
+ MASK_ALIGN_BY_32); \
break; \
\
- case OPT_melinux_stacksize_: \
- cris_elinux_stacksize_str = (ARG); \
- break; \
- \
default: \
break; \
} \
diff --git a/gcc/config/cris/aout.opt b/gcc/config/cris/aout.opt
index f51dc2e68fc..b821d576fa0 100644
--- a/gcc/config/cris/aout.opt
+++ b/gcc/config/cris/aout.opt
@@ -27,6 +27,8 @@ melinux
Target Report RejectNegative
Compile for the MMU-less Etrax 100-based elinux system
+;; We don't parse it currently; it's just passed on to the linker.
+;; We might want to do something here someday.
melinux-stacksize=
-Target Report RejectNegative Joined
+Target Report RejectNegative Joined Var(cris_elinux_stacksize_str)
-melinux-stacksize=SIZE For elinux, request a specified stack-size for this program
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 81e3ce6fb39..0bc8b8cf8aa 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -132,18 +132,6 @@ static tree cris_md_asm_clobbers (tree, tree, tree);
static bool cris_handle_option (size_t, const char *, int);
-/* This is the argument from the "-max-stack-stackframe=" option. */
-const char *cris_max_stackframe_str;
-
-/* This is the argument from the "-march=" option. */
-const char *cris_cpu_str;
-
-/* This is the argument from the "-mtune=" option. */
-const char *cris_tune_str;
-
-/* This is the argument from the "-melinux-stacksize=" option. */
-const char *cris_elinux_stacksize_str;
-
/* This is the parsed result of the "-max-stack-stackframe=" option. If
it (still) is zero, then there was no such option given. */
int cris_max_stackframe = 0;
@@ -2073,20 +2061,6 @@ cris_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
+ MASK_DATA_ALIGN);
break;
- case OPT_max_stackframe_:
- case OPT_mmax_stackframe_:
- cris_max_stackframe_str = arg;
- break;
-
- case OPT_march_:
- case OPT_mcpu_:
- cris_cpu_str = arg;
- break;
-
- case OPT_mtune_:
- cris_tune_str = arg;
- break;
-
default:
break;
}
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index bdf48238016..4f998d05fa7 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -75,23 +75,9 @@ Boston, MA 02111-1307, USA. */
((MODE) != BLKmode ? GET_MODE_SIZE (MODE) \
: (unsigned) int_size_in_bytes (TYPE))
-/* Check for max allowed stackframe. A "const char *" to be parsed. */
-extern const char *cris_max_stackframe_str;
-
-/* Which CPU version this is. A "const char *" to be parsed. */
-extern const char *cris_cpu_str;
-
/* Which CPU version this is. The parsed and adjusted cris_cpu_str. */
extern int cris_cpu_version;
-/* Which CPU version to tune for. A "const char *" to be parsed. */
-extern const char *cris_tune_str;
-
-/* The argument to "-melinux-stacksize=". We don't parse it currently;
- it's just passed on to the linker. We might want to do something
- here someday. */
-extern const char *cris_elinux_stacksize_str;
-
/* Changing the order used to be necessary to put the fourth __make_dp
argument (a DImode parameter) in registers, to fit with the libfunc
parameter passing scheme used for intrinsic functions. FIXME: Check
diff --git a/gcc/config/cris/cris.opt b/gcc/config/cris/cris.opt
index 0aad8e7d14c..c828f61f3b0 100644
--- a/gcc/config/cris/cris.opt
+++ b/gcc/config/cris/cris.opt
@@ -159,22 +159,22 @@ Target Report RejectNegative
Override -mbest-lib-options
mcpu=
-Target Report RejectNegative Joined Undocumented
+Target Report RejectNegative Joined Undocumented Var(cris_cpu_str)
march=
-Target Report RejectNegative Joined
+Target Report RejectNegative Joined Var(cris_cpu_str) VarExists
-march=ARCH Generate code for the specified chip or CPU version
mtune=
-Target Report RejectNegative Joined
+Target Report RejectNegative Joined Var(cris_tune_str)
-mtune=ARCH Tune alignment for the specified chip or CPU version
mmax-stackframe=
-Target Report RejectNegative Joined
+Target Report RejectNegative Joined Var(cris_max_stackframe_str)
-mmax-stackframe=SIZE Warn when a stackframe is larger than the specified size
max-stackframe=
-Target Report RejectNegative Joined Undocumented
+Target Report RejectNegative Joined Undocumented Var(cris_max_stackframe_str) VarExists
; TARGET_SVINTO: Currently this just affects alignment. FIXME:
; Redundant with TARGET_ALIGN_BY_32, or put machine stuff here?
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 43fcd2ef4e4..55d0069c5ba 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -787,15 +787,11 @@ struct ix86_frame
bool save_regs_using_mov;
};
-/* Code model option as passed by user. */
-static const char *ix86_cmodel_string;
-/* Parsed value. */
+/* Code model option. */
enum cmodel ix86_cmodel;
/* Asm dialect. */
-static const char *ix86_asm_string;
enum asm_dialect ix86_asm_dialect = ASM_ATT;
/* TLS dialext. */
-static const char *ix86_tls_dialect_string;
enum tls_dialect ix86_tls_dialect = TLS_DIALECT_GNU;
/* Which unit we are generating floating point math for. */
@@ -806,40 +802,17 @@ enum processor_type ix86_tune;
/* Which instruction set architecture to use. */
enum processor_type ix86_arch;
-/* Strings to hold which cpu and instruction set architecture to use. */
-const char *ix86_tune_string; /* for -mtune=<xxx> */
-const char *ix86_arch_string; /* for -march=<xxx> */
-static const char *ix86_fpmath_string; /* for -mfpmath=<xxx> */
-
-/* # of registers to use to pass arguments. */
-static const char *ix86_regparm_string;
-
/* true if sse prefetch instruction is not NOOP. */
int x86_prefetch_sse;
/* ix86_regparm_string as a number */
static int ix86_regparm;
-/* Alignment to use for loops and jumps: */
-
-/* Power of two alignment for loops. */
-static const char *ix86_align_loops_string;
-
-/* Power of two alignment for non-loop jumps. */
-static const char *ix86_align_jumps_string;
-
-/* Power of two alignment for stack boundary in bytes. */
-static const char *ix86_preferred_stack_boundary_string;
-
/* Preferred alignment for stack boundary in bits. */
unsigned int ix86_preferred_stack_boundary;
/* Values 1-5: see jump.c */
int ix86_branch_cost;
-static const char *ix86_branch_cost_string;
-
-/* Power of two alignment for functions. */
-static const char *ix86_align_funcs_string;
/* Prefix built by ASM_GENERATE_INTERNAL_LABEL. */
char internal_label_prefix[16];
@@ -1107,7 +1080,7 @@ struct gcc_target targetm = TARGET_INITIALIZER;
/* Implement TARGET_HANDLE_OPTION. */
static bool
-ix86_handle_option (size_t code, const char *arg, int value)
+ix86_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED, int value)
{
switch (code)
{
@@ -1119,38 +1092,6 @@ ix86_handle_option (size_t code, const char *arg, int value)
}
return true;
- case OPT_malign_functions_:
- ix86_align_funcs_string = arg;
- return true;
-
- case OPT_malign_jumps_:
- ix86_align_jumps_string = arg;
- return true;
-
- case OPT_malign_loops_:
- ix86_align_loops_string = arg;
- return true;
-
- case OPT_march_:
- ix86_arch_string = arg;
- return true;
-
- case OPT_masm_:
- ix86_asm_string = arg;
- return true;
-
- case OPT_mbranch_cost_:
- ix86_branch_cost_string = arg;
- return true;
-
- case OPT_mcmodel_:
- ix86_cmodel_string = arg;
- return true;
-
- case OPT_mfpmath_:
- ix86_fpmath_string = arg;
- return true;
-
case OPT_mmmx:
if (!value)
{
@@ -1159,14 +1100,6 @@ ix86_handle_option (size_t code, const char *arg, int value)
}
return true;
- case OPT_mpreferred_stack_boundary_:
- ix86_preferred_stack_boundary_string = arg;
- return true;
-
- case OPT_mregparm_:
- ix86_regparm_string = arg;
- return true;
-
case OPT_msse:
if (!value)
{
@@ -1183,14 +1116,6 @@ ix86_handle_option (size_t code, const char *arg, int value)
}
return true;
- case OPT_mtls_dialect_:
- ix86_tls_dialect_string = arg;
- return true;
-
- case OPT_mtune_:
- ix86_tune_string = arg;
- return true;
-
default:
return true;
}
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index d65ce49a4c5..0a9df5a9ec4 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2132,10 +2132,7 @@ enum processor_type
};
extern enum processor_type ix86_tune;
-extern const char *ix86_tune_string;
-
extern enum processor_type ix86_arch;
-extern const char *ix86_arch_string;
enum fpmath_unit
{
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index 5571deebe4e..64337d49e46 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -60,15 +60,15 @@ Target Report Mask(ALIGN_DOUBLE)
Align some doubles on dword boundary
malign-functions=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_align_funcs_string)
Function starts are aligned to this power of 2
malign-jumps=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_align_jumps_string)
Jump targets are aligned to this power of 2
malign-loops=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_align_loops_string)
Loop code aligned to this power of 2
malign-stringops
@@ -76,19 +76,19 @@ Target RejectNegative Report InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS)
Align destination of the string operations
march=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_arch_string)
Generate code for given CPU
masm=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_asm_string)
Use given assembler dialect
mbranch-cost=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_branch_cost_string)
Branches are this expensive (1-5, arbitrary units)
mcmodel=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_cmodel_string)
Use given x86-64 code model
mdebug-addr
@@ -106,7 +106,7 @@ Target Report Mask(FLOAT_RETURNS)
Return values of functions in FPU registers
mfpmath=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_fpmath_string)
Generate floating point mathematics using given instruction set
mhard-float
@@ -158,7 +158,7 @@ Target RejectNegative Undocumented
;; Deprecated
mpreferred-stack-boundary=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_preferred_stack_boundary_string)
Attempt to keep stack aligned to this power of 2
mpush-args
@@ -170,7 +170,7 @@ Target RejectNegative Report InverseMask(NO_RED_ZONE, RED_ZONE)
Use red-zone in the x86-64 code
mregparm=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_regparm_string)
Number of registers used to pass integer arguments
mrtd
@@ -202,7 +202,7 @@ Target Report Mask(STACK_PROBE)
Enable stack probing
mtls-dialect=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_tls_dialect_string)
Use given thread-local storage dialect
mtls-direct-seg-refs
@@ -210,7 +210,7 @@ Target Report Mask(TLS_DIRECT_SEG_REFS)
Use direct references against %gs when accessing tls data
mtune=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(ix86_tune_string)
Schedule code for given CPU
;; Support Athlon 3Dnow builtins
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index a52b7d850d4..69a7f1e44d4 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -98,10 +98,6 @@ static const char * const ia64_local_reg_names[80] =
static const char * const ia64_output_reg_names[8] =
{ "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7" };
-/* Determines whether we use adds, addl, or movl to generate our
- TLS immediate offsets. */
-int ia64_tls_size = 22;
-
/* Which cpu are we scheduling for. */
enum processor_type ia64_tune = PROCESSOR_ITANIUM2;
@@ -4822,7 +4818,7 @@ fix_range (const char *const_str)
/* Implement TARGET_HANDLE_OPTION. */
static bool
-ia64_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
+ia64_handle_option (size_t code, const char *arg, int value)
{
switch (code)
{
@@ -4831,15 +4827,9 @@ ia64_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
return true;
case OPT_mtls_size_:
- {
- char *end;
- unsigned long tmp = strtoul (arg, &end, 10);
- if (*end || (tmp != 14 && tmp != 22 && tmp != 64))
- error ("bad value %<%s%> for -mtls-size= switch", arg);
- else
- ia64_tls_size = tmp;
- return true;
- }
+ if (value != 14 && value != 22 && value != 64)
+ error ("bad value %<%s%> for -mtls-size= switch", arg);
+ return true;
case OPT_mtune_:
{
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index bd32069b171..28a8637defd 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -67,7 +67,6 @@ extern unsigned int ia64_section_threshold;
#define TARGET_HAVE_TLS true
#endif
-extern int ia64_tls_size;
#define TARGET_TLS14 (ia64_tls_size == 14)
#define TARGET_TLS22 (ia64_tls_size == 22)
#define TARGET_TLS64 (ia64_tls_size == 64)
diff --git a/gcc/config/ia64/ia64.opt b/gcc/config/ia64/ia64.opt
index f3790ad1012..25a2cc6a91b 100644
--- a/gcc/config/ia64/ia64.opt
+++ b/gcc/config/ia64/ia64.opt
@@ -89,7 +89,7 @@ Target RejectNegative Joined
Specify range of registers to make fixed
mtls-size=
-Target RejectNegative Joined
+Target RejectNegative Joined UInteger Var(ia64_tls_size) Init(22)
Specify bit size of immediate TLS offsets
mtune=
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index c27b2441127..c6c682de97a 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -64,18 +64,6 @@ enum m32r_sdata m32r_sdata = M32R_SDATA_DEFAULT;
/* For string literals, etc. */
#define LIT_NAME_P(NAME) ((NAME)[0] == '*' && (NAME)[1] == '.')
-/* Cache-flush support. Cache-flush is used at trampoline.
- Default cache-flush is "trap 12".
- default cache-flush function is "_flush_cache" (CACHE_FLUSH_FUNC)
- default cache-flush trap-interrupt number is 12 (CACHE_FLUSH_TRAP)
- You can change how to generate code of cache-flush with following options.
- -mflush-func=FLUSH-FUNC-NAME
- -mno-flush-func (sets m32r_cache_flush_func to NULL)
- -mfluch-trap=TRAP-NUMBER
- -mno-flush-trap. (sets m32r_cache_flush_trap to -1). */
-const char *m32r_cache_flush_func = CACHE_FLUSH_FUNC;
-int m32r_cache_flush_trap = CACHE_FLUSH_TRAP;
-
/* Forward declaration. */
static bool m32r_handle_option (size_t, const char *, int);
static void init_reg_tables (void);
@@ -188,17 +176,12 @@ m32r_handle_option (size_t code, const char *arg, int value)
return false;
return true;
- case OPT_mflush_func_:
- m32r_cache_flush_func = arg;
- return true;
-
case OPT_mno_flush_func:
m32r_cache_flush_func = NULL;
return true;
case OPT_mflush_trap_:
- m32r_cache_flush_trap = value;
- return m32r_cache_flush_trap <= 15;
+ return value <= 15;
case OPT_mno_flush_trap:
m32r_cache_flush_trap = -1;
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index a83886f3cef..5747c4491e2 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -209,10 +209,6 @@
#define TARGET_CPU_DEFAULT 0
#endif
-/* Cache-flush support. */
-extern const char * m32r_cache_flush_func;
-extern int m32r_cache_flush_trap;
-
/* Code Models
Code models are used to select between two choices of two separate
diff --git a/gcc/config/m32r/m32r.opt b/gcc/config/m32r/m32r.opt
index 73287852bb5..85fb8ede1da 100644
--- a/gcc/config/m32r/m32r.opt
+++ b/gcc/config/m32r/m32r.opt
@@ -48,11 +48,11 @@ Target Mask(DEBUG)
Display compile time statistics
mflush-func=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(m32r_cache_flush_func) Init(CACHE_FLUSH_FUNC)
Specify cache flush function
mflush-trap=
-Target RejectNegative Joined UInteger
+Target RejectNegative Joined UInteger Var(m32r_cache_flush_trap) Init(CACHE_FLUSH_TRAP)
Specify cache flush trap number
missue-rate=1
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 9faddde503d..9ddcf4d72a0 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -555,15 +555,9 @@ int mips_abi = MIPS_ABI_DEFAULT;
should arrange to call mips32 hard floating point code. */
int mips16_hard_float;
-/* The arguments passed to -march and -mtune. */
-static const char *mips_arch_string;
-static const char *mips_tune_string;
-
/* The architecture selected by -mipsN. */
static const struct mips_cpu_info *mips_isa_info;
-const char *mips_cache_flush_func = CACHE_FLUSH_FUNC;
-
/* If TRUE, we split addresses into their high and low parts in the RTL. */
int mips_split_addresses;
@@ -4215,21 +4209,13 @@ mips_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
return true;
case OPT_march_:
- mips_arch_string = arg;
- return mips_parse_cpu (arg) != 0;
-
case OPT_mtune_:
- mips_tune_string = arg;
return mips_parse_cpu (arg) != 0;
case OPT_mips:
mips_isa_info = mips_parse_cpu (ACONCAT (("mips", arg, NULL)));
return mips_isa_info != 0;
- case OPT_mflush_func_:
- mips_cache_flush_func = arg;
- return true;
-
case OPT_mno_flush_func:
mips_cache_flush_func = NULL;
return true;
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index aeadac30fa8..9de422d95d1 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -105,7 +105,6 @@ extern enum processor_type mips_tune; /* which cpu to schedule for */
extern int mips_isa; /* architectural level */
extern int mips_abi; /* which ABI to use */
extern int mips16_hard_float; /* mips16 without -msoft-float */
-extern const char *mips_cache_flush_func;/* for -mflush-func= and -mno-flush-func */
extern const struct mips_cpu_info mips_cpu_info_table[];
extern const struct mips_cpu_info *mips_arch_info;
extern const struct mips_cpu_info *mips_tune_info;
diff --git a/gcc/config/mips/mips.opt b/gcc/config/mips/mips.opt
index cb78b8e7b40..3e028962973 100644
--- a/gcc/config/mips/mips.opt
+++ b/gcc/config/mips/mips.opt
@@ -32,7 +32,7 @@ Target Report Var(TARGET_MAD)
Use PMC-style 'mad' instructions
march=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(mips_arch_string)
-march=ISA Generate code for the given ISA
mbranch-likely
@@ -114,7 +114,7 @@ Target Report RejectNegative Mask(FLOAT64)
Use 64-bit floating-point registers
mflush-func=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(mips_cache_flush_func) Init(CACHE_FLUSH_FUNC)
-mflush-func=FUNC Use FUNC to flush the cache before calling stack trampolines
mfused-madd
@@ -198,7 +198,7 @@ Target Report Var(TARGET_SYM32)
Assume all symbols have 32-bit values
mtune=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(mips_tune_string)
-mtune=PROCESSOR Optimize the output for PROCESSOR
muninit-const-in-rodata
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 2c860e7da1b..218432078fc 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -186,7 +186,6 @@ enum processor_flags s390_tune_flags;
/* Which instruction set architecture to use. */
enum processor_type s390_arch;
enum processor_flags s390_arch_flags;
-static const char *s390_arch_string;
HOST_WIDE_INT s390_warn_framesize = 0;
HOST_WIDE_INT s390_stack_size = 0;
@@ -1128,7 +1127,6 @@ s390_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
switch (code)
{
case OPT_march_:
- s390_arch_string = arg;
return s390_handle_arch_option (arg, &s390_arch, &s390_arch_flags);
case OPT_mstack_guard_:
diff --git a/gcc/config/s390/s390.opt b/gcc/config/s390/s390.opt
index 9ece6f13a3c..e020e63f221 100644
--- a/gcc/config/s390/s390.opt
+++ b/gcc/config/s390/s390.opt
@@ -28,7 +28,7 @@ Target Report RejectNegative Mask(64BIT)
64 bit ABI
march=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(s390_arch_string)
Generate code for given CPU
mbackchain
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 1958f3f3982..e5e6430a661 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -370,9 +370,6 @@ const struct attribute_spec sparc_attribute_table[];
/* Option handling. */
-/* Code model option as passed by user. */
-const char *sparc_cmodel_string;
-
/* Parsed value. */
enum cmodel sparc_cmodel;
@@ -540,10 +537,6 @@ sparc_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
case OPT_mtune_:
sparc_select[2].string = arg;
break;
-
- case OPT_mcmodel_:
- sparc_cmodel_string = arg;
- break;
}
return true;
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 9fcee127385..aa3752c9d6f 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -191,8 +191,6 @@ enum cmodel {
CM_EMBMEDANY
};
-/* Value of -mcmodel specified by user. */
-extern const char *sparc_cmodel_string;
/* One of CM_FOO. */
extern enum cmodel sparc_cmodel;
diff --git a/gcc/config/sparc/sparc.opt b/gcc/config/sparc/sparc.opt
index 88a603c6f56..6bee67d8d25 100644
--- a/gcc/config/sparc/sparc.opt
+++ b/gcc/config/sparc/sparc.opt
@@ -96,7 +96,7 @@ Target RejectNegative Joined
Schedule code for given CPU
mcmodel=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(sparc_cmodel_string)
Use given SPARC-V9 code model