diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-03-30 12:33:02 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2016-03-30 12:33:02 +0000 |
commit | ccfe939a9cf0631a3d078f640d6f9222c1a0f994 (patch) | |
tree | 1cd60a1f52c6eaf2e81b0b99fa670d70c7edb380 | |
parent | 450bf08ca1814ec24fe22a5b941092769e769254 (diff) |
Backported from mainline
2016-02-19 Jakub Jelinek <jakub@redhat.com>
PR c++/69826
* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE.
(init_pragma): Register PRAGMA_CILK_GRAINSIZE even for
flag_preprocess_only.
* c-c++-common/cilk-plus/CK/pr69826-1.c: New test.
* c-c++-common/cilk-plus/CK/pr69826-2.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@234553 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/c-family/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-family/c-pragma.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c | 25 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c | 6 |
5 files changed, 50 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index b6852cc84d4..494e9655b61 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,6 +1,13 @@ 2016-03-30 Jakub Jelinek <jakub@redhat.com> Backported from mainline + 2016-02-19 Jakub Jelinek <jakub@redhat.com> + + PR c++/69826 + * c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_GRAINSIZE. + (init_pragma): Register PRAGMA_CILK_GRAINSIZE even for + flag_preprocess_only. + 2016-02-15 Jakub Jelinek <jakub@redhat.com> PR c++/69797 diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c index 6894f0e7c3d..03c10397c8b 100644 --- a/gcc/c-family/c-pragma.c +++ b/gcc/c-family/c-pragma.c @@ -1273,6 +1273,13 @@ c_pp_lookup_pragma (unsigned int id, const char **space, const char **name) return; } + if (id == PRAGMA_CILK_GRAINSIZE) + { + *space = "cilk"; + *name = "grainsize"; + return; + } + if (id >= PRAGMA_FIRST_EXTERNAL && (id < PRAGMA_FIRST_EXTERNAL + registered_pp_pragmas.length ())) { @@ -1459,7 +1466,7 @@ init_pragma (void) cpp_register_deferred_pragma (parse_in, "GCC", "ivdep", PRAGMA_IVDEP, false, false); - if (flag_cilkplus && !flag_preprocess_only) + if (flag_cilkplus) cpp_register_deferred_pragma (parse_in, "cilk", "grainsize", PRAGMA_CILK_GRAINSIZE, true, false); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d25f113dcf6..a73dee198c2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -3,6 +3,10 @@ Backported from mainline 2016-02-19 Jakub Jelinek <jakub@redhat.com> + PR c++/69826 + * c-c++-common/cilk-plus/CK/pr69826-1.c: New test. + * c-c++-common/cilk-plus/CK/pr69826-2.c: New test. + PR c++/67767 * g++.dg/cpp0x/pr67767.C: New test. diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c new file mode 100644 index 00000000000..bcf7727f0ae --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-options "-fcilkplus" } */ +/* { dg-additional-options "-std=gnu99" { target c } } */ +/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */ + +#define GRAINSIZE 2 + +int +main () +{ + int a[64]; + #pragma cilk grainsize=GRAINSIZE + _Cilk_for (int i = 0; i < 64; i++) + a[i] = 0; + #pragma cilk grainsize =GRAINSIZE + _Cilk_for (int i = 0; i < 64; i++) + a[i]++; + #pragma cilk grainsize = GRAINSIZE + _Cilk_for (int i = 0; i < 64; i++) + a[i]++; + for (int i = 0; i < 64; i++) + if (a[i] != 2) + __builtin_abort (); + return 0; +} diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c new file mode 100644 index 00000000000..f4056c62e34 --- /dev/null +++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c @@ -0,0 +1,6 @@ +/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-options "-fcilkplus -save-temps" } */ +/* { dg-additional-options "-std=gnu99" { target c } } */ +/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */ + +#include "pr69826-1.c" |