unwinds to in the CFG

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

unwinds to in the CFG

Gabor Greif
Hi Nick,

> Just as a quick recap the problem I encountered is how to deal 
> instructions in a block being used as operands in the unwind dest. Such 
> as this:
> bb1: unwinds to %cleanup
>    call void @foo() ; might throw, might not
>    %x = add i32 %y, %z
>    call void @foo() ; might throw, might not
>    ret void
> cleanup:
>    call void @use(i32 %x)
> The problem is that %x might not have been executed before we enter 
> %cleanup.

how about just declaring this illegal?  i.e. require the first call
to be in a different basic block to the second, making it possible
to use a phi node in %cleanup.



I pretty much support your opinion Duncan. Unwind
BBs should not mess with values defined by their worker
BB. We should not introduce undefined behaviour intentionally.


LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu