This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: gcc-dw2? or fast sjlj-exceptions EH
- From: Tatsuro MATSUOKA <matsuoka at mol dot nagoya-u dot ac dot jp>
- To: Eric Blake <ebb9 at byu dot net>
- Cc: cygwin at cygwin dot com, matsuoka at nuce dot nagoya-u dot ac dot jp
- Date: Wed, 12 Sep 2007 11:29:57 +0900
- Subject: Re: gcc-dw2? or fast sjlj-exceptions EH
- References: <20070912054905.177F7D98.matsuoka@mol.nagoya-u.ac.jp> <46E732EC.2080400@byu.net>
- Reply-to: matsuoka at nuce dot nagoya-u dot ac dot jp
Eric Blake <ebb9@byu.net> wrote:
(2007/09/12 09:29)
>I think you are misunderstanding a fundamental concept. sjlj exception
>handling is inherently slower than stack-tracing exception handling,
>because it must assume the worst and store the entire stack state (the
>'sj' or setjump) prior to any call site where an exception might occur,
>whether or not an exception actually happens (the 'lj' or longjump part).
> Dwarf error handling, on the other hand, is a form of stack-tracing,
>where there is NO penalty UNLESS there was an exception. Exception
>handling is slower, because it must crawl backwards through the stack to
>find all catch points with handlers to run, but more efficient when there
>is no exception because you don't waste time saving state that never gets
>jumped to.
>
>In other words, the ONLY way to speed up octave is to avoid sjlj
>exceptions. And there are two ways to do that - either switch to
>stack-based exceptions (such as dwarf), or avoid exceptions to begin with.
> The octave maintainer has already expressed a reluctance to disable
>exceptions, and the current gcc for cygwin, 3.4.4, doesn't have a way to
>use anything other than sjlj, so you will just have to wait.
Dear Eric Blake
I really appreciate for your comprehensible reply.
I'll wait for a while.
Sincerely yours
Tasturo MATSUOKA
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/