[llvm-commits] Edge dominance in the presence of multiple edges between two BB

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Aug 10 09:10:54 PDT 2012


On Aug 9, 2012, at 9:20 PM, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:

> Working on bug 13307 I found a very interesting corner case:
> 
> define void @f5(i32 %x) {
> bb0:
>  %y1 = invoke i32 @g() to label %bb1 unwind label %bb1
> bb1:
>  %y2 = phi i32 [%y1, %bb0], [%y1, %bb0]
>  %y3 = landingpad i32 personality i32 ()* @g
>          cleanup
>  ret void
> }
> 
> My understanding is that it is invalid, as %y1 is used in the unwind
> edge of the invoke.

It is also invalid because there is a non-unwind edge to a landing pad.

/jakob





More information about the llvm-commits mailing list