+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.
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;
}
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))