public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Show valid options for -march and -mtune in --help=target for arm32 (PR driver/83193).
@ 2018-07-18 15:50 Martin Liška
  2018-07-18 16:28 ` Thomas Preudhomme
  0 siblings, 1 reply; 30+ messages in thread
From: Martin Liška @ 2018-07-18 15:50 UTC (permalink / raw)
  To: gcc-patches; +Cc: Ramana Radhakrishnan, James Greenhalgh, Kyrill Tkachov

[-- Attachment #1: Type: text/plain, Size: 1014 bytes --]

Hi.

This introduces new ForceHelp option flag that helps to
print valid option enum values that are not directly
used as a type of an option.

May I please ask ARM folks to test the patch?
Thanks,
Martin

gcc/ChangeLog:

2018-07-18  Martin Liska  <mliska@suse.cz>

        PR driver/83193
	* config/arm/arm-tables.opt: Add ForceHelp flag for
        processor_type and arch_name enum types.
	* config/arm/parsecpu.awk: Likewise.
	* doc/options.texi: Document new flag ForceHelp.
	* opt-read.awk: Parse ForceHelp and set it in construction.
	* optc-gen.awk: Likewise.
	* opts.c (print_filtered_help): Handle force_help option.
	* opts.h (struct cl_enum): New field force_help.
---
 gcc/config/arm/arm-tables.opt | 6 +++---
 gcc/config/arm/parsecpu.awk   | 6 +++---
 gcc/doc/options.texi          | 4 ++++
 gcc/opt-read.awk              | 3 +++
 gcc/optc-gen.awk              | 3 ++-
 gcc/opts.c                    | 3 ++-
 gcc/opts.h                    | 3 +++
 7 files changed, 20 insertions(+), 8 deletions(-)



[-- Attachment #2: 0001-Show-valid-options-for-march-and-mtune-in-help-targe.patch --]
[-- Type: text/x-patch, Size: 3869 bytes --]

diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
index eacee746a39..cbaa67385d7 100644
--- a/gcc/config/arm/arm-tables.opt
+++ b/gcc/config/arm/arm-tables.opt
@@ -21,8 +21,8 @@
 ; <http://www.gnu.org/licenses/>.
 
 Enum
-Name(processor_type) Type(enum processor_type)
-Known ARM CPUs (for use with the -mcpu= and -mtune= options):
+Name(processor_type) Type(enum processor_type) ForceHelp
+Known ARM CPUs (for use with the -mtune= options):
 
 EnumValue
 Enum(processor_type) String(arm8) Value( TARGET_CPU_arm8)
@@ -298,7 +298,7 @@ EnumValue
 Enum(processor_type) String(cortex-r52) Value( TARGET_CPU_cortexr52)
 
 Enum
-Name(arm_arch) Type(int)
+Name(arm_arch) Type(int) ForceHelp
 Known ARM architectures (for use with the -march= option):
 
 EnumValue
diff --git a/gcc/config/arm/parsecpu.awk b/gcc/config/arm/parsecpu.awk
index aabe1b0c64c..162712acb0e 100644
--- a/gcc/config/arm/parsecpu.awk
+++ b/gcc/config/arm/parsecpu.awk
@@ -441,8 +441,8 @@ function gen_opt () {
     boilerplate("md")
 
     print "Enum"
-    print "Name(processor_type) Type(enum processor_type)"
-    print "Known ARM CPUs (for use with the -mcpu= and -mtune= options):\n"
+    print "Name(processor_type) Type(enum processor_type) ForceHelp"
+    print "Known ARM CPUs (for use with the -mtune= options):\n"
 
     ncpus = split (cpu_list, cpus)
 
@@ -454,7 +454,7 @@ function gen_opt () {
     }
 
     print "Enum"
-    print "Name(arm_arch) Type(int)"
+    print "Name(arm_arch) Type(int) ForceHelp"
     print "Known ARM architectures (for use with the -march= option):\n"
 
     narchs = split (arch_list, archs)
diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi
index b3ca9f6fce6..1c9abac0b36 100644
--- a/gcc/doc/options.texi
+++ b/gcc/doc/options.texi
@@ -120,6 +120,10 @@ being described by this record.
 This property is required; it says what value (representable as
 @code{int}) should be used for the given string.
 
+@item ForceHelp
+This property is optional.  If present, enum values is printed
+in @option{--help} output.
+
 @item Canonical
 This property is optional.  If present, it says the present string is
 the canonical one among all those with the given value.  Other strings
diff --git a/gcc/opt-read.awk b/gcc/opt-read.awk
index 2072958e6ba..6d2be9e99d7 100644
--- a/gcc/opt-read.awk
+++ b/gcc/opt-read.awk
@@ -89,6 +89,9 @@ BEGIN {
 			enum_index[name] = n_enums
 			enum_unknown_error[name] = unknown_error
 			enum_help[name] = $3
+			enum_force_help[name] = test_flag("ForceHelp", props, "true")
+			if (enum_force_help[name] == "")
+			  enum_force_help[name] = "false"
 			n_enums++
 		}
 		else if ($1 == "EnumValue")  {
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index bf177e86330..5c4f4239db0 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -167,7 +167,8 @@ for (i = 0; i < n_enums; i++) {
 	print "    cl_enum_" name "_data,"
 	print "    sizeof (" enum_type[name] "),"
 	print "    cl_enum_" name "_set,"
-	print "    cl_enum_" name "_get"
+	print "    cl_enum_" name "_get,"
+	print "    " enum_force_help[name]
 	print "  },"
 }
 print "};"
diff --git a/gcc/opts.c b/gcc/opts.c
index b8ae8756b4f..214ef806cd5 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1337,7 +1337,8 @@ print_filtered_help (unsigned int include_flags,
     {
       unsigned int j, pos;
 
-      if (opts->x_help_enum_printed[i] != 1)
+      if (opts->x_help_enum_printed[i] != 1
+	  && !cl_enums[i].force_help)
 	continue;
       if (cl_enums[i].help == NULL)
 	continue;
diff --git a/gcc/opts.h b/gcc/opts.h
index 3723bdbf95b..c8777b3cd6a 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -193,6 +193,9 @@ struct cl_enum
 
   /* Function to get the value of a variable of this type.  */
   int (*get) (const void *var);
+
+  /* Force enum to be printed in help.  */
+  bool force_help;
 };
 
 extern const struct cl_enum cl_enums[];


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2018-09-03  8:09 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-18 15:50 [PATCH] Show valid options for -march and -mtune in --help=target for arm32 (PR driver/83193) Martin Liška
2018-07-18 16:28 ` Thomas Preudhomme
2018-07-19  7:20   ` Martin Liška
2018-07-19  7:31     ` Martin Liška
2018-07-19  9:28       ` Richard Earnshaw (lists)
2018-07-19  9:57         ` Martin Liška
2018-07-19 10:01           ` Richard Earnshaw (lists)
2018-07-19 10:22             ` Martin Liška
2018-07-19 10:31               ` Richard Earnshaw (lists)
2018-07-19 12:53                 ` Martin Liška
2018-07-20  8:04                 ` [PATCH] Prototype of hook for possible list of option values Martin Liška
2018-07-20  9:48                   ` Richard Earnshaw (lists)
2018-07-20 10:14                     ` Martin Liška
2018-07-20 10:25                       ` Richard Earnshaw (lists)
2018-07-20 10:54                         ` Martin Liška
2018-07-20 10:58                           ` Richard Earnshaw (lists)
2018-07-20 11:06                             ` Martin Liška
2018-07-23 13:47                               ` Richard Earnshaw (lists)
2018-07-23 14:35                                 ` Martin Liška
2018-07-24 12:05                                   ` [PATCH] Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193) Martin Liška
2018-08-13 12:49                                     ` Martin Liška
2018-08-13 12:54                                       ` Ramana Radhakrishnan
2018-08-13 13:00                                         ` Martin Liška
2018-08-13 13:35                                           ` Ramana Radhakrishnan
2018-08-27 10:00                                           ` Martin Liška
2018-08-29 11:06                                             ` Richard Biener
2018-08-29 12:47                                               ` Martin Liška
2018-08-30 10:17                                                 ` Richard Biener
2018-08-31  9:30                                                   ` Martin Liška
2018-09-03  8:09                                                     ` Martin Liška

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).