+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}.
@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
- 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.
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
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. */
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"));