re PR bootstrap/69677 (bootstrap failed with --with-arch=corei7 --with-cpu=corei7)

PR bootstrap/69677
	* config/i386/i386.c (convert_scalars_to_vector): Readd stack
	alignment fixes.
	(ix86_option_override_internal): Disable TARGET_STV even for
	-m{incoming,preferred}-stack-boundary=3.

From-SVN: r233167
This commit is contained in:
Jakub Jelinek 2016-02-05 10:23:03 +01:00 committed by Jakub Jelinek
parent 714fb282d8
commit 5421e2cab2
2 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2016-02-05 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/69677
* config/i386/i386.c (convert_scalars_to_vector): Readd stack
alignment fixes.
(ix86_option_override_internal): Disable TARGET_STV even for
-m{incoming,preferred}-stack-boundary=3.
2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* config.gcc: Mark deprecated rtems targets as obsolete.

View File

@ -3588,6 +3588,16 @@ convert_scalars_to_vector ()
bitmap_obstack_release (NULL);
df_process_deferred_rescans ();
/* Conversion means we may have 128bit register spills/fills
which require aligned stack. */
if (converted_insns)
{
if (crtl->stack_alignment_needed < 128)
crtl->stack_alignment_needed = 128;
if (crtl->stack_alignment_estimated < 128)
crtl->stack_alignment_estimated = 128;
}
return 0;
}
@ -5443,12 +5453,12 @@ ix86_option_override_internal (bool main_args_p,
opts->x_target_flags |= MASK_VZEROUPPER;
if (!(opts_set->x_target_flags & MASK_STV))
opts->x_target_flags |= MASK_STV;
/* Disable STV if -mpreferred-stack-boundary=2 or
-mincoming-stack-boundary=2 - the needed
/* Disable STV if -mpreferred-stack-boundary={2,3} or
-mincoming-stack-boundary={2,3} - 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 < 64
|| ix86_incoming_stack_boundary < 64)
if (ix86_preferred_stack_boundary < 128
|| ix86_incoming_stack_boundary < 128)
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))