aboutsummaryrefslogtreecommitdiff
path: root/gcc/optc-gen.awk
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/optc-gen.awk')
-rw-r--r--gcc/optc-gen.awk123
1 files changed, 115 insertions, 8 deletions
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 3ed1cf881be..973e3b704cc 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -51,8 +51,14 @@ BEGIN {
# Dump that array of options into a C file.
END {
-print "/* This file is auto-generated by opts.sh. */"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+print "/* This file is auto-generated by optc-gen.awk. */"
print ""
+print "#include " quote "config.h" quote
+print "#include " quote "system.h" quote
+print "#include " quote "coretypes.h" quote
+print "#include " quote "hwint.h" quote
+# APPLE LOCAL end optimization pragmas 3124235/3420242
print "#include <intl.h>"
print "#include " quote header_name quote
print "#include " quote "opts.h" quote
@@ -63,23 +69,97 @@ for (i = 0; i < n_opts; i++) {
if (name == "")
continue;
- if (flags[i] ~ "VarExists")
- continue;
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (flag_set_p("PerFunc", flags[i]))
+ continue;
+# APPLE LOCAL end optimization pragmas 3124235/3420242
if (flags[i] ~ "Init\\(")
{
init = flags[i];
sub(".*Init\\(","",init);
sub("\\).*","",init);
- init = " = " init;
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# APPLE LOCAL end optimization pragmas 3124235/3420242
}
else
- init = "";
+# APPLE LOCAL optimization pragmas 3124235/3420242
+ init = "0";
- printf ("/* Set by -%s.\n %s */\nint %s%s;\n\n",
+# APPLE LOCAL optimization pragmas 3124235/3420242
+ printf ("/* Set by -%s.\n %s */\nint %s = %s;\n\n",
opts[i], help[i], name,init)
}
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+print "struct cl_perfunc_opts cl_pf_opts = {\n"
+
+# Per-function bitfield initializers.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (flag_set_p("VarUint", flags[i]))
+ continue;
+
+ if (flags[i] ~ "Init\\(")
+ {
+ init = flags[i];
+ sub(".*Init\\(","",init);
+ sub("\\).*","",init);
+ }
+ else
+ init = "0";
+
+ print init ", /* fld_" name " */ "
+}
+
+print "0, /* fld_optimize_size */"
+
+# Padding, see comments in opth-gen.awk.
+
+print "0, /* padding */"
+
+# Per-function non-bitfield initializers.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i]))
+ continue;
+
+ if (flags[i] ~ "Init\\(")
+ {
+ init = flags[i];
+ sub(".*Init\\(","",init);
+ sub("\\).*","",init);
+ }
+ else
+ init = "0";
+
+ print init ", /* fld_" name " */ "
+}
+
+print "0 /* fld_optimize */"
+print "};"
+
+print "struct cl_perfunc_opts cl_pf_opts_raw;"
+print "struct cl_perfunc_opts cl_pf_opts_cooked;"
+# APPLE LOCAL end optimization pragmas 3124235/3420242
print "const char * const lang_names[] =\n{"
for (i = 0; i < n_langs; i++) {
@@ -92,6 +172,30 @@ for (i = 0; i < n_langs; i++) {
print " 0\n};\n"
print "const unsigned int cl_options_count = N_OPTS;\n"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# Access functions for per-function bitfields.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i])) {
+ print "int cl_opt_access_func_" name " (int value, unsigned int rw)"
+ print "{"
+ print " if (rw == 1)"
+ print " {"
+ printf (" cl_pf_opts.fld_%s = value;\n", name)
+ print " }"
+ printf (" return cl_pf_opts.fld_%s;\n", name)
+ print "}"
+ }
+}
+# APPLE LOCAL end optimization pragmas 3124235/3420242
+
print "const struct cl_option cl_options[] =\n{"
for (i = 0; i < n_opts; i++)
@@ -134,10 +238,13 @@ for (i = 0; i < n_opts; i++)
else
hlp = "N_(" quote help[i] quote ")";
- printf(" { %c-%s%c,\n %s,\n %s, %u, %s, %s, %s }%s\n",
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ printf(" { %c-%s%c,\n %s,\n %s, %u, %s, %s, %s, %s }%s\n",
quote, opts[i], quote, hlp, back_chain[i], len,
switch_flags(flags[i]),
- var_ref(flags[i]), var_set(flags[i]), comma)
+ var_ref(flags[i]), access_ref(flags[i]),
+ var_set(flags[i]), comma)
+# APPLE LOCAL end optimization pragmas 3124235/3420242
}
print "};"