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...