From 4cc09b9d53f045c063bc97833d7fd0ba3112f132 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 e45478d606bb..d1f1e7c5067a 100644 --- a/gcc/config/i386/i386-options.cc +++ b/gcc/config/i386/i386-options.cc @@ -2971,6 +2971,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 fb2e5388ab19..bf4275621eba 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -577,7 +577,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 }, @@ -613,6 +613,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 },