Hi Jakub, Fixed patch is attached. The responses to your question are given below. Is this patch OK?
Here is the ChangeLog entry: +2013-11-05 Balaji V. Iyer <balaji.v.i...@intel.com> + + * c-c++-common/cilk-plus/CK/fib.c: Reduced the iteration from + 40 to 30. Replaced iteration variable with a #define. Instead of + returning non-zero value for error, called __builtin_abort (). Fixed + a bug of calling fib_serial in serial case instead of fib. + * 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. + * gcc.dg/cilk-plus/cilk-plus.exp: Removed duplicate/un-necessary + compiler flag testing. + Thanks, Balaji V. Iyer. > -----Original Message----- > From: Jakub Jelinek [mailto:ja...@redhat.com] > Sent: Tuesday, November 5, 2013 12:21 PM > To: Iyer, Balaji V > Cc: Iain Sandoe; Joseph S. Myers; Tobias Burnus; gcc patches > Subject: Re: [PATCH] RE: Testsuite / Cilk Plus: Include library path in > compile > flags in gcc.dg/cilk-plus/cilk-plus.exp > > On Tue, Nov 05, 2013 at 05:04:21PM +0000, Iyer, Balaji V wrote: > > --- gcc.dg/cilk-plus/cilk-plus.exp (revision 204396) > > +++ gcc.dg/cilk-plus/cilk-plus.exp (working copy) > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus $ALWAYS_CFLAGS " " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O0 -fcilkplus $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O1 -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O2 -ftree-vectorize -fcilkplus $ALWAYS_CFLAGS" " " > > +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O2 -fcilkplus $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O3 -fcilkplus $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -g -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -g -O0 -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -g -O1 -fcilkplus $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -g -O2 -ftree-vectorize -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -g -O3 -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O3 -ftree-vectorize -fcilkplus -g $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -O0 -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -O1 -std=c99 $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -O2 -ftree-vectorize -std=c99 $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -O3 -std=c99 $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -O0 -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -O1 -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -O2 -ftree-vectorize -std=c99 $ALWAYS_CFLAGS" > " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -O3 -std=c99 $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O3 -ftree-vectorize -std=c99 -g -fcilkplus $ALWAYS_CFLAGS" > " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O0 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " > > -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O2 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " > > +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -fcilkplus -g -O2 -std=c99 $ALWAYS_CFLAGS" " " > > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk- > plus/CK/*.c]] " -O3 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " > > That is still 12 torture iterations, which is IMHO just too much. Why do you > think testing would be insufficient say for: > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -g -fcilkplus $ALWAYS_CFLAGS " " " > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -O1 -fcilkplus $ALWAYS_CFLAGS" " " > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -O2 -std=c99 -fcilkplus $ALWAYS_CFLAGS" " " > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -O2 -ftree-vectorize -fcilkplus $ALWAYS_CFLAGS" " " > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -O3 -g -fcilkplus $ALWAYS_CFLAGS" " " > dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] > " -O3 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " > only? Then both -std=c99 and non-std=c99 is tested, -g and -g0, and the > major optimization levels plus -O2 -ftree-vectorize. > Yes, I guess that will work. I have reduced it to the list above. > > --- c-c++-common/cilk-plus/CK/fib.c (revision 204396) > > +++ c-c++-common/cilk-plus/CK/fib.c (working copy) > > @@ -9,27 +9,31 @@ > > int fib (int); > > int fib_serial (int); > > > > +#define FIB_ITERATION 30 > > As I said, if you want to use FIB_ITERATION 40 for the > GCC_RUN_EXPENSIVE_TESTS=1, this would be a matter of: > /* { dg-additional-options "-DFIB_ITERATION=40" { target > run_expensive_tests } } */ #ifndef FIB_ITERATION #define FIB_ITERATION > 30 #endif > > > + for (ii = 0; ii <= 30; ii++) > > You aren't using FIB_ITERATION above (etc.). That was a grep mistake. it's fixed. > > > { > > fib_result[ii] = fib (ii); > > What is the point of testing separately fib (0), fib (1), up to fib (30), > when fib > (30) already tests all of them (some of them many times)? > > > fib_serial_result[ii] = fib_serial (ii); > Time difference between going from 0-30 and just doing 30 or 40, is just very minimal (almost negligible) . The advantage of this is that we can insert a printf somewhere in the middle and see where things are going wrong when things go wrong. > And, do you really need to test this at runtime? If you want to do it only to > verify the fib (FIB_ITERATION) result, then at least do: > fib_serial_result[0] = 0; > fib_serial_result[1] = 1; > for (ii = 2; ii <= FIB_ITERATION; ii++) > fib_serial_result[ii] = fib_serial_result[ii - 2] + fib_serial_result[ii - > 1]; if (fib > (FIB_ITERATION) != fib_serial_result[FIB_ITERATION]) > __builtin_abort (); > (still not fastest, but at least not soo slow). > This is fixed as you mentioned above. The reason why I made the serial result calculate recursively is because I want to test what the result would be if _Cilk_spawn and _Cilk_sync were not there. > Jakub
Index: gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp =================================================================== --- gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp (revision 204396) +++ gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp (working copy) @@ -33,52 +33,23 @@ dg-init dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O0 -fcilkplus" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O1 -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O2 -ftree-vectorize -fcilkplus" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O2 -fcilkplus" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O3 -fcilkplus" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O0 -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O1 -fcilkplus" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O2 -ftree-vectorize -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O3 -fcilkplus" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O3 -ftree-vectorize -fcilkplus -g" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O0 -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O1 -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O2 -ftree-vectorize -std=c99" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O2 -std=c99" " " 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 -std=c99" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O0 -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O1 -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O2 -ftree-vectorize -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O3 -std=c99" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O3 -ftree-vectorize -std=c99 -g -fcilkplus" " " - -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus $ALWAYS_CFLAGS " " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O0 -fcilkplus $ALWAYS_CFLAGS" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -fcilkplus $ALWAYS_CFLAGS " " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 -fcilkplus $ALWAYS_CFLAGS" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 -fcilkplus $ALWAYS_CFLAGS" " " dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -ftree-vectorize -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O0 -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O1 -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O2 -ftree-vectorize -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O3 -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -ftree-vectorize -fcilkplus -g $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -O0 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -O1 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -O2 -ftree-vectorize -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -O3 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -g -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -g -O0 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -g -O1 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -g -O2 -ftree-vectorize -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus -g -O3 -std=c99 $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -ftree-vectorize -std=c99 -g -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O0 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " -dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -g -fcilkplus $ALWAYS_CFLAGS" " " +dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g -fcilkplus $ALWAYS_CFLAGS" " " + + + dg-finish Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (revision 204396) +++ gcc/testsuite/ChangeLog (working copy) @@ -1,3 +1,15 @@ +2013-11-05 Balaji V. Iyer <balaji.v.i...@intel.com> + + * c-c++-common/cilk-plus/CK/fib.c: Reduced the iteration from + 40 to 30. Replaced iteration variable with a #define. Instead of + returning non-zero value for error, called __builtin_abort (). Fixed + a bug of calling fib_serial in serial case instead of fib. + * 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. + * gcc.dg/cilk-plus/cilk-plus.exp: Removed duplicate/un-necessary + compiler flag testing. + 2013-11-05 H.J. Lu <hongjiu...@intel.com> PR middle-end/58981 Index: gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c =================================================================== --- gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c (revision 204396) +++ gcc/testsuite/c-c++-common/cilk-plus/CK/fib.c (working copy) @@ -9,43 +9,36 @@ int fib (int); int fib_serial (int); +#define FIB_ITERATION 30 + int main(void) { - int ii = 0, error = 0; - int fib_result[41], fib_serial_result[41]; + int ii = 0; + int fib_result[FIB_ITERATION+1], fib_serial_result[FIB_ITERATION+1]; #if HAVE_IO - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) printf("fib (%2d) = %10d\n", ii, fib (ii)); #else - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) { fib_result[ii] = fib (ii); - fib_serial_result[ii] = fib_serial (ii); } - for (ii = 0; ii <= 40; ii++) + fib_serial_result[0] = 0; + fib_serial_result[1] = 1; + for (ii = 2; ii <= FIB_ITERATION; ii++) + fib_serial_result[ii] = fib_serial_result[ii-1] + fib_serial_result[ii-2]; + + for (ii = 0; ii <= FIB_ITERATION; ii++) { if (fib_result[ii] != fib_serial_result[ii]) - error = 1; + __builtin_abort (); } #endif - return error; + return 0; } -int fib_serial (int n) -{ - int x = 0, y = 0; - if (n < 2) - return n; - else - { - x = fib (n-1); - y = fib (n-2); - return (x+y); - } -} - int fib(int n) { int x = 0, y = 0; Index: gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c =================================================================== --- gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c (revision 204396) +++ gcc/testsuite/c-c++-common/cilk-plus/CK/fib_init_expr_xy.c (working copy) @@ -9,28 +9,36 @@ int fib (int); int fib_serial (int); +#define FIB_ITERATION 30 + int main(void) { - int ii = 0, error = 0; - int fib_result[41], fib_serial_result[41]; + int ii = 0; + int fib_result[FIB_ITERATION+1], fib_serial_result[FIB_ITERATION+1]; #if HAVE_IO - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) printf("fib (%2d) = %10d\n", ii, fib (ii)); #else - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) { fib_result[ii] = fib (ii); - fib_serial_result[ii] = fib_serial (ii); } - for (ii = 0; ii <= 40; ii++) + fib_serial_result[0] = 0; + fib_serial_result[1] = 1; + + for (ii = 2; ii <= FIB_ITERATION; ii++) + fib_serial_result[ii] = fib_serial_result[ii-1] + fib_serial_result[ii-2]; + + for (ii = 0; ii <= FIB_ITERATION; ii++) { if (fib_result[ii] != fib_serial_result[ii]) - error = 1; + __builtin_abort (); } + #endif - return error; + return 0; } int fib_serial (int n) @@ -40,8 +48,8 @@ return n; else { - x = fib (n-1); - y = fib (n-2); + x = fib_serial (n-1); + y = fib_serial (n-2); return (x+y); } } Index: gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c =================================================================== --- gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c (revision 204396) +++ gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_sync.c (working copy) @@ -6,31 +6,39 @@ #include <stdio.h> #endif +#define FIB_ITERATION 30 + int fib (int); int fib_serial (int); int main(void) { - int ii = 0, error = 0; - int fib_result[41], fib_serial_result[41]; + int ii = 0; + int fib_result[FIB_ITERATION+1], fib_serial_result[FIB_ITERATION+1]; #if HAVE_IO - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) printf("fib (%2d) = %10d\n", ii, fib (ii)); #else - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) { fib_result[ii] = fib (ii); - fib_serial_result[ii] = fib_serial (ii); } - for (ii = 0; ii <= 40; ii++) + fib_serial_result[0] = 0; + fib_serial_result[1] = 1; + + for (ii = 2; ii <= FIB_ITERATION; ii++) + fib_serial_result[ii] = fib_serial_result[ii-1] + fib_serial_result[ii-2]; + + for (ii = 0; ii <= FIB_ITERATION; ii++) { if (fib_result[ii] != fib_serial_result[ii]) - error = 1; + __builtin_abort (); } + #endif - return error; + return 0; } int fib_serial (int n) @@ -40,8 +48,8 @@ return n; else { - x = fib (n-1); - y = fib (n-2); + x = fib_serial (n-1); + y = fib_serial (n-2); return (x+y); } } Index: gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c =================================================================== --- gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c (revision 204396) +++ gcc/testsuite/c-c++-common/cilk-plus/CK/fib_no_return.c (working copy) @@ -6,35 +6,43 @@ #include <stdio.h> #endif +#define FIB_ITERATION 30 + void fib (int *, int); int fib_serial (int); int main(void) { int ii = 0, error = 0; - int fib_result[41], fib_serial_result[41]; + int fib_result[FIB_ITERATION+1], fib_serial_result[FIB_ITERATION+1]; #if HAVE_IO - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) { int result = 0; fib (&result, ii); printf("fib (%2d) = %10d\n", ii, result); } #else - for (ii = 0; ii <= 40; ii++) + for (ii = 0; ii <= FIB_ITERATION; ii++) { fib (&fib_result[ii], ii); - fib_serial_result[ii] = fib_serial (ii); } - - for (ii = 0; ii <= 40; ii++) + + fib_serial_result[0] = 0; + fib_serial_result[1] = 1; + + for (ii = 2; ii <= FIB_ITERATION; ii++) + fib_serial_result[ii] = fib_serial_result[ii-1] + fib_serial_result[ii-2]; + + for (ii = 0; ii <= FIB_ITERATION; ii++) { if (fib_result[ii] != fib_serial_result[ii]) - error = 1; + __builtin_abort (); } #endif - return error; + + return 0; } int fib_serial (int n) @@ -44,8 +52,8 @@ return n; else { - fib (&x, n-1); - fib (&y, n-2); + x = fib_serial (n-1); + y = fib_serial (n-2); return (x+y); } }