On Jun 13, 2012, at 7:28 PM, Mario Domenech Goulart wrote:

> Unfortunately I could not observe any improvement on Linux x86.  The
> performance is actually slightly worse with your patch (using master,
> c48a109d668f3186bb4a213940c0b0b81a1ad03d).  I run the benchmarks with no
> csc options and with -O3.  Here are the results ([2] is the chicken with
> the _setjmp/_longjmp patch):

There won't be any improvement on Linux because _setjmp == setjmp;
Linux doesn't save the signal mask on setjmp() unless the obscure __FAVOR_BSD
is #defined.  The performance regression you observed could just be
statistical noise as well -- but, sometimes gcc will inline known calls
and it might do that for setjmp and not _setjmp, even though setjmp is
just a macro alias for _setjmp.  Only way to be sure is to look at the
assembly output.

Other than figuring that out, it would be a good idea to test on mingw
and OS X (I was going to do this).  However testing on other platforms
like cygwin or Solaris (or more obscure?) is problematic.  It is not
really a question of whether _setjmp works but if every platform supports
_setjmp.  I don't know if this is something to throw in before the
release, if one is coming soon, unless we are going to test every
supported platform before release.  Anyone else?

JIm

_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to