From 3409207a446054802c83e41cd5eb609816a00278 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Thu, 1 Sep 2016 07:55:00 +0000 Subject: [PATCH] i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled. * config/i386/i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled. From-SVN: r239916 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1cf6ef600dd..9f90359170e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-09-01 Eric Botcazou + + * config/i386/i386.c (ix86_option_override_internal): Also disable the + STV pass if -mstackrealign is enabled. + 2016-08-31 Ilya Verbin * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a229a738399..3ac115c64f7 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -5957,11 +5957,12 @@ ix86_option_override_internal (bool main_args_p, if (!(opts_set->x_target_flags & MASK_STV)) opts->x_target_flags |= MASK_STV; /* Disable STV if -mpreferred-stack-boundary={2,3} or - -mincoming-stack-boundary={2,3} - the needed + -mincoming-stack-boundary={2,3} or -mstackrealign - the needed stack realignment will be extra cost the pass doesn't take into account and the pass can't realign the stack. */ if (ix86_preferred_stack_boundary < 128 - || ix86_incoming_stack_boundary < 128) + || ix86_incoming_stack_boundary < 128 + || opts->x_ix86_force_align_arg_pointer) opts->x_target_flags &= ~MASK_STV; if (!ix86_tune_features[X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL] && !(opts_set->x_target_flags & MASK_AVX256_SPLIT_UNALIGNED_LOAD)) -- 2.30.2