[LLVMdev] unwinds to in the CFG

Duncan Sands
Fri, 28 Mar 2008 09:10:04 -0000

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.

Ciao,

Duncan.