Home | History | Annotate | Download | only in LCSSA
      1 ; RUN: opt < %s -lcssa -S | FileCheck %s
      2 ; RUN: opt < %s -passes=lcssa -S | FileCheck %s
      3 ; RUN: opt < %s -debugify -lcssa -S | FileCheck -check-prefix=DEBUGIFY %s
      4 
      5 define void @lcssa(i1 %S2) {
      6 ; CHECK-LABEL: @lcssa
      7 entry:
      8 	br label %loop.interior
      9 loop.interior:		; preds = %post.if, %entry
     10 	br i1 %S2, label %if.true, label %if.false
     11 if.true:		; preds = %loop.interior
     12 	%X1 = add i32 0, 0		; <i32> [#uses=1]
     13 	br label %post.if
     14 if.false:		; preds = %loop.interior
     15 	%X2 = add i32 0, 1		; <i32> [#uses=1]
     16 	br label %post.if
     17 post.if:		; preds = %if.false, %if.true
     18 	%X3 = phi i32 [ %X1, %if.true ], [ %X2, %if.false ]		; <i32> [#uses=1]
     19 	br i1 %S2, label %loop.exit, label %loop.interior
     20 loop.exit:		; preds = %post.if
     21 ; CHECK: %X3.lcssa = phi i32
     22 ; DEBUGIFY: %X3.lcssa = phi i32 {{.*}}, !dbg ![[DbgLoc:[0-9]+]]
     23 ; DEBUGIFY-NEXT: call void @llvm.dbg.value(metadata i32 %X3.lcssa
     24 ; CHECK: %X4 = add i32 3, %X3.lcssa
     25 	%X4 = add i32 3, %X3		; <i32> [#uses=0]
     26 	ret void
     27 }
     28 
     29 ; Make sure the lcssa phi has %X3's debug location
     30 ; DEBUGIFY: ![[DbgLoc]] = !DILocation(line: 7
     31