From 750a57287311346ce81723ff41a9ce0df4cc0e6e Mon Sep 17 00:00:00 2001 From: Andy Fiddaman Date: Thu, 25 Oct 2018 18:19:36 +0000 Subject: We never want to omit the frame pointer, regardless of the optimisation level or options to gcc - we like stack traces too much and it is of questionable benefit anyway, even on i386. --- gcc/config/i386/i386-options.cc | 9 +++++++++ gcc/opts.cc | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc index aa3a45dc9602..313c5e5acd17 100644 --- a/gcc/config/i386/i386-options.cc +++ b/gcc/config/i386/i386-options.cc @@ -3228,6 +3228,15 @@ ix86_option_override_internal (bool main_args_p, free (str); } + /* + * We never want to omit the frame pointer, regardless of the optimisation + * level or options to gcc - we like stack traces too much and it is of + * questionable benefit anyway, even on i386. + */ + + flag_omit_frame_pointer = 0; + opts->x_flag_omit_frame_pointer = 0; + /* Save the initial options in case the user does function specific options. */ if (main_args_p) diff --git a/gcc/opts.cc b/gcc/opts.cc index 3333600e0ea2..e2eea988a936 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -581,7 +581,7 @@ static const struct default_options default_options_table[] = { OPT_LEVELS_1_PLUS, OPT_fipa_reference, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fipa_reference_addressable, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fmerge_constants, NULL, 1 }, - { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, + { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 0 }, { OPT_LEVELS_1_PLUS, OPT_freorder_blocks, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fshrink_wrap, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fsplit_wide_types, NULL, 1 }, @@ -617,6 +617,7 @@ static const struct default_options default_options_table[] = { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_ftree_pta, NULL, 1 }, { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_ftree_sra, NULL, 1 }, + /* -O2 and -Os optimizations. */ { OPT_LEVELS_2_PLUS, OPT_fcaller_saves, NULL, 1 }, { OPT_LEVELS_2_PLUS, OPT_fcode_hoisting, NULL, 1 },