invoke.texi (Optimize Options): Add documentation for `--param max-delay-slot-insn...
authorJeffrey Oldham <oldham@codesourcery.com>
Tue, 1 May 2001 18:51:06 +0000 (18:51 +0000)
committerJeffrey D. Oldham <oldham@gcc.gnu.org>
Tue, 1 May 2001 18:51:06 +0000 (18:51 +0000)
2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>

* invoke.texi (Optimize Options): Add documentation for `--param
max-delay-slot-insn-search' and `--param
max-delay-slot-live-search' and reorder --param section.
* params.def: Modify initial comment.
* params.h (param_info): Add `help' member.
* toplev.c (lang_independent_params): Include `help' description.
(display_help): Print --param parameters.

From-SVN: r41734

gcc/ChangeLog
gcc/invoke.texi
gcc/params.def
gcc/params.h
gcc/toplev.c

index 124f4f8a7afc84c5ed628af4200b190c098763c3..bf2ef2ce4c2bc47ff46c8f0d470666c5ae42d532 100644 (file)
@@ -1,3 +1,13 @@
+2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * invoke.texi (Optimize Options): Add documentation for `--param
+       max-delay-slot-insn-search' and `--param
+       max-delay-slot-live-search' and reorder --param section.
+       * params.def: Modify initial comment.
+       * params.h (param_info): Add `help' member.
+       * toplev.c (lang_independent_params): Include `help' description.
+       (display_help): Print --param parameters.
+
 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
 
        * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
index 2db022b856aa283e73e1c12713c7f2363eb8af54..b006ef954d7ef49f7e4c442cd1fba30a41fbd50a 100644 (file)
@@ -3436,18 +3436,34 @@ In each case, the @var{value} is a integer.  The allowable choices for
 @var{name} are given in the following table:
 
 @table @gcctabopt
-@item max-inline-insns
-If an function contains more than this many instructions, it
-will not be inlined.  This option is precisely equivalent to
-@samp{-finline-limit}.
+@item max-delay-slot-insn-search
+The maximum number of instructions to consider when looking for an
+instruction to fill a delay slot.  If more than this arbitrary number of
+instructions is searched, the time savings from filling the delay slot
+will be minimal so stop searching.  Increasing values mean more
+aggressive optimization, making the compile time increase with probably
+small improvement in executable run time.
+
+@item max-delay-slot-live-search
+When trying to fill delay slots, the maximum number of instructions to
+consider when searching for a block with valid live register
+information.  Increasing this arbitrarily chosen value means more
+aggressive optimization, increasing the compile time.  This parameter
+should be removed when the delay slot code is rewritten to maintain the
+control-flow graph.
 
 @item max-gcse-memory
 The approximate maximum amount of memory that will be allocated in
 order to perform the global common subexpression elimination
 optimization.  If more memory than specified is required, the
 optimization will not be done.
-@end table
 
+@item max-inline-insns
+If an function contains more than this many instructions, it
+will not be inlined.  This option is precisely equivalent to
+@samp{-finline-limit}.
+
+@end table
 @end table
 
 @node Preprocessor Options
index 749414f6e9c5dd1d07be1146040c6472435ac715..24b3aa26bb168eb8dd65301300bb5e929b9b2c5b 100644 (file)
@@ -31,7 +31,9 @@ Boston, MA 02111-1307, USA.
 
      - A help string explaining how the parameter is used.
 
-     - A default value for the parameter.  */
+     - A default value for the parameter.
+
+   Be sure to add an entry to invoke.texi summarizing the parameter.  */
 
 /* The maximum number of instructions accepted for inlining a
    function.  Increasing values mean more agressive inlining.
index d97e7bbc396827faf7fb2e8fb83bf6b0c08a9eb7..7fa06ff16dd32c0eac399a1085c6670e2023e920 100644 (file)
@@ -48,6 +48,8 @@ typedef struct param_info
   const char *option;
   /* The associated value.  */
   int value;
+  /* A short description of the option.  */
+   const char *help;
 } param_info;
 
 /* An array containing the compiler parameters and their current
index 20205ec97f51efcbb96e5b2a3bc7479b5b6bd2a4..14a9fd0603153668802913b7ff055a5bbbaf60eb 100644 (file)
@@ -970,10 +970,10 @@ const char *user_label_prefix;
 
 static const param_info lang_independent_params[] = {
 #define DEFPARAM(ENUM, OPTION, HELP, DEFAULT) \
-  { OPTION, DEFAULT },
+  { OPTION, DEFAULT, HELP },
 #include "params.def"
 #undef DEFPARAM
-  { NULL, 0 }
+  { NULL, 0, NULL }
 };
 
 /* A default for same.  */
@@ -3843,7 +3843,17 @@ display_help ()
 
   printf (_("  -O[number]              Set optimisation level to [number]\n"));
   printf (_("  -Os                     Optimise for space rather than speed\n"));
-  printf (_("  --param <name>=<value>  Set constant controlling optimization\n"));
+  for (i = sizeof (compiler_params); i--;)
+    {
+      const char *description = compiler_params[i].help;
+      const int length = 21-strlen(compiler_params[i].option);
+
+      if (description != NULL && * description != 0)
+       printf ("  --param %s=<value>%.*s%s\n",
+               compiler_params[i].option,
+               length > 0 ? length : 1, "                     ",
+               description);
+    }
   printf (_("  -pedantic               Issue warnings needed by strict compliance to ISO C\n"));
   printf (_("  -pedantic-errors        Like -pedantic except that errors are produced\n"));
   printf (_("  -w                      Suppress warnings\n"));