common.opt: Add -finline-limit.
* 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
This commit is contained in:
parent
1b170b5562
commit
d302c9d6ce
@ -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.
|
||||
|
@ -307,6 +307,12 @@ Common
|
||||
finline-functions
|
||||
Common
|
||||
|
||||
finline-limit-
|
||||
Common RejectNegative Joined UInteger
|
||||
|
||||
finline-limit=
|
||||
Common RejectNegative Joined UInteger
|
||||
|
||||
finstrument-functions
|
||||
Common
|
||||
|
||||
|
15
gcc/opts.c
15
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;
|
||||
|
@ -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
|
||||
|
58
gcc/toplev.c
58
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
|
||||
|
Loading…
Reference in New Issue
Block a user