summaryrefslogtreecommitdiff
path: root/gcc/optc-gen.awk
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-09-29 15:49:14 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2010-09-29 15:49:14 +0100
commite3339d0f3328e3bae21e460dde81ba4bdcfcd959 (patch)
tree7baf17d9e07b39bfc1d357b60f65c55dc3c60d43 /gcc/optc-gen.awk
parent66dfc61020cc45ec6f611de0671f316c840131ee (diff)
downloadgcc-e3339d0f3328e3bae21e460dde81ba4bdcfcd959.tar.gz
optc-gen.awk: Generate global_options initializer instead of individual variables.
gcc: * optc-gen.awk: Generate global_options initializer instead of individual variables. Add x_ prefix to names of structure members. * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to names of structure members. * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Document. * doc/tm.texi: Regenerate. * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER. * c-parser.c (disable_extension_diagnostics, restore_extension_diagnostics): Update names of cpp_options members. * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * common.opt (fcompare-debug-second): Don't use Var. * config/alpha/alpha.h (target_flags): Remove. * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define. * config/bfin/bfin.h (target_flags): Remove. * config/cris/cris.h (target_flags): Remove. * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of cl_target_option members. * config/i386/i386.c (ix86_force_align_arg_pointer): Remove. (ix86_function_specific_print, ix86_valid_target_attribute_tree, ix86_can_inline_p): Update names of cl_target_option members. * config/i386/i386.h (ix86_isa_flags): Remove. * config/lm32/lm32.h (target_flags): Remove. * config/mcore/mcore.h (mcore_stack_increment): Remove. * config/mcore/mcore.md (addsi3): Remove extern declaration of flag_omit_frame_pointer. * config/mep/mep.h (target_flags): Remove. * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define. * config/mmix/mmix.h (target_flags): Remove. * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic, flag_expensive_optimizations): Remove. * config/s390/s390.h (flag_pic): Remove. * config/score/score-conv.h (target_flags): Remove. * config/sh/sh.h (sh_fixed_range_str): Remove. * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove. * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * diagnostic.c (diagnostic_initialize): Update names of diagnostic_context members. * diagnostic.h (diagnostic_context): Rename inhibit_warnings and warn_system_headers. (diagnostic_report_warnings_p): Update for new names. * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and HARD_FRAME_POINTER_IS_ARG_POINTER. * flags.h (flag_compare_debug): Declare. * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * opts.c (flag_compare_debug): Define. (common_handle_option): Update names of diagnostic_context members. Handle -fcompare-debug-second. (fast_math_flags_struct_set_p): Update names of cl_optimization members. * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER. * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use. * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER. gcc/c-family: * c-common.c (c_cpp_error): Update names of diagnostic_context members. * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of cl_optimization members. * c-opts.c (warning_as_error_callback, c_common_handle_option, sanitize_cpp_opts, finish_options): Update names of cpp_options members. gcc/fortran: * cpp.c (cpp_define_builtins): Update names of gfc_option_t members. (gfc_cpp_post_options): Update names of cpp_options members. (cb_cpp_error): Update names of diagnostic_context members. * f95-lang.c (gfc_init_builtin_functions): Update names of gfc_option_t members. * gfortran.h (gfc_option_t): Rename warn_conversion and flag_openmp. * intrinsic.c (gfc_convert_type_warn): Update names of gfc_option_t members. * options.c (gfc_init_options, gfc_post_options, set_Wall, gfc_handle_option): Update names of gfc_option_t members. * parse.c (next_free, next_fixed): Update names of gfc_option_t members. * scanner.c (pedantic): Remove extern declaration. (skip_free_comments, skip_fixed_comments, include_line): Update names of gfc_option_t members. * trans-decl.c (gfc_generate_function_code): Update names of gfc_option_t members. gcc/java: * java-tree.h (flag_filelist_file, flag_assert, flag_jni, flag_force_classes_archive_check, flag_redundant, flag_newer, flag_use_divide_subroutine, flag_use_atomic_builtins, flag_use_boehm_gc, flag_hash_synchronization, flag_check_references, flag_optimize_sci, flag_indirect_classes, flag_indirect_dispatch, flag_store_check, flag_reduced_reflection): Remove. * jcf-dump.c (flag_newer): Remove. * jcf.h (quiet_flag): Remove. * parse.h (quiet_flag): Remove. libcpp: * include/cpplib.h (cpp_options): Rename warn_deprecated, warn_traditional, warn_long_long and pedantic. * directives.c (directive_diagnostics, _cpp_handle_directive): Update names of cpp_options members. * expr.c (cpp_classify_number, eval_token): Update names of cpp_options members. * init.c (cpp_create_reader, post_options): Update names of cpp_options members. * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of cpp_options members. * macro.c (parse_params): Update names of cpp_options members. From-SVN: r164723
Diffstat (limited to 'gcc/optc-gen.awk')
-rw-r--r--gcc/optc-gen.awk110
1 files changed, 64 insertions, 46 deletions
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 4a146dddffb..c43557b1b03 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -85,8 +85,19 @@ print "#endif /* GCC_DRIVER */"
print ""
have_save = 0;
+print "struct gcc_options global_options =\n{"
for (i = 0; i < n_extra_vars; i++) {
- print extra_vars[i] ";"
+ var = extra_vars[i]
+ init = extra_vars[i]
+ if (var ~ "=" ) {
+ sub(".*= *", "", init)
+ sub(" *=.*", "", var)
+ sub("^.*[ *]", "", var)
+ } else {
+ init = "0"
+ }
+ var_seen[var] = 1
+ print " " init ", /* " var " */"
}
for (i = 0; i < n_opts; i++) {
if (flag_set_p("Save", flags[i]))
@@ -96,24 +107,31 @@ for (i = 0; i < n_opts; i++) {
if (name == "")
continue;
- if (flag_set_p("VarExists", flags[i])) {
- continue;
- }
- else {
- init = opt_args("Init", flags[i])
- if (init != "")
- init = " = " init;
- else if (name in var_seen)
- continue;
+ init = opt_args("Init", flags[i])
+ if (init != "") {
+ if (name in var_init && var_init[name] != init)
+ print "#error multiple initializers for " name
+ var_init[name] = init
}
+}
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+
+ if (name in var_seen)
+ continue;
+
+ if (name in var_init)
+ init = var_init[name]
+ else
+ init = "0"
- print "/* Set by -" opts[i] "."
- print " " help[i] " */"
- print var_type(flags[i]) name init ";"
- print ""
+ print " " init ", /* " name " */"
var_seen[name] = 1;
}
+print "};"
print ""
print "/* Local state variables. */"
@@ -332,19 +350,19 @@ for (i = 0; i < n_opt_char; i++) {
print "";
for (i = 0; i < n_opt_other; i++) {
- print " ptr->" var_opt_other[i] " = " var_opt_other[i] ";";
+ print " ptr->x_" var_opt_other[i] " = " var_opt_other[i] ";";
}
for (i = 0; i < n_opt_int; i++) {
- print " ptr->" var_opt_int[i] " = " var_opt_int[i] ";";
+ print " ptr->x_" var_opt_int[i] " = " var_opt_int[i] ";";
}
for (i = 0; i < n_opt_short; i++) {
- print " ptr->" var_opt_short[i] " = " var_opt_short[i] ";";
+ print " ptr->x_" var_opt_short[i] " = " var_opt_short[i] ";";
}
for (i = 0; i < n_opt_char; i++) {
- print " ptr->" var_opt_char[i] " = " var_opt_char[i] ";";
+ print " ptr->x_" var_opt_char[i] " = " var_opt_char[i] ";";
}
print "}";
@@ -356,19 +374,19 @@ print "cl_optimization_restore (struct cl_optimization *ptr)";
print "{";
for (i = 0; i < n_opt_other; i++) {
- print " " var_opt_other[i] " = ptr->" var_opt_other[i] ";";
+ print " " var_opt_other[i] " = ptr->x_" var_opt_other[i] ";";
}
for (i = 0; i < n_opt_int; i++) {
- print " " var_opt_int[i] " = ptr->" var_opt_int[i] ";";
+ print " " var_opt_int[i] " = ptr->x_" var_opt_int[i] ";";
}
for (i = 0; i < n_opt_short; i++) {
- print " " var_opt_short[i] " = ptr->" var_opt_short[i] ";";
+ print " " var_opt_short[i] " = ptr->x_" var_opt_short[i] ";";
}
for (i = 0; i < n_opt_char; i++) {
- print " " var_opt_char[i] " = ptr->" var_opt_char[i] ";";
+ print " " var_opt_char[i] " = ptr->x_" var_opt_char[i] ";";
}
print " targetm.override_options_after_change ();";
@@ -384,38 +402,38 @@ print "{";
print " fputs (\"\\n\", file);";
for (i = 0; i < n_opt_other; i++) {
- print " if (ptr->" var_opt_other[i] ")";
+ print " if (ptr->x_" var_opt_other[i] ")";
print " fprintf (file, \"%*s%s (%#lx)\\n\",";
print " indent_to, \"\",";
print " \"" var_opt_other[i] "\",";
- print " (unsigned long)ptr->" var_opt_other[i] ");";
+ print " (unsigned long)ptr->x_" var_opt_other[i] ");";
print "";
}
for (i = 0; i < n_opt_int; i++) {
- print " if (ptr->" var_opt_int[i] ")";
+ print " if (ptr->x_" var_opt_int[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent_to, \"\",";
print " \"" var_opt_int[i] "\",";
- print " ptr->" var_opt_int[i] ");";
+ print " ptr->x_" var_opt_int[i] ");";
print "";
}
for (i = 0; i < n_opt_short; i++) {
- print " if (ptr->" var_opt_short[i] ")";
+ print " if (ptr->x_" var_opt_short[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent_to, \"\",";
print " \"" var_opt_short[i] "\",";
- print " ptr->" var_opt_short[i] ");";
+ print " ptr->x_" var_opt_short[i] ");";
print "";
}
for (i = 0; i < n_opt_char; i++) {
- print " if (ptr->" var_opt_char[i] ")";
+ print " if (ptr->x_" var_opt_char[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent_to, \"\",";
print " \"" var_opt_char[i] "\",";
- print " ptr->" var_opt_char[i] ");";
+ print " ptr->x_" var_opt_char[i] ");";
print "";
}
@@ -482,19 +500,19 @@ print " targetm.target_option.save (ptr);";
print "";
for (i = 0; i < n_target_other; i++) {
- print " ptr->" var_target_other[i] " = " var_target_other[i] ";";
+ print " ptr->x_" var_target_other[i] " = " var_target_other[i] ";";
}
for (i = 0; i < n_target_int; i++) {
- print " ptr->" var_target_int[i] " = " var_target_int[i] ";";
+ print " ptr->x_" var_target_int[i] " = " var_target_int[i] ";";
}
for (i = 0; i < n_target_short; i++) {
- print " ptr->" var_target_short[i] " = " var_target_short[i] ";";
+ print " ptr->x_" var_target_short[i] " = " var_target_short[i] ";";
}
for (i = 0; i < n_target_char; i++) {
- print " ptr->" var_target_char[i] " = " var_target_char[i] ";";
+ print " ptr->x_" var_target_char[i] " = " var_target_char[i] ";";
}
print "}";
@@ -506,19 +524,19 @@ print "cl_target_option_restore (struct cl_target_option *ptr)";
print "{";
for (i = 0; i < n_target_other; i++) {
- print " " var_target_other[i] " = ptr->" var_target_other[i] ";";
+ print " " var_target_other[i] " = ptr->x_" var_target_other[i] ";";
}
for (i = 0; i < n_target_int; i++) {
- print " " var_target_int[i] " = ptr->" var_target_int[i] ";";
+ print " " var_target_int[i] " = ptr->x_" var_target_int[i] ";";
}
for (i = 0; i < n_target_short; i++) {
- print " " var_target_short[i] " = ptr->" var_target_short[i] ";";
+ print " " var_target_short[i] " = ptr->x_" var_target_short[i] ";";
}
for (i = 0; i < n_target_char; i++) {
- print " " var_target_char[i] " = ptr->" var_target_char[i] ";";
+ print " " var_target_char[i] " = ptr->x_" var_target_char[i] ";";
}
# This must occur after the normal variables in case the code depends on those
@@ -539,38 +557,38 @@ print "{";
print " fputs (\"\\n\", file);";
for (i = 0; i < n_target_other; i++) {
- print " if (ptr->" var_target_other[i] ")";
+ print " if (ptr->x_" var_target_other[i] ")";
print " fprintf (file, \"%*s%s (%#lx)\\n\",";
print " indent, \"\",";
print " \"" var_target_other[i] "\",";
- print " (unsigned long)ptr->" var_target_other[i] ");";
+ print " (unsigned long)ptr->x_" var_target_other[i] ");";
print "";
}
for (i = 0; i < n_target_int; i++) {
- print " if (ptr->" var_target_int[i] ")";
+ print " if (ptr->x_" var_target_int[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent, \"\",";
print " \"" var_target_int[i] "\",";
- print " ptr->" var_target_int[i] ");";
+ print " ptr->x_" var_target_int[i] ");";
print "";
}
for (i = 0; i < n_target_short; i++) {
- print " if (ptr->" var_target_short[i] ")";
+ print " if (ptr->x_" var_target_short[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent, \"\",";
print " \"" var_target_short[i] "\",";
- print " ptr->" var_target_short[i] ");";
+ print " ptr->x_" var_target_short[i] ");";
print "";
}
for (i = 0; i < n_target_char; i++) {
- print " if (ptr->" var_target_char[i] ")";
+ print " if (ptr->x_" var_target_char[i] ")";
print " fprintf (file, \"%*s%s (%#x)\\n\",";
print " indent, \"\",";
print " \"" var_target_char[i] "\",";
- print " ptr->" var_target_char[i] ");";
+ print " ptr->x_" var_target_char[i] ");";
print "";
}