Remove VarExists

Richard Guenther richard.guenther@gmail.com
Thu Sep 30 03:31:00 GMT 2010


On Wed, Sep 29, 2010 at 4:19 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> This patch (including Fortran and Java pieces, though I consider those
> obvious), relative to a tree with
> <http://gcc.gnu.org/ml/gcc-patches/2010-09/msg02171.html> (pending
> review of the non-front-end pieces) applied, removes the VarExists
> markers from .opt files and the documentation for VarExists.  As
> discussed in that previous message, nothing makes use of VarExists
> information after that patch.
>
> Bootstrapped with no regressions on x86_64-unknown-linux-gnu.  OK to
> commit?

Ok.

Thanks,
Richard.

> 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
>
>        * doc/options.texi (Variable, Var, Init): Update documentation
>        without reference to VarExists.
>        (VarExists): Remove.
>        * common.opt, config/i386/i386.opt, config/linux.opt,
>        config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
>        Don't use VarExists.
>
> c-family:
> 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
>
>        * c.opt: Don't use VarExists.
>
> fortran:
> 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
>
>        * lang.opt: Don't use VarExists.
>
> java:
> 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
>
>        * lang.opt: Don't use VarExists.
>
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/c-family/c.opt gcc-mainline/gcc/c-family/c.opt
> --- gcc-mainline-0struct/gcc/c-family/c.opt     2010-09-22 13:21:02.000000000 -0700
> +++ gcc-mainline/gcc/c-family/c.opt     2010-09-29 05:34:21.000000000 -0700
> @@ -966,11 +966,11 @@ C++ ObjC++ Optimization Var(flag_threads
>  -fno-threadsafe-statics        Do not generate thread-safe code for initializing local statics
>
>  funsigned-bitfields
> -C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0) VarExists
> +C ObjC C++ ObjC++ Var(flag_signed_bitfields, 0)
>  When \"signed\" or \"unsigned\" is not given make the bitfield unsigned
>
>  funsigned-char
> -C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0) VarExists
> +C ObjC C++ ObjC++ LTO Var(flag_signed_char, 0)
>  Make \"char\" unsigned by default
>
>  fuse-cxa-atexit
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/common.opt gcc-mainline/gcc/common.opt
> --- gcc-mainline-0struct/gcc/common.opt 2010-09-27 17:01:33.000000000 -0700
> +++ gcc-mainline/gcc/common.opt 2010-09-29 05:34:15.000000000 -0700
> @@ -1064,7 +1064,7 @@ Common Report Var(flag_merge_constants,2
>  Attempt to merge identical constants and constant variables
>
>  fmerge-constants
> -Common Report Var(flag_merge_constants,1) VarExists Optimization
> +Common Report Var(flag_merge_constants,1) Optimization
>  Attempt to merge identical constants across compilation units
>
>  fmerge-debug-strings
> @@ -1092,7 +1092,7 @@ Common RejectNegative Report Var(flag_mu
>  Add mudflap bounds-checking instrumentation for single-threaded program
>
>  fmudflapth
> -Common RejectNegative Report VarExists Var(flag_mudflap,2)
> +Common RejectNegative Report Var(flag_mudflap,2)
>  Add mudflap bounds-checking instrumentation for multi-threaded program
>
>  fmudflapir
> @@ -1172,11 +1172,11 @@ Common Report Var(flag_pie,2)
>  Generate position-independent code for executables if possible (large mode)
>
>  fpic
> -Common Report Var(flag_pic,1) VarExists
> +Common Report Var(flag_pic,1)
>  Generate position-independent code if possible (small mode)
>
>  fpie
> -Common Report Var(flag_pie,1) VarExists
> +Common Report Var(flag_pie,1)
>  Generate position-independent code for executables if possible (small mode)
>
>  fplugin=
> @@ -1250,7 +1250,7 @@ Common Report Var(flag_record_gcc_switch
>  Record gcc command line switches in the object file.
>
>  freg-struct-return
> -Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
> +Common Report Var(flag_pcc_struct_return,0) Optimization
>  Return small aggregates in registers
>
>  fregmove
> @@ -1458,7 +1458,7 @@ Common Report Var(flag_stack_protect, 1)
>  Use propolice as a stack protection method
>
>  fstack-protector-all
> -Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
> +Common Report RejectNegative Var(flag_stack_protect, 2)
>  Use a stack protection method for every function
>
>  fstack-usage
> @@ -1818,7 +1818,7 @@ Common RejectNegative Var(dwarf_strict,0
>  Emit DWARF additions beyond selected version
>
>  gstrict-dwarf
> -Common Report RejectNegative Var(dwarf_strict,1) VarExists
> +Common Report RejectNegative Var(dwarf_strict,1)
>  Don't emit DWARF additions beyond selected version
>
>  gtoggle
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/config/i386/i386.opt gcc-mainline/gcc/config/i386/i386.opt
> --- gcc-mainline-0struct/gcc/config/i386/i386.opt       2010-09-17 07:11:45.000000000 -0700
> +++ gcc-mainline/gcc/config/i386/i386.opt       2010-09-29 05:35:13.000000000 -0700
> @@ -266,111 +266,111 @@ is selected.
>  ;; ISA support
>
>  m32
> -Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) VarExists Save
> +Target RejectNegative Negative(m64) Report InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
>  Generate 32bit i386 code
>
>  m64
> -Target RejectNegative Negative(m32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) VarExists Save
> +Target RejectNegative Negative(m32) Report Mask(ISA_64BIT) Var(ix86_isa_flags) Save
>  Generate 64bit x86-64 code
>
>  mmmx
> -Target Report Mask(ISA_MMX) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_MMX) Var(ix86_isa_flags) Save
>  Support MMX built-in functions
>
>  m3dnow
> -Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
>  Support 3DNow! built-in functions
>
>  m3dnowa
> -Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) VarExists Save
> +Target Undocumented Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
>  Support Athlon 3Dnow! built-in functions
>
>  msse
> -Target Report Mask(ISA_SSE) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE) Var(ix86_isa_flags) Save
>  Support MMX and SSE built-in functions and code generation
>
>  msse2
> -Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE2) Var(ix86_isa_flags) Save
>  Support MMX, SSE and SSE2 built-in functions and code generation
>
>  msse3
> -Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE3) Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation
>
>  mssse3
> -Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation
>
>  msse4.1
> -Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation
>
>  msse4.2
> -Target Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
>
>  msse4
> -Target RejectNegative Report Mask(ISA_SSE4_2) MaskExists Var(ix86_isa_flags) VarExists Save
> +Target RejectNegative Report Mask(ISA_SSE4_2) MaskExists Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation
>
>  mno-sse4
> -Target RejectNegative Report InverseMask(ISA_SSE4_1) MaskExists Var(ix86_isa_flags) VarExists Save
> +Target RejectNegative Report InverseMask(ISA_SSE4_1) MaskExists Var(ix86_isa_flags) Save
>  Do not support SSE4.1 and SSE4.2 built-in functions and code generation
>
>  mavx
> -Target Report Mask(ISA_AVX) Var(ix86_isa_flags) VarExists
> +Target Report Mask(ISA_AVX) Var(ix86_isa_flags)
>  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation
>
>  mfma
> -Target Report Mask(ISA_FMA) Var(ix86_isa_flags) VarExists
> +Target Report Mask(ISA_FMA) Var(ix86_isa_flags)
>  Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation
>
>  msse4a
> -Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
>  Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation
>
>  mfma4
> -Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_FMA4) Var(ix86_isa_flags) Save
>  Support FMA4 built-in functions and code generation
>
>  mxop
> -Target Report Mask(ISA_XOP) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_XOP) Var(ix86_isa_flags) Save
>  Support XOP built-in functions and code generation
>
>  mlwp
> -Target Report Mask(ISA_LWP) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_LWP) Var(ix86_isa_flags) Save
>  Support LWP built-in functions and code generation
>
>  mabm
> -Target Report Mask(ISA_ABM) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_ABM) Var(ix86_isa_flags) Save
>  Support code generation of Advanced Bit Manipulation (ABM) instructions.
>
>  mpopcnt
> -Target Report Mask(ISA_POPCNT) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
>  Support code generation of popcnt instruction.
>
>  mcx16
> -Target Report Mask(ISA_CX16) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_CX16) Var(ix86_isa_flags) Save
>  Support code generation of cmpxchg16b instruction.
>
>  msahf
> -Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) Save
>  Support code generation of sahf instruction in 64bit x86-64 code.
>
>  mmovbe
> -Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) Save
>  Support code generation of movbe instruction.
>
>  mcrc32
> -Target Report Mask(ISA_CRC32) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_CRC32) Var(ix86_isa_flags) Save
>  Support code generation of crc32 instruction.
>
>  maes
> -Target Report Mask(ISA_AES) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_AES) Var(ix86_isa_flags) Save
>  Support AES built-in functions and code generation
>
>  mpclmul
> -Target Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
>  Support PCLMUL built-in functions and code generation
>
>  msse2avx
> @@ -378,15 +378,15 @@ Target Report Var(ix86_sse2avx)
>  Encode SSE instructions with VEX prefix
>
>  mfsgsbase
> -Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
>  Support FSGSBASE built-in functions and code generation
>
>  mrdrnd
> -Target Report Mask(ISA_RDRND) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_RDRND) Var(ix86_isa_flags) Save
>  Support RDRND built-in functions and code generation
>
>  mf16c
> -Target Report Mask(ISA_F16C) Var(ix86_isa_flags) VarExists Save
> +Target Report Mask(ISA_F16C) Var(ix86_isa_flags) Save
>  Support F16C built-in functions and code generation
>
>  mfentry
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/config/linux.opt gcc-mainline/gcc/config/linux.opt
> --- gcc-mainline-0struct/gcc/config/linux.opt   2010-05-27 13:13:55.000000000 -0700
> +++ gcc-mainline/gcc/config/linux.opt   2010-09-29 05:34:31.000000000 -0700
> @@ -24,9 +24,9 @@ Target Report RejectNegative Var(linux_l
>  Use Bionic C library
>
>  mglibc
> -Target Report RejectNegative Var(linux_libc,LIBC_GLIBC) VarExists Negative(muclibc)
> +Target Report RejectNegative Var(linux_libc,LIBC_GLIBC) Negative(muclibc)
>  Use GNU C library
>
>  muclibc
> -Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) VarExists Negative(mbionic)
> +Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
>  Use uClibc C library
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/config/rs6000/rs6000.opt gcc-mainline/gcc/config/rs6000/rs6000.opt
> --- gcc-mainline-0struct/gcc/config/rs6000/rs6000.opt   2010-09-03 13:58:42.000000000 -0700
> +++ gcc-mainline/gcc/config/rs6000/rs6000.opt   2010-09-29 05:35:28.000000000 -0700
> @@ -188,7 +188,7 @@ msched-epilog
>  Target Undocumented Var(TARGET_SCHED_PROLOG) Init(1)
>
>  msched-prolog
> -Target Report Var(TARGET_SCHED_PROLOG) VarExists
> +Target Report Var(TARGET_SCHED_PROLOG)
>  Schedule the start and end of the procedure
>
>  maix-struct-return
> @@ -196,7 +196,7 @@ Target Report RejectNegative Var(aix_str
>  Return all structures in memory (AIX default)
>
>  msvr4-struct-return
> -Target Report RejectNegative Var(aix_struct_return,0) VarExists
> +Target Report RejectNegative Var(aix_struct_return,0)
>  Return small structures in registers (SVR4 default)
>
>  mxl-compat
> @@ -228,7 +228,7 @@ Target RejectNegative Var(TARGET_NO_SUM_
>  Do not place symbol+offset constants in TOC
>
>  msum-in-toc
> -Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists
> +Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0)
>  Place symbol+offset constants in TOC
>
>  ;  Output only one TOC entry per module.  Normally linking fails if
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/config/sh/sh.opt gcc-mainline/gcc/config/sh/sh.opt
> --- gcc-mainline-0struct/gcc/config/sh/sh.opt   2010-04-24 14:15:09.000000000 -0700
> +++ gcc-mainline/gcc/config/sh/sh.opt   2010-09-29 05:35:51.000000000 -0700
> @@ -1,6 +1,7 @@
>  ; Options for the SH port of the compiler.
>
> -; Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
> +; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
> +; Free Software Foundation, Inc.
>  ;
>  ; This file is part of GCC.
>  ;
> @@ -106,11 +107,11 @@ Target RejectNegative Condition(SUPPORT_
>  Generate SH4-200 FPU-less code
>
>  m4-300-nofpu
> -Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300) VarExists
> +Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300)
>  Generate SH4-300 FPU-less code
>
>  m4-340
> -Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300) VarExists
> +Target RejectNegative Condition(SUPPORT_SH4_NOFPU) Var(TARGET_SH4_300)
>  Generate code for SH4 340 series (MMU/FPU-less)
>  ;; passes -isa=sh4-nommu-nofpu to the assembler.
>
> @@ -137,7 +138,7 @@ Target RejectNegative Condition(SUPPORT_
>  Generate default single-precision SH4-200 code
>
>  m4-300-single
> -Target RejectNegative Condition(SUPPORT_SH4_SINGLE) Var(TARGET_SH4_300) VarExists
> +Target RejectNegative Condition(SUPPORT_SH4_SINGLE) Var(TARGET_SH4_300)
>  Generate default single-precision SH4-300 code
>
>  m4-single-only
> @@ -153,7 +154,7 @@ Target RejectNegative Condition(SUPPORT_
>  Generate only single-precision SH4-200 code
>
>  m4-300-single-only
> -Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) Var(TARGET_SH4_300) VarExists
> +Target RejectNegative Condition(SUPPORT_SH4_SINGLE_ONLY) Var(TARGET_SH4_300)
>  Generate only single-precision SH4-300 code
>
>  m4a
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/config/spu/spu.opt gcc-mainline/gcc/config/spu/spu.opt
> --- gcc-mainline-0struct/gcc/config/spu/spu.opt 2009-12-30 09:05:24.000000000 -0800
> +++ gcc-mainline/gcc/config/spu/spu.opt 2010-09-29 05:36:32.000000000 -0700
> @@ -1,5 +1,5 @@
>  ; Options for the SPU port of the compiler
> -; Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
> +; Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
>
>  ; This file is free software; you can redistribute it and/or modify it under
>  ; the terms of the GNU General Public License as published by the Free
> @@ -88,7 +88,7 @@ Target Report RejectNegative Var(spu_ea_
>  Access variables in 32-bit PPU objects (default)
>
>  mea64
> -Target Report RejectNegative Var(spu_ea_model,64) VarExists
> +Target Report RejectNegative Var(spu_ea_model,64)
>  Access variables in 64-bit PPU objects
>
>  maddress-space-conversion
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/doc/options.texi gcc-mainline/gcc/doc/options.texi
> --- gcc-mainline-0struct/gcc/doc/options.texi   2010-09-16 16:50:43.000000000 -0700
> +++ gcc-mainline/gcc/doc/options.texi   2010-09-29 05:33:02.000000000 -0700
> @@ -46,10 +46,10 @@ information.  These records have two fie
>  @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.
> +options where declaring the initializer in a single option definition
> +record, or duplicating it in many records, 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:
> @@ -177,7 +177,8 @@ compatibility with existing options that
>  via @option{-Wp,}; new options should not have this property.
>
>  @item Var(@var{var})
> -The state of this option should be stored in variable @var{var}.
> +The state of this option should be stored in variable @var{var}
> +(actually a macro for @code{global_options.x_@var{var}}).
>  The way that the state is stored depends on the type of option:
>
>  @itemize @bullet
> @@ -201,9 +202,8 @@ the argument string.  The pointer will b
>  and wasn't given.
>  @end itemize
>
> -The option-processing script will usually declare @var{var} in
> -@file{options.c} and leave it to be zero-initialized at start-up time.
> -You can modify this behavior using @code{VarExists} and @code{Init}.
> +The option-processing script will usually zero-initialize @var{var}.
> +You can modify this behavior using @code{Init}.
>
>  @item Var(@var{var}, @var{set})
>  The option controls an integer variable @var{var} and is active when
> @@ -214,17 +214,10 @@ when the ``no-'' form is used.
>  @var{var} is declared in the same way as for the single-argument form
>  described above.
>
> -@item VarExists
> -The variable specified by the @code{Var} property already exists.
> -No definition should be added to @file{options.c} in response to
> -this option record.
> -
> -You should use this property only if the variable is declared outside
> -@file{options.c}.
> -
>  @item Init(@var{value})
>  The variable specified by the @code{Var} property should be statically
> -initialized to @var{value}.
> +initialized to @var{value}.  If more than one option using the same
> +variable specifies @code{Init}, all must specify the same initializer.
>
>  @item Mask(@var{name})
>  The option is associated with a bit in the @code{target_flags}
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/fortran/lang.opt gcc-mainline/gcc/fortran/lang.opt
> --- gcc-mainline-0struct/gcc/fortran/lang.opt   2010-09-22 13:21:15.000000000 -0700
> +++ gcc-mainline/gcc/fortran/lang.opt   2010-09-29 05:34:45.000000000 -0700
> @@ -499,7 +499,7 @@ Fortran
>  Append a second underscore if the name already contains an underscore
>
>  fshort-enums
> -Fortran Var(flag_short_enums) VarExists
> +Fortran Var(flag_short_enums)
>  ; Documented in C
>
>  fsign-zero
> diff -rupN --exclude=.svn gcc-mainline-0struct/gcc/java/lang.opt gcc-mainline/gcc/java/lang.opt
> --- gcc-mainline-0struct/gcc/java/lang.opt      2010-09-22 13:21:02.000000000 -0700
> +++ gcc-mainline/gcc/java/lang.opt      2010-09-29 05:34:52.000000000 -0700
> @@ -114,7 +114,7 @@ Java
>  ; Documented for C
>
>  Wdeprecated
> -Java Var(warn_deprecated) VarExists
> +Java Var(warn_deprecated)
>  ; Documented for C
>
>  Wextraneous-semicolon
>
> --
> Joseph S. Myers
> joseph@codesourcery.com
>



More information about the Fortran mailing list