common.opt: Add -finline-limit.
authorNeil Booth <neil@daikokuya.co.uk>
Sun, 22 Jun 2003 20:21:35 +0000 (20:21 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Sun, 22 Jun 2003 20:21:35 +0000 (20:21 +0000)
* common.opt: Add -finline-limit.
* opts.c (common_handle_options): Handle it.
* opts.sh: Temporary kludge for -finline-limit.
* toplev.c (decode_f_option, independent_decode_option): Die.
(parse_options_and_default_flags): No independent_decode_option.

From-SVN: r68348

gcc/ChangeLog
gcc/common.opt
gcc/opts.c
gcc/opts.sh
gcc/toplev.c

index 1643e386f7a988fba926885d00dde4389ec78e7a..d44f6ec2960adc98a419df7a7c991629f114304c 100644 (file)
@@ -1,3 +1,11 @@
+2003-06-22  Neil Booth  <neil@daikokuya.co.uk>
+
+       * common.opt: Add -finline-limit.
+       * opts.c (common_handle_options): Handle it.
+       * opts.sh: Temporary kludge for -finline-limit.
+       * toplev.c (decode_f_option, independent_decode_option): Die.
+       (parse_options_and_default_flags): No independent_decode_option.
+
 2003-06-22  Andreas Jaeger  <aj@suse.de>
 
        * calls.c (emit_call_1): Readd lost ATTRIBUTE_UNUSED.
index 331199ff7edd989f48dc9ea0bef8f7bc66298262..cca70d65a0eab3375380756784f2ace692ace80a 100644 (file)
@@ -307,6 +307,12 @@ Common
 finline-functions
 Common
 
+finline-limit-
+Common RejectNegative Joined UInteger
+
+finline-limit=
+Common RejectNegative Joined UInteger
+
 finstrument-functions
 Common
 
index 2ec9de5b6aa4450a6e7515811fbd569f4c122a0b..2712346149f09f1833ab6b6c343bbf059f94d3c7 100644 (file)
@@ -734,6 +734,21 @@ common_handle_option (size_t scode, const char *arg,
       flag_inline_functions = value;
       break;
 
+    case OPT_finline_limit_:
+    case OPT_finline_limit_eq:
+      set_param_value ("max-inline-insns", value);
+      set_param_value ("max-inline-insns-single", value / 2);
+      set_param_value ("max-inline-insns-auto", value / 2);
+      set_param_value ("max-inline-insns-rtl", value);
+      if (value / 4 < MIN_INLINE_INSNS)
+       {
+         if (value / 4 > 10)
+           set_param_value ("min-inline-insns", value / 4);
+         else
+           set_param_value ("min-inline-insns", 10);
+       }
+      break;
+
     case OPT_finstrument_functions:
       flag_instrument_function_entry_exit = value;
       break;
index 07eb1fe1db6319f88d1106d7a8c4ed061fa02442..2bedcfc9e005c70859e02bb9744d5bef9717635d 100644 (file)
@@ -114,6 +114,8 @@ ${AWK} '
 
            len = length (opts[i]);
            enum = "OPT_" opts[i]
+           if (opts[i] == "finline-limit=")
+               enum = enum "eq"
            gsub ("[^A-Za-z0-9]", "_", enum)
 
            # If this switch takes joined arguments, back-chain all
index d66ec1a31d19faf191b560b3823a71ef75f24d34..33c027417caf9aadf9c0f4d0130e4fb7d1d99ad5 100644 (file)
@@ -117,9 +117,6 @@ static void crash_signal (int) ATTRIBUTE_NORETURN;
 static void setup_core_dumping (void);
 static void compile_file (void);
 
-static int decode_f_option (const char *);
-static unsigned int independent_decode_option (char **);
-
 static int print_single_switch (FILE *, int, int, const char *,
                                const char *, const char *,
                                const char *, const char *);
@@ -4149,39 +4146,6 @@ decode_d_option (const char *arg)
       }
 }
 
-/* Parse a -f... command line switch.  ARG is the value after the -f.
-   It is safe to access 'ARG - 2' to generate the full switch name.
-   Return the number of strings consumed.  */
-
-static int
-decode_f_option (const char *arg)
-{
-  const char *option_value;
-
-  if ((option_value = skip_leading_substring (arg, "inline-limit-"))
-          || (option_value = skip_leading_substring (arg, "inline-limit=")))
-    {
-      int val =
-       read_integral_parameter (option_value, arg - 2,
-                                MAX_INLINE_INSNS);
-      set_param_value ("max-inline-insns", val);
-      set_param_value ("max-inline-insns-single", val/2);
-      set_param_value ("max-inline-insns-auto", val/2);
-      set_param_value ("max-inline-insns-rtl", val);
-      if (val/4 < MIN_INLINE_INSNS)
-       {
-         if (val/4 > 10)
-           set_param_value ("min-inline-insns", val/4);
-         else
-           set_param_value ("min-inline-insns", 10);
-       }
-    }
-  else
-    return 0;
-
-  return 1;
-}
-
 /* Indexed by enum debug_info_type.  */
 const char *const debug_type_names[] =
 {
@@ -4306,25 +4270,6 @@ ignoring option `%s' due to invalid debug level specification",
     warning ("`-g%s': unknown or unsupported -g option", arg);
 }
 
-/* Decode the first argument in the argv as a language-independent option.
-   Return the number of strings consumed.  */
-
-static unsigned int
-independent_decode_option (char **argv)
-{
-  char *arg = argv[0];
-
-  if (arg[0] != '-' || arg[1] == 0)
-    return 1;
-
-  arg++;
-
-  if (*arg == 'f')
-    return decode_f_option (arg + 1);
-
-  return 0;
-}
-
 /* Decode -m switches.  */
 /* Decode the switch -mNAME.  */
 
@@ -4783,9 +4728,6 @@ parse_options_and_default_flags (int argc, char **argv)
       /* Give the language a chance to decode the option for itself.  */
       processed = handle_option (argc - i, argv + i, lang_mask);
 
-      if (!processed)
-       processed = independent_decode_option (argv + i);
-
       if (processed)
        i += processed;
       else