From 5b3c03701632aa2b971f1abf7238c760fd876cf2 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 a26cb878b68..c7d72023f77 100644 --- a/gcc/config/i386/i386-options.cc +++ b/gcc/config/i386/i386-options.cc @@ -2914,6 +2914,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 a97630d1c9a..d40c92456ed 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -573,7 +573,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 }, @@ -609,6 +609,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 },