[LLVMdev] unwinds to in the CFG

Duncan Sands baldrick at free.fr
Fri Mar 28 02:10:04 PDT 2008


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.



More information about the llvm-dev mailing list