Check opts_set->x_flag_fentry and remove check for non-existing PROFILE_BEFORE_PROLOGUE definition.
2017-08-29 Uros Bizjak <ubiz...@gmail.com> * config/i386/i386.opt (flag_fentry): Do not init to -1. * config/i386/i386.c (ix86_option_override_internal): Simplify setting of opts->x_flag_entry. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b5c113d95aad..509fd3a26d5b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -6545,27 +6545,18 @@ ix86_option_override_internal (bool main_args_p, opts->x_target_flags |= MASK_CLD & ~opts_set->x_target_flags; #endif - if (!TARGET_64BIT_P (opts->x_ix86_isa_flags) && opts->x_flag_pic) + /* Set the default value for -mfentry. */ + if (!opts_set->x_flag_fentry) + opts->x_flag_fentry = TARGET_SEH; + else { - if (opts->x_flag_fentry > 0) - sorry ("-mfentry isn%'t supported for 32-bit in combination " + if (!TARGET_64BIT_P (opts->x_ix86_isa_flags) && opts->x_flag_pic + && opts->x_flag_fentry) + sorry ("-mfentry isn%'t supported for 32-bit in combination " "with -fpic"); - opts->x_flag_fentry = 0; - } - else if (TARGET_SEH) - { - if (opts->x_flag_fentry == 0) + else if (TARGET_SEH && !opts->x_flag_fentry) sorry ("-mno-fentry isn%'t compatible with SEH"); - opts->x_flag_fentry = 1; } - else if (opts->x_flag_fentry < 0) - { -#if defined(PROFILE_BEFORE_PROLOGUE) - opts->x_flag_fentry = 1; -#else - opts->x_flag_fentry = 0; -#endif - } if (TARGET_SEH && TARGET_CALL_MS2SYSV_XLOGUES) sorry ("-mcall-ms2sysv-xlogues isn%'t currently supported with SEH"); diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 8bf6af21fd18..81bbc1e2170a 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -862,7 +862,7 @@ Target Report Mask(ISA_PREFETCHWT1) Var(ix86_isa_flags) Save Support PREFETCHWT1 built-in functions and code generation. mfentry -Target Report Var(flag_fentry) Init(-1) +Target Report Var(flag_fentry) Emit profiling counter call at function entry before prologue. mrecord-mcount