SJLJ EH

Hi,

There's definitely more to it than the current intrinsics, which are
there to support dwarf.

that's to say we need modify the llvm-gcc so the front end can
generate the sjlj-style IR,

SJLJ exceptions rely on runtime library
functions to register and unregister call frames which require
unwinding, so we need to modify LLVM to handle generating those call

my approach : when the user use the option, e.g -enable-sjlj-eh, I
will build the register and unregister, and
other handle sjlj-eh calls, at my target side. yeah, that's a ugly
method, because I didn't touch the llvm-gcc

Most of the landing pad organization should transfer over with only a
bit of tweaking. The type checking and catch selection needs to be
compatible with what's passed from GCC generated code, so there's a
bit of work to do there as well.

because of my above ugly approach! now that's very difficult for me
to generate the right exception table!

Hi,

There's definitely more to it than the current intrinsics, which are
there to support dwarf.

from the exist llvm-ir it seems there are some common info for sjlj-eh
and dwarf-eh!
are there possible use the exist llvm-ir to generate exception table
for sjlj-eh ?

zhangzw

Hello,

from the exist llvm-ir it seems there are some common info for sjlj-eh
and dwarf-eh!
are there possible use the exist llvm-ir to generate exception table
for sjlj-eh ?

No. There should be support from llvm-gcc. sjlj eh and dwarf eh have
different semantics