Paper over problem with -frename-registers; Provide help for options
authorMichael Meissner <meissner@redhat.com>
Wed, 22 Nov 2000 18:07:05 +0000 (18:07 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 22 Nov 2000 18:07:05 +0000 (18:07 +0000)
From-SVN: r37661

gcc/ChangeLog
gcc/config/d30v/d30v.h

index 1f7a7850c0c631335cd24ced3bc2a0d6801ef452..5b54a90d971c25351e005f947377c2fd71a12be1 100644 (file)
@@ -1,3 +1,10 @@
+2000-11-22  Michael Meissner  <meissner@redhat.com>
+
+       * d30v.h (TARGET_SWITCHES): Add documentation strings.
+       (TARGET_OPTIONS): Ditto.
+       (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
+       -O3.
+       
 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
 
        * pa.c (hppa_encode_label): Account for addition of encoding
index e6e1eeeaa4eade0ce04887d3953cf4cb9b38829e..ef9ecd93dc5b8dd17ab00812d5ccd4c4369085b0 100644 (file)
@@ -419,37 +419,60 @@ extern int target_flags;
    `target_flags'.  Its definition is an initializer with a subgrouping for
    each command option.
 
-   Each subgrouping contains a string constant, that defines the option name,
-   and a number, which contains the bits to set in `target_flags'.  A negative
-   number says to clear bits instead; the negative of the number is which bits
-   to clear.  The actual option name is made by appending `-m' to the specified
-   name.
+   Each subgrouping contains a string constant, that defines the option name, a
+   number, which contains the bits to set in `target_flags', and a second
+   string which is the description displayed by `--help'.  If the number is
+   negative then the bits specified by the number are cleared instead of being
+   set.  If the description string is present but empty, then no help
+   information will be displayed for that option, but it will not count as an
+   undocumented option.  The actual option name is made by appending `-m' to
+   the specified name.
 
    One of the subgroupings should have a null string.  The number in this
-   grouping is the default value for `target_flags'.  Any target options act
+   grouping is the default value for target_flags.  Any target options act
    starting with that value.
 
-   Here is an example which defines `-m68000' and `-m68020' with opposite
-   meanings, and picks the latter as the default:
+   Here is an example which defines -m68000 and -m68020 with opposite meanings,
+   and picks the latter as the default:
 
-        #define TARGET_SWITCHES \
-          { { "68020", 1},      \
-            { "68000", -1},     \
-            { "", 1}}  */
+  #define TARGET_SWITCHES \
+    { { "68020", TARGET_MASK_68020, "" },      \
+      { "68000", -TARGET_MASK_68020, "Compile for the 68000" }, \
+      { "", TARGET_MASK_68020, "" }}  */
 
 #define TARGET_SWITCHES                                                        \
 {                                                                      \
-  { "cond-move",       -MASK_NO_COND_MOVE },                           \
-  { "no-cond-move",     MASK_NO_COND_MOVE },                           \
-  { "debug-arg",        MASK_DEBUG_ARG },                              \
-  { "debug-stack",      MASK_DEBUG_STACK },                            \
-  { "debug-addr",       MASK_DEBUG_ADDR },                             \
-  { "asm-optimize",     0 },                                           \
-  { "no-asm-optimize",  0 },                                           \
-  { "extmem",           0 },                                           \
-  { "extmemory",        0 },                                           \
-  { "onchip",           0 },                                           \
-  { "",                         TARGET_DEFAULT },                              \
+  { "cond-move",       -MASK_NO_COND_MOVE,                             \
+      N_("Enable use of conditional move instructions") },             \
+                                                                       \
+  { "no-cond-move",    MASK_NO_COND_MOVE,                              \
+      N_("Disable use of conditional move instructions") },            \
+                                                                       \
+  { "debug-arg",        MASK_DEBUG_ARG,                                \
+      N_("Debug argument support in compiler") },                      \
+                                                                       \
+  { "debug-stack",      MASK_DEBUG_STACK,                              \
+      N_("Debug stack support in compiler") },                         \
+                                                                       \
+  { "debug-addr",       MASK_DEBUG_ADDR,                               \
+      N_("Debug memory address support in compiler") },                        \
+                                                                       \
+  { "asm-optimize",     0,                                             \
+      N_("Make adjacent short instructions parallel if possible.") },  \
+                                                                       \
+  { "no-asm-optimize",  0,                                             \
+      N_("Do not make adjacent short instructions parallel.") },       \
+                                                                       \
+  { "extmem",           0,                                             \
+      N_("Link programs/data to be in external memory by default") },  \
+                                                                       \
+  { "extmemory",        0,                                             \
+      N_("Link programs/data to be in external memory by default") },  \
+                                                                       \
+  { "onchip",           0,                                             \
+      N_("Link programs/data to be in onchip memory by default") },    \
+                                                                       \
+  { "",                         TARGET_DEFAULT, "" },                          \
 }
 
 /* This macro is similar to `TARGET_SWITCHES' but defines names of command
@@ -457,23 +480,27 @@ extern int target_flags;
    subgrouping for each command option.
 
    Each subgrouping contains a string constant, that defines the fixed part of
-   the option name, and the address of a variable.  The variable, type `char
-   *', is set to the variable part of the given option if the fixed part
-   matches.  The actual option name is made by appending `-m' to the specified
-   name.
+   the option name, the address of a variable, and a description string.  The
+   variable, type `char *', is set to the variable part of the given option if
+   the fixed part matches.  The actual option name is made by appending `-m' to
+   the specified name.
 
-   Here is an example which defines `-mshort-data-NUMBER'.  If the given option
-   is `-mshort-data-512', the variable `m88k_short_data' will be set to the
-   string `"512"'.
+   Here is an example which defines `-mshort-data-<number>'.  If the given
+   option is `-mshort-data-512', the variable `m88k_short_data' will be set to
+   the string "512".
 
-        extern char *m88k_short_data;
-        #define TARGET_OPTIONS \
-         { { "short-data-", &m88k_short_data } }  */
+   extern char *m88k_short_data;
+   #define TARGET_OPTIONS \
+     { { "short-data-", &m88k_short_data, \
+        "Specify the size of the short data section" } } */
 
 #define TARGET_OPTIONS                                                 \
 {                                                                      \
-   {"branch-cost=",  &d30v_branch_cost_string},                                \
-   {"cond-exec=",    &d30v_cond_exec_string},                          \
+  {"branch-cost=",  &d30v_branch_cost_string,                          \
+     N_("Change the branch costs within the compiler") },              \
+                                                                       \
+  {"cond-exec=",    &d30v_cond_exec_string,                            \
+     N_("Change the threshold for conversion to conditional execution") }, \
 }
 
 /* This macro is a C statement to print on `stderr' a string describing the
@@ -517,7 +544,13 @@ extern int target_flags;
 
    *Do not examine `write_symbols' in this macro!* The debugging options are
    *not supposed to alter the generated code.  */
-/* #define OPTIMIZATION_OPTIONS(LEVEL,SIZE) */
+
+/* -frename-registers seems to abort on d30v, turn off until fixed.  */
+#define OPTIMIZATION_OPTIONS(LEVEL,SIZE)                               \
+do {                                                                   \
+  if (LEVEL >= 3)                                                      \
+    flag_rename_registers = 0;                                         \
+} while (0)
 
 /* Define this macro if debugging can be performed even without a frame
    pointer.  If this macro is defined, GNU CC will turn on the