[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