[LLVMdev] Whither exceptions

Dale Johannesen dalej at apple.com
Thu Dec 20 09:53:08 PST 2007


On Dec 20, 2007, at 9:47 AM, Chris Lattner wrote:

> On Thu, 20 Dec 2007, Duncan Sands wrote:
>> Hi Dale,
>>> If these were visible to end users I would not like exposing sjlj,  
>>> an
>>> implementation detail; however my understanding is that they  
>>> aren't.   On the basis that they're intended for use by llvm  
>>> geeks, I think
>>> either of these is an improvement, except in the second case I think
>>> the default should be target-dependent.  Comments?
>
>> How about having -enable-eh turn on dwarf eh on all targets  
>> (including
>> those that don't support it, in which case intrinsics get lowered to
>> nothing much IIRC), and also have it cause a LowerInvoke pass to be  
>> run
>> on targets that do not support dwarf eh.
>
> This also makes sense to me.  The disadvantage being that you can  
> only access one EH model for each target this way.  With -eh- 
> model={foo} you can pick.
>
>> support dwarf eh).  The testsuite can thus just use -enable-eh.  If  
>> you
>> don't want eh at all then don't pass -enable-eh.  If you only want eh
>> on targets that support dwarf eh then you can pass -enable-eh - 
>> disable-eh-emulation.
>
> Ok, so it sounds like you want a way to "enable the default eh  
> model", and I want the ability to pick for "power users".  How about  
> something like:
>
> <nothing>          -> eh disabled (aka -fno-exceptions in gcc)
> -enable-eh         -> target default
> -enable-eh=default -> target default
> -enable-eh=sjlj
> -enable-eh=dwarf
>
> ?

I'm strongly of the opinion that you shouldn't have to say anything to  
get EH on targets where it works.
-fexceptions is set up like that.




More information about the llvm-dev mailing list