mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-09 17:11:20 +08:00
re PR target/89261 (ix86_data_alignment has wrong argument type)
PR target/89261 * config/i386/i386-protos.h (ix86_data_alignment): Change the second argument type to unsigned int. * config/i386/i386.c (ix86_data_alignment): Change "align" argument type to unsigned int. testsuite/ChangeLog: PR target/89261 * gcc.target/i386/pr89261.c: New test. From-SVN: r270623
This commit is contained in:
parent
23ab635042
commit
f8b906a2de
@ -1,3 +1,11 @@
|
||||
2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/89261
|
||||
* config/i386/i386-protos.h (ix86_data_alignment): Change
|
||||
the second argument type to unsigned int.
|
||||
* config/i386/i386.c (ix86_data_alignment): Change "align"
|
||||
argument type to unsigned int.
|
||||
|
||||
2019-04-27 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR middle-end/90258
|
||||
|
@ -207,7 +207,7 @@ extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
|
||||
#endif /* RTX_CODE */
|
||||
|
||||
#ifdef TREE_CODE
|
||||
extern int ix86_data_alignment (tree, int, bool);
|
||||
extern int ix86_data_alignment (tree, unsigned int, bool);
|
||||
extern unsigned int ix86_local_alignment (tree, machine_mode,
|
||||
unsigned int);
|
||||
extern unsigned int ix86_minimum_alignment (tree, machine_mode,
|
||||
|
@ -29802,7 +29802,7 @@ iamcu_alignment (tree type, int align)
|
||||
instead of that alignment to align the object. */
|
||||
|
||||
int
|
||||
ix86_data_alignment (tree type, int align, bool opt)
|
||||
ix86_data_alignment (tree type, unsigned int align, bool opt)
|
||||
{
|
||||
/* GCC 4.8 and earlier used to incorrectly assume this alignment even
|
||||
for symbols from other compilation units or symbols that don't need
|
||||
@ -29810,14 +29810,14 @@ ix86_data_alignment (tree type, int align, bool opt)
|
||||
those compilers, ensure we don't decrease alignment from what we
|
||||
used to assume. */
|
||||
|
||||
int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
|
||||
unsigned int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
|
||||
|
||||
/* A data structure, equal or greater than the size of a cache line
|
||||
(64 bytes in the Pentium 4 and other recent Intel processors, including
|
||||
processors based on Intel Core microarchitecture) should be aligned
|
||||
so that its base address is a multiple of a cache line size. */
|
||||
|
||||
int max_align
|
||||
unsigned int max_align
|
||||
= MIN ((unsigned) ix86_tune_cost->prefetch_block * 8, MAX_OFILE_ALIGNMENT);
|
||||
|
||||
if (max_align < BITS_PER_WORD)
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/89261
|
||||
* gcc.target/i386/pr89261.c: New test.
|
||||
|
||||
2019-04-27 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR middle-end/90258
|
||||
|
9
gcc/testsuite/gcc.target/i386/pr89261.c
Normal file
9
gcc/testsuite/gcc.target/i386/pr89261.c
Normal file
@ -0,0 +1,9 @@
|
||||
/* PR target/89261 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
typedef double __v2df __attribute__ ((vector_size (16), aligned (1 << 28)));
|
||||
|
||||
__v2df foo = { 1.0, 2.0 };
|
||||
|
||||
/* { dg-final { scan-assembler "\.align\[ \t]+268435456" } } */
|
Loading…
x
Reference in New Issue
Block a user