mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 12:41:09 +08:00
x86-64: Define ASM_OUTPUT_ALIGNED_DECL_LOCAL
Define ASM_OUTPUT_ALIGNED_DECL_LOCAL for large local common symbol. gcc/ PR target/95620 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. libgomp/ PR target/95620 * testsuite/libgomp.c/pr95620.c: New test.
This commit is contained in:
parent
0b7e26d8f9
commit
7aa22a8f1a
@ -59,6 +59,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
#define ASM_OUTPUT_ALIGNED_DECL_COMMON(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
x86_elf_aligned_decl_common (FILE, DECL, NAME, SIZE, ALIGN);
|
||||
|
||||
#undef ASM_OUTPUT_ALIGNED_DECL_LOCAL
|
||||
#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
fprintf ((FILE), "%s", LOCAL_ASM_OP); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), "\n"); \
|
||||
ASM_OUTPUT_ALIGNED_DECL_COMMON (FILE, DECL, NAME, SIZE, ALIGN); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* This is used to align code labels according to Intel recommendations. */
|
||||
|
||||
#define SUBALIGN_LOG 3
|
||||
|
18
libgomp/testsuite/libgomp.c/pr95620.c
Normal file
18
libgomp/testsuite/libgomp.c/pr95620.c
Normal file
@ -0,0 +1,18 @@
|
||||
// { dg-do link { target { { i?86-*-* x86_64-*-* } && lp64 } } }
|
||||
/* { dg-require-effective-target lto } */
|
||||
/* { dg-additional-options "-flto -mcmodel=medium" } */
|
||||
|
||||
double a[353783808];
|
||||
int b, c, d;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
for (; b;)
|
||||
#pragma omp parallel
|
||||
a[c] = 1;
|
||||
for (;; b++)
|
||||
if (a[c])
|
||||
d++;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user