Displaying 14 results from an estimated 14 matches for "_unwind_".
2008 Dec 23
2
[LLVMdev] More questions on exception handling
...the reference to the exception structure.", but later down it
says "To express this in LLVM code the landing pad will call
llvm.eh.selector. The arguments are the length of the filter expression (the
number of type infos plus one) ...". This seems contradictory.
If I am calling the _Unwind_ functions directly, do I need to use any of the
llvm.eh.* functions? Can I just use invoke and write my own landing pad?
How do you handle throwing an exception with a catch handler in the same
function? Invoke won't work since it assumes that the exception is being
thrown in a subroutine.
--...
2011 Aug 04
4
[LLVMdev] RFC: Exception Handling Rewrite
...o the
corresponding
catch-clause
the lifetimes of these hard registers ostensibly starts at the
LandingpadInst,
but for purposes of PHI lowering and Register Allocation they _must_
actually
start at the beginning of the BasicBlock -- since that is where
control flow will
return to from the _Unwind_RaiseException / __gcc_personality_v0 calls,
and it is the _Unwind_ and _personality_ functions that physically
set those
hard registers, not the "LandingpadInst".
Somehow PHI lowering and register allocation need to be prohibited from
using those hard registers for spill code at the be...
2009 Sep 18
0
[LLVMdev] OT: intel darwin losing primary target status
...unwinding. I guess you are saying we need to move
> the unwinders symbols out into a libgcc_ext and use that in the
> linkage on 10.6 or later so the FSF unwinder is used instead of
> the system one?
> Jack
The important thing is that only one unwinder is used. The
_Unwind_Context data structure is different between the darwin and FSF
implementations, so you can't pass it between two different
implementations. Since darwin uses two-level namespace and swapping
in a new libgcc_s.dylib at runtime is not going to effect the various
OS dylibs that are lookin...
2009 Sep 18
4
[LLVMdev] OT: intel darwin losing primary target status
On Fri, Sep 18, 2009 at 10:28:15AM -0700, Nick Kledzik wrote:
> So, when these test cases are run, is the binary linked against /usr/
> lib/libgcc_s.10.5.dylib? or against some just built libgcc_s.10.5.dylib?
> or against some just build libgcc_s.dylib? If either of the latter, then
> if you changed the FSF build of libgcc_s for darwin to have the right
> magic symbols, then
2011 Aug 04
0
[LLVMdev] RFC: Exception Handling Rewrite
...t; catch-clause
>
> the lifetimes of these hard registers ostensibly starts at the LandingpadInst,
> but for purposes of PHI lowering and Register Allocation they _must_ actually
> start at the beginning of the BasicBlock -- since that is where control flow will
> return to from the _Unwind_RaiseException / __gcc_personality_v0 calls,
> and it is the _Unwind_ and _personality_ functions that physically set those
> hard registers, not the "LandingpadInst".
>
> Somehow PHI lowering and register allocation need to be prohibited from
> using those hard registers f...
2013 Mar 29
1
[LLVMdev] How to initiate/throw an exception (resume just continues)
On 29/03/13 18:34, David Chisnall wrote:
> handlers, and so on), and a generic structure for the unwind library.
> It then passes it to _Unwind_RaiseException(), which is the generic
> unwind routine.
Excuse me if this sounds silly, but what "library" does the _Unwind_
series of functions come from? Is this a kind of target ABI instrinsic
library, or must I link with a particular runtime library to get these
functions?
I assu...
2011 Aug 05
3
[LLVMdev] RFC: Exception Handling Rewrite
...etween the "invoke-block" and the "landingpad-block", and
if we do then
isn't there the possibility of the register allocator spilling the
contents of the exception
registers from within the newly created block --- but this block
won't ever get executed
because the _Unwind_ / _personality_ functions will cause control
flow to go directly
to the block with the LandingpadInst ? If you really want to split
a landingpad-edge
won't you have to move the LandingpadInst up into the new block ?
if this is true (and I seem to be making a lot of logic errors
lately...
2011 Aug 04
1
[LLVMdev] RFC: Exception Handling Rewrite
...hese hard registers ostensibly starts at the
>> LandingpadInst,
>> but for purposes of PHI lowering and Register Allocation they
>> _must_ actually
>> start at the beginning of the BasicBlock -- since that is where
>> control flow will
>> return to from the _Unwind_RaiseException / __gcc_personality_v0
>> calls,
>> and it is the _Unwind_ and _personality_ functions that physically
>> set those
>> hard registers, not the "LandingpadInst".
>>
>> Somehow PHI lowering and register allocation need to be prohibited...
2009 Sep 18
2
[LLVMdev] OT: intel darwin losing primary target status
On Fri, Sep 18, 2009 at 11:13:52AM -0700, Nick Kledzik wrote:
>
> The important thing is that only one unwinder is used. The
> _Unwind_Context data structure is different between the darwin and FSF
> implementations, so you can't pass it between two different
> implementations. Since darwin uses two-level namespace and swapping in
> a new libgcc_s.dylib at runtime is not going to effect the various OS
> dyli...
2013 Apr 12
0
[LLVMdev] object file/linking is missing my exception handlers
...IT and GCC linked.
I'm trying to figure out what this is now.
On 11/04/13 06:06, edA-qa mort-ora-y wrote:
> I have some exception handling which works fine using the JIT. Now I am
> producing object files and linking them, but the exception handling
> tables seem to be missing. I call _Unwind_RaiseException and get
> _URC_END_OF_STACK as a result.
>
> I produce my object file using TargetMachine::addPassesToEmitFile and
> then I link my resulting files with:
>
> gcc -o prog input.o -fexceptions
>
> I'm sure I'm just missing some option to generate the D...
2013 Mar 29
0
[LLVMdev] How to initiate/throw an exception (resume just continues)
...row() function is responsible for allocating an exception structure that contains two things, the C++ information (such as the thrown object, its type_info, the current values of the terminate and unexpected handlers, and so on), and a generic structure for the unwind library. It then passes it to _Unwind_RaiseException(), which is the generic unwind routine.
The _Unwind_RaiseException() function walks up the stack, invoking the personality routine once to find a landing pad for a catch. If it fails to find one then it returns an error. If it succeeds, then it invokes them again to run cleanup c...
2013 Mar 29
2
[LLVMdev] How to initiate/throw an exception (resume just continues)
I'm trying to add some basic exception handling to my language now and
I'm uncertain of how I actually start the exception propagation. It
appears that "resume" will continue the exception, but I see no mention
of how the exception actually starts.
If I look at the IR output of a simple C++ program I see that it calls
@__cxa_throw, but that is a library function. Somehow I must
2014 Jan 31
5
[LLVMdev] Sanitizers libs in Compiler-RT
On 31 Jan 2014, at 08:12, Chandler Carruth <chandlerc at google.com> wrote:
> - There is the core runtime library. Historically this was called 'compiler-rt' informally, but perhaps better called 'libclang_rt', which provides the core necessary runtime library facilities to compile C or C++ applications. It's analogous to libgcc but without some of the unwinding code
2013 Apr 11
4
[LLVMdev] object file/linking is missing my exception handlers
I have some exception handling which works fine using the JIT. Now I am
producing object files and linking them, but the exception handling
tables seem to be missing. I call _Unwind_RaiseException and get
_URC_END_OF_STACK as a result.
I produce my object file using TargetMachine::addPassesToEmitFile and
then I link my resulting files with:
gcc -o prog input.o -fexceptions
I'm sure I'm just missing some option to generate the Dwarf tables, but
I can't figure out...