summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-22 20:21:35 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-22 20:21:35 +0000
commit39470ac3d71a90889a3d4105a1a1ad7dc8380169 (patch)
tree4843b7e9c3d4f090f620260883d5ea7c06a635d5
parenteae50d4c0ac7af7f87566fe2a97042f301268ad0 (diff)
downloadgcc-39470ac3d71a90889a3d4105a1a1ad7dc8380169.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68348 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/common.opt6
-rw-r--r--gcc/opts.c15
-rw-r--r--gcc/opts.sh2
-rw-r--r--gcc/toplev.c58
5 files changed, 31 insertions, 58 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1643e386f7a..d44f6ec2960 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/common.opt b/gcc/common.opt
index 331199ff7ed..cca70d65a0e 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -307,6 +307,12 @@ Common
finline-functions
Common
+finline-limit-
+Common RejectNegative Joined UInteger
+
+finline-limit=
+Common RejectNegative Joined UInteger
+
finstrument-functions
Common
diff --git a/gcc/opts.c b/gcc/opts.c
index 2ec9de5b6aa..2712346149f 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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;
diff --git a/gcc/opts.sh b/gcc/opts.sh
index 07eb1fe1db6..2bedcfc9e00 100644
--- a/gcc/opts.sh
+++ b/gcc/opts.sh
@@ -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
diff --git a/gcc/toplev.c b/gcc/toplev.c
index d66ec1a31d1..33c027417ca 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -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