[LLVMdev] Is LLVM expressive enough to represent asynchronous exceptions?

Chris Lattner clattner at apple.com
Mon Jun 13 14:52:15 PDT 2011


On Jun 13, 2011, at 2:23 PM, Andrew Trick wrote:

>> There is really no alternative to putting EH edges on basic blocks if you're going to support preemptive asynchronous exceptions — some random multiply that gets hoisted out of a loop has to change exception handlers just in case that's where the PC lands during a signal.  There isn't much point in complaining that doing so muddies the CFG, which is really just an inherent fact of handling asynchronous exceptions. That is not true for synchronous exceptions;  you don't have to abandon the "internally throwing instructions are terminators" design at all, you just have to allow more things to be terminators.
>> 
>> John.
> 
> No. Duncan suggested that he could hitch a ride with us through France. The problem is, we're not driving to Spain at all and there doesn't appear to be any place to transfer.
> 
> The point is, you're not going to be able to leverage most of a CFG-based optimizing compiler if don't use the CFG to express control flow.

While a european vacation sounds nice, I don't think that support for asynch exceptions is desirable in LLVM.  Synchronous exceptions like divide by zero or null pointer derefs are another thing entirely though.

-Chris



More information about the llvm-dev mailing list