octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fwd: [Bug c++/14563] octave built under Cygwin very slow]


From: Paul Thomas
Subject: [Fwd: [Bug c++/14563] octave built under Cygwin very slow]
Date: Thu, 25 Mar 2004 17:47:21 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

Dear All,

You will see from the attached that the gcc maintainers propose two lines of attack:

(i) To try to build octave with -fno-exceptions. Ben Diedrich tried this but the build did not get past quit.cc.

(ii) To build and compare octave-before-exceptions with the two different gcc's. Does anybody know what version number we should be looking at?

Paul T
--- Begin Message --- Subject: [Bug c++/14563] octave built under Cygwin very slow Date: 25 Mar 2004 14:37:03 -0000
------- Additional Comments From bangerth at dealii dot org  2004-03-25 14:36 
-------
SJLJ stands for "setjmp/longjmp". I'm not an expert in this field 
(as I know virtually nothing about the gcc interiors anyway, I'm 
just the bug database dude), but here's the idea: when you call 
a function that may or may not throw an exception, and the calling 
function needs to run destructors of local objects in case an exception 
is thrown, you need to put down the address of the cleanup code somewhere. 
One way to do this is to set this address via setjmp, and throwing an 
exception then transfers control to this place via longjmp. This is expensive 
since you have to call setjmp every time a cleanup is necessary. 
 
The other possibility is to use lookup tables that the compiler generates 
statically, so this is cheap at run-time, but incurs some code overhead. If 
you generate an exception, you have to somehow look up where to transfer 
execution. Don't ask me how exactly this works, but it is to my best 
knowledge how dwarf2 exception unwinding works. Corrections on this topic 
my more knowledgable people are certainly welcome. 
 
Now back to the question how we can figure out what the problem is: if 
using -fno-exceptions doesn't work, is there a possibility you repeat 
your experiments with an octave version prior to the introduction of 
exceptions? 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14563

------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]