FW: [PATCH] Cilk Keywords (_Cilk_spawn and _Cilk_sync) for C
Thomas Schwinge
thomas@codesourcery.com
Tue Mar 29 16:02:00 GMT 2016
Hi!
On Mon, 28 Mar 2016 19:40:22 +0300, Ilya Verbin <iverbin@gmail.com> wrote:
> Do you plan to commit this patch? :)
Well, I'm also still waiting for you guys to merge (via the upstream
Intel sources repository) my GNU Hurd portability patches; submitted to
GCC in
<http://news.gmane.org/find-root.php?message_id=%3C8738bae1mp.fsf%40kepler.schwinge.homeip.net%3E>
and the following messages, dated 2014-09-26. Upon request of Barry M
Tannenbaum then submitted to the Intel web site, and then never heard of
again... ;-(
> On Mon, Sep 29, 2014 at 09:24:40 -0600, Jeff Law wrote:
> > On 09/29/14 08:26, Thomas Schwinge wrote:
> > > Audit Cilk Plus tests for CILK_NWORKERS=1.
> > >
> > > gcc/testsuite/
> > > * c-c++-common/cilk-plus/CK/spawning_arg.c (main): Call
> > > __cilkrts_set_param to set two workers.
> > > * c-c++-common/cilk-plus/CK/steal_check.c (main): Likewise.
> > > * g++.dg/cilk-plus/CK/catch_exc.cc (main): Likewise.
Thanks for reminding me about this. I confirmed that the problem still
reproduces, and the very same patch still fixes it; now committed in
r234523:
commit 4abd94105ecb1d026406648a37ff2fb43bb26d7c
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue Mar 29 14:39:33 2016 +0000
[PR testsuite/64177] Audit Cilk Plus tests for CILK_NWORKERS=1
PR testsuite/64177
gcc/testsuite/
* c-c++-common/cilk-plus/CK/spawning_arg.c (main): Call
__cilkrts_set_param to set two workers.
* c-c++-common/cilk-plus/CK/steal_check.c (main): Likewise.
* g++.dg/cilk-plus/CK/catch_exc.cc (main): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234523 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/testsuite/ChangeLog | 8 ++++++++
.../c-c++-common/cilk-plus/CK/spawning_arg.c | 15 +++++++++++++++
gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c | 17 ++++++++++++++---
gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc | 14 ++++++++++++++
4 files changed, 51 insertions(+), 3 deletions(-)
diff --git gcc/testsuite/ChangeLog gcc/testsuite/ChangeLog
index 11d6863..f9b4b00 100644
--- gcc/testsuite/ChangeLog
+++ gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ PR testsuite/64177
+ * c-c++-common/cilk-plus/CK/spawning_arg.c (main): Call
+ __cilkrts_set_param to set two workers.
+ * c-c++-common/cilk-plus/CK/steal_check.c (main): Likewise.
+ * g++.dg/cilk-plus/CK/catch_exc.cc (main): Likewise.
+
2016-03-28 Dominique d'Humieres <dominiq@lps.ens.fr>
g++.dg/ext/fnname5.C: Update the test for Darwin.
diff --git gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
index 95e6cab..138b82c 100644
--- gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
+++ gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
@@ -2,6 +2,17 @@
/* { dg-options "-fcilkplus" } */
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int __cilkrts_set_param (const char *, const char *);
+
+#ifdef __cplusplus
+}
+#endif
+
+
void f0(volatile int *steal_flag)
{
int i = 0;
@@ -32,6 +43,10 @@ void f3()
int main()
{
+ /* Ensure more than one worker. */
+ if (__cilkrts_set_param("nworkers", "2") != 0)
+ __builtin_abort();
+
f3();
return 0;
}
diff --git gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
index 6e28765..6b41c7f 100644
--- gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
+++ gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
@@ -2,8 +2,16 @@
/* { dg-options "-fcilkplus" } */
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
-// #include <cilk/cilk_api.h>
-extern void __cilkrts_set_param (char *, char *);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int __cilkrts_set_param (const char *, const char *);
+
+#ifdef __cplusplus
+}
+#endif
+
void foo(volatile int *);
@@ -11,7 +19,10 @@ void main2(void);
int main(void)
{
- // __cilkrts_set_param ((char *)"nworkers", (char *)"2");
+ /* Ensure more than one worker. */
+ if (__cilkrts_set_param("nworkers", "2") != 0)
+ __builtin_abort();
+
main2();
return 0;
}
diff --git gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
index 0633d19..09ddf8b 100644
--- gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
+++ gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
@@ -10,6 +10,16 @@
#endif
#include <cstdlib>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int __cilkrts_set_param (const char *, const char *);
+
+#ifdef __cplusplus
+}
+#endif
+
void func(int volatile* steal_me)
{
@@ -59,6 +69,10 @@ void my_test()
int main()
{
+ /* Ensure more than one worker. */
+ if (__cilkrts_set_param("nworkers", "2") != 0)
+ __builtin_abort();
+
my_test();
#if HAVE_IO
printf("PASSED\n");
Grüße
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 472 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160329/74ee78ba/attachment.sig>
More information about the Gcc-patches
mailing list