search for: _unwind_raiseexception

Displaying 20 results from an estimated 75 matches for "_unwind_raiseexception".

2008 Dec 23
3
[LLVMdev] Unwinds gone missing
Can you point out to me where in the VMKit code I should be looking? I spent some additional time reading the docs, and I have some specific questions: 1) I'm trying to figure out the relationship between the __cxa_throw function, and the _Unwind_RaiseException function mentioned in the ABI doc. My guess is that _Unwind_RaiseException is the language-neutral implementation of stack unwinding, and __cxa_throw is the C++ exception semantics that are implemented on top of it. If that is the case, should I be calling _Unwind_RaiseException since my exceptions...
2010 Jan 22
4
[LLVMdev] Exception handling question
Hi Garrison, > %7 = invoke i8* (...)* bitcast (i32 (%struct._Unwind_Exception*)* > @_Unwind_RaiseException to i8* (...)*)(i64* %6) > to label %8 unwind label %.finally_pad ; <i8*> [#uses=0] > > I am not sure this is going to work, at least from the way I've played > with the system. > In my examples the _Unwind_RaiseException(...) is called from a frame > (func...
2008 Dec 29
0
[LLVMdev] Unwinds gone missing
Hi Talin, > 1) I'm trying to figure out the relationship between the __cxa_throw > function, and the _Unwind_RaiseException function mentioned in the ABI doc. > My guess is that _Unwind_RaiseException is the language-neutral > implementation of stack unwinding, and __cxa_throw is the C++ exception > semantics that are implemented on top of it. If that is the case, should I > be calling _Unwind_RaiseException...
2010 Jan 22
0
[LLVMdev] Exception handling question
Hey Duncan, Yup, you are correct. Just tested to make sure. Invoking _Unwind_RaiseException(...) directly still sets up personality function (and calls it during exception search/cleanup), in corresponding frame headers for frame containing invoke. Well ... ok, at least in a JIT execution environment. :-) I thought maybe __gcc_personality_v0(...) was being called instead. However, I al...
2010 Jan 22
3
[LLVMdev] Exception handling question
...James > Sorry. I think I was being very stupid. It looks like I was reading the tables wrong and the eh tables are probably actually correct for all my tests. I didn't realise the personality function went in a separate shared entry. I'm still not sure why it's not getting called by _Unwind_RaiseException but I don't think it's due to any problem with LLVM eh table output -- James > >> Ciao, >> >> Duncan. >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100...
2010 Jan 22
0
[LLVMdev] Exception handling question
Hi James, Looking at: %7 = invoke i8* (...)* bitcast (i32 (%struct._Unwind_Exception*)* @_Unwind_RaiseException to i8* (...)*)(i64* %6) to label %8 unwind label %.finally_pad ; <i8*> [#uses=0] I am not sure this is going to work, at least from the way I've played with the system. In my examples the _Unwind_RaiseException(...) is called from a frame (function) called via the invoke inst...
2010 Jan 22
6
[LLVMdev] Exception handling question
...in the personality function, associated with the setup caused by llvm.eh.selector, but returned _URC_CONTINUE_UNWIND (8), it should still be called. Your results are acting like either dwarf exception header info is not emitted (llvm::DwarfExceptionHandling = true; not executed could affect this), _Unwind_RaiseException(...) is not being called, or the default or another personality function (_gcc_personality_v0(...)) is called instead by the unwind infrastructure. Although you implied you dumped the exception headers and found your personality function, I can if you wish instead given you breaks for gbd so yo...
2010 Jan 22
1
[LLVMdev] Exception handling question
2010/1/22 Garrison Venn <gvenn.cfe.dev at gmail.com> > Hi James, > > Looking at: > > %7 = invoke i8* (...)* bitcast (i32 (%struct._Unwind_Exception*)* > @_Unwind_RaiseException to i8* (...)*)(i64* %6) > to label %8 unwind label %.finally_pad ; <i8*> [#uses=0] > > I am not sure this is going to work, at least from the way I've played with > the system. > In my examples the _Unwind_RaiseException(...) is called from a frame > (function...
2008 Dec 19
0
[LLVMdev] Unwinds gone missing
Hi Talin, Talin wrote: > After much delay, I have finally reached the point in my work where I > need to implement some kind of exception handling. I understand that > "unwind" is currently unimplemented and will remain so for the > forseeable future. > > In the mean time, are there any examples available for implementing Java > or Python-style exceptions using
2010 Jan 22
0
[LLVMdev] Exception handling question
2010/1/22 Duncan Sands <baldrick at free.fr> > Hi Garrison, > > > %7 = invoke i8* (...)* bitcast (i32 (%struct._Unwind_Exception*)* >> @_Unwind_RaiseException to i8* (...)*)(i64* %6) >> to label %8 unwind label %.finally_pad ; <i8*> [#uses=0] >> >> I am not sure this is going to work, at least from the way I've played >> with the system. In my examples the _Unwind_RaiseException(...) is called >> from a f...
2010 Jan 21
4
[LLVMdev] Exception handling question
...working from the LLVM exception handling documentation (including http://llvm.org/docs/ExceptionHandling.html and http://wiki.llvm.org/HowTo:_Build_JIT_based_Exception_mechanism) and looking at g++-llvm's output. I've been trying to get a minimal test function to work, which simply invokes _Unwind_RaiseException with a single clean-up landing pad. However. when I run it my personality function is not getting called - _Unwind_RaiseException simply returns apparently doing nothing. Looking at the x86-64 assembly output from llc, I can see this is happening because the personality function is not getting into...
2010 Jan 22
0
[LLVMdev] Exception handling question
...associated with the > setup caused by > llvm.eh.selector, but returned _URC_CONTINUE_UNWIND (8), it should still be > called. > Your results are acting like either dwarf exception header info is not > emitted (llvm::DwarfExceptionHandling = true; > not executed could affect this), _Unwind_RaiseException(...) is not being > called, or the default or another personality > function (_gcc_personality_v0(...)) is called instead by the > unwind infrastructure. Although you implied you > dumped the exception headers and found your personality function, I can if > you wish instead given yo...
2009 May 18
4
[LLVMdev] Getting exceptions to work?
...ret i32 -1 } define internal fastcc void @throwSomething() noreturn { entry: %throwable = malloc %Throwable call fastcc void @Throwable.construct(%Throwable* %throwable) %unwindInfo = getelementptr %Throwable* %throwable, i32 0, i32 1 %throw = call i32 @_Unwind_RaiseException(%UnwindInfo* %unwindInfo) unreachable } define internal fastcc void @Throwable.construct(%Throwable* %self) nounwind { entry: %exceptionClass = getelementptr %Throwable* %self, i32 0, i32 1, i32 0 store i64 0, i64* %exceptionClass %exceptionClean...
2010 Jan 22
0
[LLVMdev] Exception handling question
...associated with the > setup caused by > llvm.eh.selector, but returned _URC_CONTINUE_UNWIND (8), it should still be > called. > Your results are acting like either dwarf exception header info is not > emitted (llvm::DwarfExceptionHandling = true; > not executed could affect this), _Unwind_RaiseException(...) is not being > called, or the default or another personality > function (_gcc_personality_v0(...)) is called instead by the > unwind infrastructure. Although you implied you > dumped the exception headers and found your personality function, I can if > you wish instead given yo...
2009 May 18
0
[LLVMdev] Getting exceptions to work?
Hi Talin, You're not using the llvm intrinsics for exception handling, so your code won't work. Using _Unwind_RaiseException should be OK, but your main function must at least use llvm.eh.exception, llvm.eh.selector.i32/64 and probably __cxa_begin_catch and __cxa_end_catch. Nicolas Talin wrote: > I've been struggling for several days, trying to get native exceptions > to work in my code. I managed to boil...
2008 Dec 19
4
[LLVMdev] Unwinds gone missing
After much delay, I have finally reached the point in my work where I need to implement some kind of exception handling. I understand that "unwind" is currently unimplemented and will remain so for the forseeable future. In the mean time, are there any examples available for implementing Java or Python-style exceptions using __cxa_throw or something similar? I've read and
2011 Sep 27
1
[LLVMdev] How to code catch-all in the new exception handling scheme?
...t bother running Ada cleanups if > that is all there is to do. All personality functions that I am familiar with > treat cleanups in the same way. How does one incorporate their own LLVM backend unwinding mechanism? I'm assuming that you have an Ada backend. Does your backend not call _Unwind_RaiseException for example? [snip] ... > Ciao, Duncan. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev Thanks in advance Garrison
2011 Sep 28
0
[LLVMdev] How to code catch-all in the new exception handling scheme?
..."cleanup" phase. Not so! If only cleanups are found in phase 1 then the unwinder hits the top of the stack without finding a handler and returns _URC_END_OF_STACK without installing any handlers; note that a cleanup is not considered to be a handler. If the C++ unwinder sees the call to _Unwind_RaiseException return like this then it terminates the program. Cleanups will therefore not have been run. The Ada unwinder behaves differently. If it the call to _Unwind_RaiseException returns then it calls _Unwind_ForcedUnwind which runs all the cleanups. The program is then terminated. In the more common s...
2011 Sep 25
0
[LLVMdev] How to code catch-all in the new exception handling scheme?
...ption will be unwound and the landing pad branched to in the expected way. The C++ catch-all is represented by a catch clause with a null pointer argument in LLVM, but this is C++ specific. Note that the cleanup behaviour I mentioned is somewhat built into the GCC unwinding library: when you call _Unwind_RaiseException, if the search phase discovers that nothing matches the exception except for cleanups all the way up the stack, then the call to _Unwind_RaiseException returns (otherwise control branches to the landing pad that matched the exception). If you want cleanups to be run anyway, then you need to call _...
2009 May 21
0
[LLVMdev] Getting exceptions to work?
Hi Talin, if you change @throwSomething so that it prints a message if the _Unwind_RaiseException call returns, then you will see that it does in fact return. define internal fastcc void @throwSomething() { entry: %throwable = malloc %Throwable call fastcc void @Throwable.construct(%Throwable* %throwable) %unwindInfo = getelementptr %Throwable* %throwable, i32 0, i32...