diff mbox

Cilk Plus testsuite needs massive cleanup (PR testsuite/70595)

Message ID yddd1pb9zju.fsf@lokon.CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth April 27, 2016, 9:22 a.m. UTC
While working on the libcilkrts SPARC port from PR target/68945, I
noticed that the Cilk Plus testsuite has massive need for and potential
of cleanup to easily accomodate non-x86 targets:

* Every single execution test explicitly lists the targets to run on,
  often even twice (in the dg-do target selector and then again when
  adding -lcilkrts via dg-options).  This is completely unmaintainable
  and should be replaced by a target selector.  I'm using the current
  check_libcilkrts_available, renamed to cilkplus_runtime, for that
  purpose.  There's no need to add -lcilkrts at all; -fcilkplus already
  does this when linking.

* Two tests (c-c++-common/cilk-plus/CK/pr63307.c and
  c-c++-common/cilk-plus/SE/ef_error3.c) are pure compile tests and
  don't need a target selector at all.

* This only leaves us with c-c++-common/cilk-plus/SE/ef_error2.c, where
  the expected warning is x86-specific, thus the target selector needs
  to stay.

There's much opportunity for additional cleanup, already mentioned in
the PR, but the current set is enough to successfully run the testsuite
on Solaris/SPARC with the preliminary patch in PR target/68945.  I'll
address the rest in a follow-up.

Tested with the appropriate runtest invocations on i386-pc-solaris2.12
and x86_64-pc-linux-gnu (and also on sparc-sun-solaris2.12 with the
libcilkrts port): with the exception of a line number change for
c-c++-common/cilk-plus/SE/ef_error2.c, results without and with the
patch are identical.

Will commit to mainline in a day or two, giving interested parties an
opportunity to comment.

	Rainer


2016-04-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gcc:
	PR testsuite/70595
	* doc/sourcebuild.texi (Effective-Target Keywords, Other
	attributes): Document cilkplus_runtime.

	gcc/testsuite:
	PR testsuite/70595
	* lib/target-supports.exp (check_libcilkrts_available): Rename to ...
	(check_effective_target_cilkplus_runtime): ... this.
	* g++.dg/cilk-plus/cilk-plus.exp: Adapt to it.
	* gcc.dg/cilk-plus/cilk-plus.exp: Likewise.

	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Remove dg-do target selector.
	Require cilkplus_runtime.
	Don't add -lcilkrts.
	* c-c++-common/cilk-plus/CK/cilk-fors.c: Likewise.
	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Likewise.
	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Likewise.
	* c-c++-common/cilk-plus/CK/fib.c: Likewise.
	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise.
	* c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise.
	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise.
	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Likewise.
	* c-c++-common/cilk-plus/CK/pr60586.c: Likewise.
	* c-c++-common/cilk-plus/CK/pr69826-1.c: Likewise.
	* c-c++-common/cilk-plus/CK/pr69826-2.c: Likewise.
	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise.
	* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
	* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
	* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
	* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
	* g++.dg/cilk-plus/CK/catch_exc.cc: Likewise.
	* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: Likewise.
	* g++.dg/cilk-plus/CK/const_spawn.cc: Likewise.
	* g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise.
	* g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise.
	* g++.dg/cilk-plus/CK/for1.cc: Likewise.
	* g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise.
	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise.
	* g++.dg/cilk-plus/CK/pr60586.cc: Likewise.
	* g++.dg/cilk-plus/CK/pr66326.cc: Likewise.
	* g++.dg/cilk-plus/CK/stl_iter.cc: Likewise.
	* g++.dg/cilk-plus/CK/stl_rev_iter.cc: Likewise.
	* g++.dg/cilk-plus/CK/stl_test.cc: Likewise.

	* c-c++-common/cilk-plus/CK/pr63307.c: Remove dg-do target selector.
	* c-c++-common/cilk-plus/SE/ef_error3.c: Likewise.

	* c-c++-common/cilk-plus/SE/ef_error2.c: Explain target selector.

	* c-c++-common/cilk-plus/CK/test__cilk.c: Run if
	cilkplus_runtime.

Comments

Mike Stump April 27, 2016, 5:52 p.m. UTC | #1
> On Apr 27, 2016, at 2:22 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
> Will commit to mainline in a day or two, giving interested parties an
> opportunity to comment.

:-)  Always nice to see cleanups.
diff mbox

Patch

# HG changeset patch
# Parent  f4df0fe5be5412270363b803d28085c2e12e6017
Simplify Cilk+ testsuite

diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1878,6 +1878,9 @@  Target supports wide characters.
 @item automatic_stack_alignment
 Target supports automatic stack alignment.
 
+@item cilkplus_runtime
+Target supports the Cilk Plus runtime library.
+
 @item cxa_atexit
 Target uses @code{__cxa_atexit}.
 
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-for-2.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-for-2.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-for-2.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-for-2.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 int msk;
 
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-fors.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-fors.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-fors.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk-fors.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_grain.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_grain.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_grain.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_grain.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 
 int grain_value = 2;
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 
 
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/nested_cilk_for.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/nested_cilk_for.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/nested_cilk_for.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/nested_cilk_for.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60586.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60586.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60586.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60586.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus -O2" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 int noop(int x)
 {
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr63307.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr63307.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr63307.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr63307.c
@@ -1,4 +1,4 @@ 
 /* { dg-options "-fcilkplus -fcompare-debug" } */
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-do compile } */
 
 #include "fib_no_return.c"
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
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-1.c
@@ -1,7 +1,7 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-std=gnu99" { target c } } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #define GRAINSIZE 2
 
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
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/pr69826-2.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { 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"
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawnee_inline.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus -w" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #include <stdlib.h>
 #define DEFAULT_VALUE 30
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/spawning_arg.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/steal_check.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/test__cilk.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/test__cilk.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/test__cilk.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/test__cilk.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run { target cilkplus_runtime } } */
 /* { dg-options "-fcilkplus" } */
 
 int main (void)
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/varargs_test.c b/gcc/testsuite/c-c++-common/cilk-plus/CK/varargs_test.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/CK/varargs_test.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/varargs_test.c
@@ -1,6 +1,6 @@ 
-/* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #include <stdarg.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error2.c b/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error2.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error2.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error2.c
@@ -1,3 +1,4 @@ 
+/* The warning is x86-only.  */
 /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
 /* { dg-options "-fcilkplus -Wall" } */
 
diff --git a/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error3.c b/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error3.c
--- a/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error3.c
+++ b/gcc/testsuite/c-c++-common/cilk-plus/SE/ef_error3.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do compile } */
 /* { dg-options "-fcilkplus -Wall" } */
 
 __attribute__((vector (linear (x:y)))) /* { dg-message "parameter" "" { target c++ } } */
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc
@@ -1,6 +1,6 @@ 
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 
 #include <assert.h>
 #include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/cilk-for-tplt.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/cilk-for-tplt.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/cilk-for-tplt.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/cilk-for-tplt.cc
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #define SIZE 100
 #define CHECK_VALUE 5
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/const_spawn.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/const_spawn.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/const_spawn.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/const_spawn.cc
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
 
 class Rectangle
 {
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/fib-opr-overload.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/fib-opr-overload.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/fib-opr-overload.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/fib-opr-overload.cc
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
 
 #if HAVE_IO
 #include <iostream>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/fib-tplt.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/fib-tplt.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/fib-tplt.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/fib-tplt.cc
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-*-* } } } */
 
 struct fib_struct
 {
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/for1.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/for1.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/for1.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/for1.cc
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #if HAVE_IO
 #include <cstdio>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns.cc
@@ -1,7 +1,8 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
+/* { dg-require-effective-target c++11 } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-// { dg-require-effective-target c++11 }
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
+
 #define FIRST_NUMBER 5
 #define SECOND_NUMBER 3
 #define HAVE_IO 0
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc
@@ -1,7 +1,7 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
+/* { dg-require-effective-target c++11 } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-// { dg-require-effective-target c++11 }
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
 
 #define FIRST_NUMBER 5
 #define SECOND_NUMBER 3
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/pr60586.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/pr60586.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/pr60586.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/pr60586.cc
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
 
 class Rectangle
 {
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/pr66326.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/pr66326.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/pr66326.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/pr66326.cc
@@ -1,6 +1,6 @@ 
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #include <vector>
 #include <random>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_iter.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_iter.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_iter.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_iter.cc
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 #include <vector>
 #include <cstdio>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_rev_iter.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_rev_iter.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_rev_iter.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_rev_iter.cc
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 
 #include <vector>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_test.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_test.cc
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/stl_test.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/stl_test.cc
@@ -1,6 +1,6 @@ 
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run } */
+/* { dg-require-effective-target cilkplus_runtime } */
 /* { dg-options "-fcilkplus" } */
-/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
 
 
 #include <iostream>
diff --git a/gcc/testsuite/g++.dg/cilk-plus/cilk-plus.exp b/gcc/testsuite/g++.dg/cilk-plus/cilk-plus.exp
--- a/gcc/testsuite/g++.dg/cilk-plus/cilk-plus.exp
+++ b/gcc/testsuite/g++.dg/cilk-plus/cilk-plus.exp
@@ -55,7 +55,7 @@  if [cilkplus_init] {
     dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/AN/*.cc]] " -g -O3 -fcilkplus" " "
     dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/AN/*.cc]] " -O3 -ftree-vectorize -fcilkplus -g" " "
 
-    if { [check_libcilkrts_available] } {
+    if { [check_effective_target_cilkplus_runtime] } {
         dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/CK/*.cc]] " -O1 -fcilkplus" " "
         dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/CK/*.cc]] " -O3 -fcilkplus" " "
         dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/CK/*.cc]] " -g -fcilkplus" " "
diff --git a/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp b/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
--- a/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
+++ b/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
@@ -44,7 +44,7 @@  if [cilkplus_init] {
     dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O3 -std=c99" " "
     dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O0 -std=c99" " "
 
-    if { [check_libcilkrts_available] } {
+    if { [check_effective_target_cilkplus_runtime] } {
         dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g " " "
         dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 " " "
         dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 " " "
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1279,8 +1279,8 @@  proc check_iconv_available { test_what }
 }
 
 # Return true if Cilk Library is supported on the target.
-proc check_libcilkrts_available { } {
-  return [ check_no_compiler_messages_nocache libcilkrts_available executable {
+proc check_effective_target_cilkplus_runtime { } {
+  return [ check_no_compiler_messages_nocache cilkplus_runtime executable {
 	#ifdef __cplusplus
 	extern "C" 
 	#endif