On Wed, Aug 17, 2011 at 1:35 PM, Joseph S. Myers <jos...@codesourcery.com> wrote: > On Wed, 17 Aug 2011, H.J. Lu wrote: > >> On Wed, Aug 17, 2011 at 12:28 PM, Joseph S. Myers >> <jos...@codesourcery.com> wrote: >> > On Sun, 7 Aug 2011, H.J. Lu wrote: >> > >> >> HOST_BITS_PER_WIDE_INT isn't defined in target library. >> >> I need to check if HOST_BITS_PER_WIDE_INT is defined >> >> first. Here is the updated patch. >> > >> > As I said in <http://gcc.gnu.org/ml/gcc/2011-07/msg00488.html>, you need >> > to check all CLVC_* uses for cases that need updating for HOST_WIDE_INT >> > fields. This patch fails to update option_enabled and get_option_state. >> > >> >> Here is the additional patch. > > Thanks. The target-independent parts of your patch are OK with these > extra changes, subject to the usual test requirements. > > -- > Joseph S. Myers > jos...@codesourcery.com
I am testing this complete patch. Richard, Uros, is x86 backend change OK? Thanks. -- H.J. ---- 2011-08-17 H.J. Lu <hongjiu...@intel.com> Igor Zamyatin <igor.zamya...@intel.com> * hwint.h (HOST_WIDE_INT_1): New. * opt-functions.awk (switch_bit_fields): Initialize the host_wide_int field. (host_wide_int_var_name): New. (var_type_struct): Check and return HOST_WIDE_INT. * opt-read.awk: Handle HOST_WIDE_INT for "Variable". * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly check masks for HOST_WIDE_INT. * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. (option_enabled): Likewise. (get_option_state): Likewise. * opts.h (cl_option): Add cl_host_wide_int. Change var_value to HOST_WIDE_INT. * config/i386/i386-c.c (ix86_target_macros_internal): Replace int with HOST_WIDE_INT for isa_flag. (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for isa variables. * config/i386/i386.c (ix86_target_string): Replace int with HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. (pta_flags): Removed. (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). (pta): Use HOST_WIDE_INT on flags. (builtin_isa): Use HOST_WIDE_INT on isa. (ix86_add_new_builtins): Likewise. (def_builtin): Use HOST_WIDE_INT on mask. (def_builtin_const): Likewise. (builtin_description): Likewise. * config/i386/i386.opt (ix86_isa_flags): Replace int with HOST_WIDE_INT. (ix86_isa_flags_explicit): Likewise. (x_ix86_isa_flags_explicit): Likewise.
2011-08-17 H.J. Lu <hongjiu...@intel.com> Igor Zamyatin <igor.zamya...@intel.com> * hwint.h (HOST_WIDE_INT_1): New. * opt-functions.awk (switch_bit_fields): Initialize the host_wide_int field. (host_wide_int_var_name): New. (var_type_struct): Check and return HOST_WIDE_INT. * opt-read.awk: Handle HOST_WIDE_INT for "Variable". * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly check masks for HOST_WIDE_INT. * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. (option_enabled): Likewise. (get_option_state): Likewise. * opts.h (cl_option): Add cl_host_wide_int. Change var_value to HOST_WIDE_INT. * config/i386/i386-c.c (ix86_target_macros_internal): Replace int with HOST_WIDE_INT for isa_flag. (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for isa variables. * config/i386/i386.c (ix86_target_string): Replace int with HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. (pta_flags): Removed. (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). (pta): Use HOST_WIDE_INT on flags. (builtin_isa): Use HOST_WIDE_INT on isa. (ix86_add_new_builtins): Likewise. (def_builtin): Use HOST_WIDE_INT on mask. (def_builtin_const): Likewise. (builtin_description): Likewise. * config/i386/i386.opt (ix86_isa_flags): Replace int with HOST_WIDE_INT. (ix86_isa_flags_explicit): Likewise. (x_ix86_isa_flags_explicit): Likewise. diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c index 1fc333c..c5a770f 100644 --- a/gcc/config/i386/i386-c.c +++ b/gcc/config/i386/i386-c.c @@ -34,14 +34,14 @@ along with GCC; see the file COPYING3. If not see static bool ix86_pragma_target_parse (tree, tree); static void ix86_target_macros_internal - (int, enum processor_type, enum processor_type, enum fpmath_unit, + (HOST_WIDE_INT, enum processor_type, enum processor_type, enum fpmath_unit, void (*def_or_undef) (cpp_reader *, const char *)); /* Internal function to either define or undef the appropriate system macros. */ static void -ix86_target_macros_internal (int isa_flag, +ix86_target_macros_internal (HOST_WIDE_INT isa_flag, enum processor_type arch, enum processor_type tune, enum fpmath_unit fpmath, @@ -301,9 +301,9 @@ ix86_pragma_target_parse (tree args, tree pop_target) tree cur_tree; struct cl_target_option *prev_opt; struct cl_target_option *cur_opt; - int prev_isa; - int cur_isa; - int diff_isa; + HOST_WIDE_INT prev_isa; + HOST_WIDE_INT cur_isa; + HOST_WIDE_INT diff_isa; enum processor_type prev_arch; enum processor_type prev_tune; enum processor_type cur_arch; diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fe6ccbe..308768b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2500,7 +2500,7 @@ static int ix86_function_regparm (const_tree, const_tree); static void ix86_compute_frame_layout (struct ix86_frame *); static bool ix86_expand_vector_init_one_nonzero (bool, enum machine_mode, rtx, rtx, int); -static void ix86_add_new_builtins (int); +static void ix86_add_new_builtins (HOST_WIDE_INT); static rtx ix86_expand_vec_perm_builtin (tree); static tree ix86_canonical_va_list_type (tree); static void predict_jump (int); @@ -2514,8 +2514,8 @@ enum ix86_function_specific_strings IX86_FUNCTION_SPECIFIC_MAX }; -static char *ix86_target_string (int, int, const char *, const char *, - enum fpmath_unit, bool); +static char *ix86_target_string (HOST_WIDE_INT, int, const char *, + const char *, enum fpmath_unit, bool); static void ix86_debug_options (void) ATTRIBUTE_UNUSED; static void ix86_function_specific_save (struct cl_target_option *); static void ix86_function_specific_restore (struct cl_target_option *); @@ -2633,13 +2633,14 @@ ix86_using_red_zone (void) responsible for freeing the string. */ static char * -ix86_target_string (int isa, int flags, const char *arch, const char *tune, - enum fpmath_unit fpmath, bool add_nl_p) +ix86_target_string (HOST_WIDE_INT isa, int flags, const char *arch, + const char *tune, enum fpmath_unit fpmath, + bool add_nl_p) { struct ix86_target_opts { const char *option; /* option string */ - int mask; /* isa mask options */ + HOST_WIDE_INT mask; /* isa mask options */ }; /* This table is ordered so that options like -msse4.2 that imply @@ -2747,7 +2748,8 @@ ix86_target_string (int isa, int flags, const char *arch, const char *tune, if (isa && add_nl_p) { opts[num++][0] = isa_other; - sprintf (isa_other, "(other isa: %#x)", isa); + sprintf (isa_other, "(other isa: %#" HOST_WIDE_INT_PRINT "x)", + isa); } /* Add flag options. */ @@ -2888,47 +2890,44 @@ ix86_option_override_internal (bool main_args_p) const char *suffix; const char *sw; - enum pta_flags - { - PTA_SSE = 1 << 0, - PTA_SSE2 = 1 << 1, - PTA_SSE3 = 1 << 2, - PTA_MMX = 1 << 3, - PTA_PREFETCH_SSE = 1 << 4, - PTA_3DNOW = 1 << 5, - PTA_3DNOW_A = 1 << 6, - PTA_64BIT = 1 << 7, - PTA_SSSE3 = 1 << 8, - PTA_CX16 = 1 << 9, - PTA_POPCNT = 1 << 10, - PTA_ABM = 1 << 11, - PTA_SSE4A = 1 << 12, - PTA_NO_SAHF = 1 << 13, - PTA_SSE4_1 = 1 << 14, - PTA_SSE4_2 = 1 << 15, - PTA_AES = 1 << 16, - PTA_PCLMUL = 1 << 17, - PTA_AVX = 1 << 18, - PTA_FMA = 1 << 19, - PTA_MOVBE = 1 << 20, - PTA_FMA4 = 1 << 21, - PTA_XOP = 1 << 22, - PTA_LWP = 1 << 23, - PTA_FSGSBASE = 1 << 24, - PTA_RDRND = 1 << 25, - PTA_F16C = 1 << 26, - PTA_BMI = 1 << 27, - PTA_TBM = 1 << 28, - PTA_LZCNT = 1 << 29 - /* if this reaches 32, need to widen struct pta flags below */ - }; +#define PTA_3DNOW (HOST_WIDE_INT_1 << 0) +#define PTA_3DNOW_A (HOST_WIDE_INT_1 << 1) +#define PTA_64BIT (HOST_WIDE_INT_1 << 2) +#define PTA_ABM (HOST_WIDE_INT_1 << 3) +#define PTA_AES (HOST_WIDE_INT_1 << 4) +#define PTA_AVX (HOST_WIDE_INT_1 << 5) +#define PTA_BMI (HOST_WIDE_INT_1 << 6) +#define PTA_CX16 (HOST_WIDE_INT_1 << 7) +#define PTA_F16C (HOST_WIDE_INT_1 << 8) +#define PTA_FMA (HOST_WIDE_INT_1 << 9) +#define PTA_FMA4 (HOST_WIDE_INT_1 << 10) +#define PTA_FSGSBASE (HOST_WIDE_INT_1 << 11) +#define PTA_LWP (HOST_WIDE_INT_1 << 12) +#define PTA_LZCNT (HOST_WIDE_INT_1 << 13) +#define PTA_MMX (HOST_WIDE_INT_1 << 14) +#define PTA_MOVBE (HOST_WIDE_INT_1 << 15) +#define PTA_NO_SAHF (HOST_WIDE_INT_1 << 16) +#define PTA_PCLMUL (HOST_WIDE_INT_1 << 17) +#define PTA_POPCNT (HOST_WIDE_INT_1 << 18) +#define PTA_PREFETCH_SSE (HOST_WIDE_INT_1 << 19) +#define PTA_RDRND (HOST_WIDE_INT_1 << 20) +#define PTA_SSE (HOST_WIDE_INT_1 << 21) +#define PTA_SSE2 (HOST_WIDE_INT_1 << 22) +#define PTA_SSE3 (HOST_WIDE_INT_1 << 23) +#define PTA_SSE4_1 (HOST_WIDE_INT_1 << 24) +#define PTA_SSE4_2 (HOST_WIDE_INT_1 << 25) +#define PTA_SSE4A (HOST_WIDE_INT_1 << 26) +#define PTA_SSSE3 (HOST_WIDE_INT_1 << 27) +#define PTA_TBM (HOST_WIDE_INT_1 << 28) +#define PTA_XOP (HOST_WIDE_INT_1 << 29) +/* if this reaches 64, need to widen struct pta flags below */ static struct pta { const char *const name; /* processor name or nickname. */ const enum processor_type processor; const enum attr_cpu schedule; - const unsigned /*enum pta_flags*/ flags; + const unsigned HOST_WIDE_INT flags; } const processor_alias_table[] = { @@ -24099,7 +24098,7 @@ static GTY(()) tree ix86_builtins[(int) IX86_BUILTIN_MAX]; struct builtin_isa { const char *name; /* function name */ enum ix86_builtin_func_type tcode; /* type to use in the declaration */ - int isa; /* isa_flags this builtin is defined for */ + HOST_WIDE_INT isa; /* isa_flags this builtin is defined for */ bool const_p; /* true if the declaration is constant */ bool set_and_not_built_p; }; @@ -24124,7 +24123,8 @@ static struct builtin_isa ix86_builtins_isa[(int) IX86_BUILTIN_MAX]; errors if a builtin is added in the middle of a function scope. */ static inline tree -def_builtin (int mask, const char *name, enum ix86_builtin_func_type tcode, +def_builtin (HOST_WIDE_INT mask, const char *name, + enum ix86_builtin_func_type tcode, enum ix86_builtins code) { tree decl = NULL_TREE; @@ -24162,7 +24162,7 @@ def_builtin (int mask, const char *name, enum ix86_builtin_func_type tcode, /* Like def_builtin, but also marks the function decl "const". */ static inline tree -def_builtin_const (int mask, const char *name, +def_builtin_const (HOST_WIDE_INT mask, const char *name, enum ix86_builtin_func_type tcode, enum ix86_builtins code) { tree decl = def_builtin (mask, name, tcode, code); @@ -24179,7 +24179,7 @@ def_builtin_const (int mask, const char *name, declarations to the tree, even if we didn't use them. */ static void -ix86_add_new_builtins (int isa) +ix86_add_new_builtins (HOST_WIDE_INT isa) { int i; @@ -24213,7 +24213,7 @@ ix86_add_new_builtins (int isa) struct builtin_description { - const unsigned int mask; + const HOST_WIDE_INT mask; const enum insn_code icode; const char *const name; const enum ix86_builtins code; diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index f197dd8..654f4eb 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -24,12 +24,12 @@ config/i386/i386-opts.h ; Bit flags that specify the ISA we are compiling for. Variable -int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT +HOST_WIDE_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. Variable -int ix86_isa_flags_explicit +HOST_WIDE_INT ix86_isa_flags_explicit ;; Definitions to add to the cl_target_option structure ;; -march= processor @@ -50,7 +50,7 @@ unsigned char branch_cost ;; which flags were passed by the user TargetSave -int x_ix86_isa_flags_explicit +HOST_WIDE_INT x_ix86_isa_flags_explicit ;; which flags were passed by the user TargetSave diff --git a/gcc/hwint.h b/gcc/hwint.h index fa77b11..6135136 100644 --- a/gcc/hwint.h +++ b/gcc/hwint.h @@ -79,6 +79,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "L" +# define HOST_WIDE_INT_1 1L /* 'long' might be 32 or 64 bits, and the number of leading zeroes must be tweaked accordingly. */ # if HOST_BITS_PER_WIDE_INT == 64 @@ -91,6 +92,7 @@ extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1]; #else # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "LL" +# define HOST_WIDE_INT_1 1LL /* We can assume that 'long long' is at least 64 bits. */ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk index 945eeb1..1f582fb 100644 --- a/gcc/opt-functions.awk +++ b/gcc/opt-functions.awk @@ -110,6 +110,11 @@ function switch_flags (flags) # Return bit-field initializers for option flags FLAGS. function switch_bit_fields (flags) { + vn = var_name(flags); + if (host_wide_int[vn] == "yes") + hwi = "Host_Wide_Int" + else + hwi = "" result = "" sep_args = opt_args("Args", flags) if (sep_args == "") @@ -126,6 +131,7 @@ function switch_bit_fields (flags) flag_init("RejectNegative", flags) \ flag_init("JoinedOrMissing", flags) \ flag_init("UInteger", flags) \ + flag_init("Host_Wide_Int", hwi) \ flag_init("ToLower", flags) \ flag_init("Report", flags) @@ -140,6 +146,17 @@ function var_name(flags) return nth_arg(0, opt_args("Var", flags)) } +# Return the name of the variable if FLAGS has a HOST_WIDE_INT variable. +# Return the empty string otherwise. +function host_wide_int_var_name(flags) +{ + split (flags, array, "[ \t]+") + if (array[1] == "HOST_WIDE_INT") + return array[2] + else + return "" +} + # Return true if the option described by FLAGS has a globally-visible state. function global_state_p(flags) { @@ -197,8 +214,12 @@ function var_type_struct(flags) return enum_type[en] " " } else if (!flag_set_p("Joined.*", flags) && !flag_set_p("Separate", flags)) { - if (flag_set_p(".*Mask.*", flags)) - return "int " + if (flag_set_p(".*Mask.*", flags)) { + if (host_wide_int[var_name(flags)] == "yes") + return "HOST_WIDE_INT " + else + return "int " + } else return "signed char " } diff --git a/gcc/opt-read.awk b/gcc/opt-read.awk index c488ed5..6a4d4de 100644 --- a/gcc/opt-read.awk +++ b/gcc/opt-read.awk @@ -51,6 +51,9 @@ BEGIN { else if ($1 == "Variable") { extra_vars[n_extra_vars] = $2 n_extra_vars++ + name = host_wide_int_var_name($2) + if (name != "") + host_wide_int[name] = "yes" } else if ($1 == "TargetVariable") { # Combination of TargetSave and Variable diff --git a/gcc/optc-save-gen.awk b/gcc/optc-save-gen.awk index 4efc115..654d869 100644 --- a/gcc/optc-save-gen.awk +++ b/gcc/optc-save-gen.awk @@ -363,10 +363,16 @@ print "{"; print " fputs (\"\\n\", file);"; for (i = 0; i < n_target_other; i++) { print " if (ptr->x_" var_target_other[i] ")"; - print " fprintf (file, \"%*s%s (%#lx)\\n\","; + if (host_wide_int[var_target_other[i]] == "yes") + print " fprintf (file, \"%*s%s (%#\" HOST_WIDE_INT_PRINT \"x)\\n\","; + else + print " fprintf (file, \"%*s%s (%#x)\\n\","; print " indent, \"\","; print " \"" var_target_other[i] "\","; - print " (unsigned long)ptr->x_" var_target_other[i] ");"; + if (host_wide_int[var_target_other[i]] == "yes") + print " ptr->x_" var_target_other[i] ");"; + else + print " (unsigned long)ptr->x_" var_target_other[i] ");"; print ""; } diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk index 876e0f6..2bae695 100644 --- a/gcc/opth-gen.awk +++ b/gcc/opth-gen.awk @@ -300,18 +300,26 @@ for (i = 0; i < n_opts; i++) { name = opt_args("Mask", flags[i]) vname = var_name(flags[i]) mask = "MASK_" + mask_1 = "1" if (vname != "") { mask = "OPTION_MASK_" + if (host_wide_int[vname] == "yes") + mask_1 = "HOST_WIDE_INT_1" } if (name != "" && !flag_set_p("MaskExists", flags[i])) - print "#define " mask name " (1 << " masknum[vname]++ ")" + print "#define " mask name " (" mask_1 " << " masknum[vname]++ ")" } for (i = 0; i < n_extra_masks; i++) { print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")" } for (var in masknum) { - if (masknum[var] > 31) { + if (var != "" && host_wide_int[var] == "yes") { + print" #if defined(HOST_BITS_PER_WIDE_INT) && " masknum[var] " >= HOST_BITS_PER_WIDE_INT" + print "#error too many masks for " var + print "#endif" + } + else if (masknum[var] > 31) { if (var == "") print "#error too many target masks" else diff --git a/gcc/opts-common.c b/gcc/opts-common.c index 973dd7e..0b86764 100644 --- a/gcc/opts-common.c +++ b/gcc/opts-common.c @@ -1088,9 +1088,14 @@ set_option (struct gcc_options *opts, struct gcc_options *opts_set, break; case CLVC_EQUAL: - *(int *) flag_var = (value - ? option->var_value - : !option->var_value); + if (option->cl_host_wide_int) + *(HOST_WIDE_INT *) flag_var = (value + ? option->var_value + : !option->var_value); + else + *(int *) flag_var = (value + ? option->var_value + : !option->var_value); if (set_flag_var) *(int *) set_flag_var = 1; break; @@ -1098,11 +1103,26 @@ set_option (struct gcc_options *opts, struct gcc_options *opts_set, case CLVC_BIT_CLEAR: case CLVC_BIT_SET: if ((value != 0) == (option->var_type == CLVC_BIT_SET)) - *(int *) flag_var |= option->var_value; + { + if (option->cl_host_wide_int) + *(HOST_WIDE_INT *) flag_var |= option->var_value; + else + *(int *) flag_var |= option->var_value; + } else - *(int *) flag_var &= ~option->var_value; + { + if (option->cl_host_wide_int) + *(HOST_WIDE_INT *) flag_var &= ~option->var_value; + else + *(int *) flag_var &= ~option->var_value; + } if (set_flag_var) - *(int *) set_flag_var |= option->var_value; + { + if (option->cl_host_wide_int) + *(HOST_WIDE_INT *) set_flag_var |= option->var_value; + else + *(int *) set_flag_var |= option->var_value; + } break; case CLVC_STRING: @@ -1173,13 +1193,22 @@ option_enabled (int opt_idx, void *opts) return *(int *) flag_var != 0; case CLVC_EQUAL: - return *(int *) flag_var == option->var_value; + if (option->cl_host_wide_int) + return *(HOST_WIDE_INT *) flag_var == option->var_value; + else + return *(int *) flag_var == option->var_value; case CLVC_BIT_CLEAR: - return (*(int *) flag_var & option->var_value) == 0; + if (option->cl_host_wide_int) + return (*(HOST_WIDE_INT *) flag_var & option->var_value) == 0; + else + return (*(int *) flag_var & option->var_value) == 0; case CLVC_BIT_SET: - return (*(int *) flag_var & option->var_value) != 0; + if (option->cl_host_wide_int) + return (*(HOST_WIDE_INT *) flag_var & option->var_value) != 0; + else + return (*(int *) flag_var & option->var_value) != 0; case CLVC_STRING: case CLVC_ENUM: @@ -1206,7 +1235,9 @@ get_option_state (struct gcc_options *opts, int option, case CLVC_BOOLEAN: case CLVC_EQUAL: state->data = flag_var; - state->size = sizeof (int); + state->size = (cl_options[option].cl_host_wide_int + ? sizeof (HOST_WIDE_INT) + : sizeof (int)); break; case CLVC_BIT_CLEAR: diff --git a/gcc/opts.h b/gcc/opts.h index b070c8f..3c0fe3f 100644 --- a/gcc/opts.h +++ b/gcc/opts.h @@ -96,6 +96,8 @@ struct cl_option BOOL_BITFIELD cl_missing_ok : 1; /* Argument is an integer >=0. */ BOOL_BITFIELD cl_uinteger : 1; + /* Argument is a HOST_WIDE_INT. */ + BOOL_BITFIELD cl_host_wide_int : 1; /* Argument should be converted to lowercase. */ BOOL_BITFIELD cl_tolower : 1; /* Report argument with -fverbose-asm */ @@ -109,7 +111,7 @@ struct cl_option /* How this option's value is determined and sets a field. */ enum cl_var_type var_type; /* Value or bit-mask with which to set a field. */ - int var_value; + HOST_WIDE_INT var_value; }; /* Records that the state of an option consists of SIZE bytes starting