+2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR testsuite/70595
+ * doc/sourcebuild.texi (Effective-Target Keywords, Other
+ attributes): Document cilkplus_runtime.
+
2016-04-28 Martin Jambor <mjambor@suse.cz>
* tree-cfg.c (verify_expr): Verify that local declarations belong to
@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}.
+2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ 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.
+
2016-04-27 Marc Glisse <marc.glisse@inria.fr>
* gcc.dg/tree-ssa/overflow-2.c: New testcase.
-/* { 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;
-/* { 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>
-/* { 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;
-/* { 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-*-* } } } */
+/* { 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>
+/* { 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>
+/* { 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>
+/* { 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>
-/* { 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>
-/* { 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)
{
/* { dg-options "-fcilkplus -fcompare-debug" } */
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-do compile } */
#include "fib_no_return.c"
-/* { 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
-/* { 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"
-/* { 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>
-/* { 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
-/* { 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" {
-/* { 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" {
/* { dg-do compile } */
-/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-do run { target cilkplus_runtime } } */
/* { dg-options "-fcilkplus" } */
int main (void)
-/* { 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>
+/* The warning is x86-only. */
/* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
/* { dg-options "-fcilkplus -Wall" } */
-/* { 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++ } } */
/* { 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>
-/* { 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
+/* { 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
{
+/* { 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>
+/* { 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
{
-/* { 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>
+/* { 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
+/* { 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
+/* { 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
{
+/* { 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>
-/* { 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>
-/* { 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>
-/* { 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>
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" " "
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 " " "
}
# 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