diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-06-26 13:59:31 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-07-18 08:51:54 -0700 |
commit | 7aa22a8f1a5cd7f79d6bdd8b56ef7ab89a43bce3 (patch) | |
tree | 8f13566ba883fa85e2314477a5b2f76d198fa268 | |
parent | 0b7e26d8f91482fe932a323d8d05d87a40be65dc (diff) | |
download | gcc-7aa22a8f1a5cd7f79d6bdd8b56ef7ab89a43bce3.zip gcc-7aa22a8f1a5cd7f79d6bdd8b56ef7ab89a43bce3.tar.gz gcc-7aa22a8f1a5cd7f79d6bdd8b56ef7ab89a43bce3.tar.bz2 |
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.
-rw-r--r-- | gcc/config/i386/x86-64.h | 11 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/pr95620.c | 18 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h index 88db428..0c5b8af 100644 --- a/gcc/config/i386/x86-64.h +++ b/gcc/config/i386/x86-64.h @@ -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 diff --git a/libgomp/testsuite/libgomp.c/pr95620.c b/libgomp/testsuite/libgomp.c/pr95620.c new file mode 100644 index 0000000..b310b56 --- /dev/null +++ b/libgomp/testsuite/libgomp.c/pr95620.c @@ -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; +} |