diff mbox

RE: Testsuite / Cilk Plus: Include library path in compile flags in gcc.dg/cilk-plus/cilk-plus.exp

Message ID BF230D13CA30DD48930C31D4099330003A49BAB2@FMSMSX101.amr.corp.intel.com
State New
Headers show

Commit Message

Iyer, Balaji V Nov. 6, 2013, 2:24 a.m. UTC
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.iyer@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:jakub@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

Comments

Jakub Jelinek Nov. 6, 2013, 7:04 a.m. UTC | #1
On Wed, Nov 06, 2013 at 02:24:01AM +0000, Iyer, Balaji V wrote:
>     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.iyer@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.

Ok.

	Jakub
diff mbox

Patch

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.iyer@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.lu@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);
     }
 }