StackSafetyAnalysis: Don't use anonymous values in test
This commit is contained in:
parent
3d47afdf5a
commit
81c163e3e1
|
@ -11,24 +11,24 @@ entry:
|
|||
|
||||
define dso_local void @Write4(i8* %p) #0 {
|
||||
entry:
|
||||
%0 = bitcast i8* %p to i32*
|
||||
store i32 0, i32* %0, align 1
|
||||
%cast = bitcast i8* %p to i32*
|
||||
store i32 0, i32* %cast, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
define dso_local void @Write4_2(i8* %p, i8* %q) #0 {
|
||||
entry:
|
||||
%0 = bitcast i8* %p to i32*
|
||||
store i32 0, i32* %0, align 1
|
||||
%1 = bitcast i8* %q to i32*
|
||||
store i32 0, i32* %1, align 1
|
||||
%cast0 = bitcast i8* %p to i32*
|
||||
store i32 0, i32* %cast0, align 1
|
||||
%cast1 = bitcast i8* %q to i32*
|
||||
store i32 0, i32* %cast1, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
define dso_local void @Write8(i8* %p) #0 {
|
||||
entry:
|
||||
%0 = bitcast i8* %p to i64*
|
||||
store i64 0, i64* %0, align 1
|
||||
%cast0 = bitcast i8* %p to i64*
|
||||
store i64 0, i64* %cast0, align 1
|
||||
ret void
|
||||
}
|
||||
|
||||
|
@ -89,9 +89,9 @@ entry:
|
|||
br i1 %cmp, label %return, label %if.end
|
||||
|
||||
if.end:
|
||||
%0 = load i32, i32* %p, align 4
|
||||
%1 = load i32, i32* %acc, align 4
|
||||
%add = add nsw i32 %1, %0
|
||||
%load0 = load i32, i32* %p, align 4
|
||||
%load1 = load i32, i32* %acc, align 4
|
||||
%add = add nsw i32 %load1, %load0
|
||||
store i32 %add, i32* %acc, align 4
|
||||
%add.ptr = getelementptr inbounds i32, i32* %p, i64 1
|
||||
%sub = add nsw i32 %size, -1
|
||||
|
|
|
@ -565,7 +565,7 @@ entry:
|
|||
; CHECK-NEXT: p[]: [0,4){{$}}
|
||||
; CHECK-NEXT: allocas uses:
|
||||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: store i32 0, i32* %0, align 1
|
||||
; GLOBAL-NEXT: store i32 0, i32* %cast, align 1
|
||||
; CHECK-EMPTY:
|
||||
|
||||
; CHECK-LABEL: @Write4_2{{$}}
|
||||
|
@ -574,8 +574,8 @@ entry:
|
|||
; CHECK-NEXT: q[]: [0,4){{$}}
|
||||
; CHECK-NEXT: allocas uses:
|
||||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: store i32 0, i32* %0, align 1
|
||||
; GLOBAL-NEXT: store i32 0, i32* %1, align 1
|
||||
; GLOBAL-NEXT: store i32 0, i32* %cast0, align 1
|
||||
; GLOBAL-NEXT: store i32 0, i32* %cast1, align 1
|
||||
; CHECK-EMPTY:
|
||||
|
||||
; CHECK-LABEL: @Write8{{$}}
|
||||
|
@ -583,7 +583,7 @@ entry:
|
|||
; CHECK-NEXT: p[]: [0,8){{$}}
|
||||
; CHECK-NEXT: allocas uses:
|
||||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: store i64 0, i64* %0, align 1
|
||||
; GLOBAL-NEXT: store i64 0, i64* %cast0, align 1
|
||||
; CHECK-EMPTY:
|
||||
|
||||
; CHECK-LABEL: @WriteAndReturn8{{$}}
|
||||
|
@ -648,8 +648,8 @@ entry:
|
|||
; CHECK-NEXT: acc[]: [0,4), @RecursiveNoOffset(arg2, [0,1)){{$}}
|
||||
; CHECK-NEXT: allocas uses:
|
||||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: %0 = load i32, i32* %p, align 4
|
||||
; GLOBAL-NEXT: %1 = load i32, i32* %acc, align 4
|
||||
; GLOBAL-NEXT: %load0 = load i32, i32* %p, align 4
|
||||
; GLOBAL-NEXT: %load1 = load i32, i32* %acc, align 4
|
||||
; GLOBAL-NEXT: store i32 %add, i32* %acc, align 4
|
||||
; CHECK-EMPTY:
|
||||
|
||||
|
|
|
@ -164,14 +164,14 @@ entry:
|
|||
%z = alloca i64, align 8
|
||||
%z1 = alloca i64, align 8
|
||||
%z2 = alloca i64, align 8
|
||||
%0 = bitcast i64* %x1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
%x1.cast = bitcast i64* %x1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x1.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x1.cast)
|
||||
; CHECK-NEXT: Alive: <x1>
|
||||
|
||||
%1 = bitcast i64* %x2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
%x2.cast = bitcast i64* %x2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x2.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x2.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
|
||||
call void @capture64(i64* nonnull %x1)
|
||||
|
@ -183,9 +183,9 @@ entry:
|
|||
if.then: ; preds = %entry
|
||||
; CHECK: if.then:
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
%2 = bitcast i64* %y to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
|
||||
%y.cast = bitcast i64* %y to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
|
||||
call void @capture64(i64* nonnull %y)
|
||||
|
@ -194,14 +194,14 @@ if.then: ; preds = %entry
|
|||
if.then3: ; preds = %if.then
|
||||
; CHECK: if.then3:
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
%3 = bitcast i64* %y1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
|
||||
%y1.cast = bitcast i64* %y1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y1.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y1.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 y y1>
|
||||
|
||||
call void @capture64(i64* nonnull %y1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y1.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y1.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
|
||||
br label %if.end
|
||||
|
@ -209,14 +209,14 @@ if.then3: ; preds = %if.then
|
|||
if.else: ; preds = %if.then
|
||||
; CHECK: if.else:
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
%4 = bitcast i64* %y2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %4)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %4)
|
||||
%y2.cast = bitcast i64* %y2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y2.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y2.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 y y2>
|
||||
|
||||
call void @capture64(i64* nonnull %y2)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %4)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %4)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y2.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y2.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
|
||||
br label %if.end
|
||||
|
@ -224,8 +224,8 @@ if.else: ; preds = %if.then
|
|||
if.end: ; preds = %if.else, %if.then3
|
||||
; CHECK: if.end:
|
||||
; CHECK-NEXT: Alive: <x1 x2 y>
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
|
||||
br label %if.end9
|
||||
|
@ -234,12 +234,12 @@ if.else4: ; preds = %entry
|
|||
; CHECK: if.else4:
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
|
||||
%5 = bitcast i64* %z to i8*
|
||||
; CHECK: %5 = bitcast i64* %z to i8*
|
||||
%z.cast = bitcast i64* %z to i8*
|
||||
; CHECK: %z.cast = bitcast i64* %z to i8*
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %5)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %5)
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
|
||||
call void @capture64(i64* nonnull %z)
|
||||
|
@ -248,14 +248,14 @@ if.else4: ; preds = %entry
|
|||
if.then6: ; preds = %if.else4
|
||||
; CHECK: if.then6:
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
%6 = bitcast i64* %z1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %6)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %6)
|
||||
%z1.cast = bitcast i64* %z1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z1.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z1.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 z z1>
|
||||
|
||||
call void @capture64(i64* nonnull %z1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %6)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %6)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z1.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z1.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
|
||||
br label %if.end8
|
||||
|
@ -263,14 +263,14 @@ if.then6: ; preds = %if.else4
|
|||
if.else7: ; preds = %if.else4
|
||||
; CHECK: if.else7:
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
%7 = bitcast i64* %z2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %7)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %7)
|
||||
%z2.cast = bitcast i64* %z2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z2.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z2.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 z z2>
|
||||
|
||||
call void @capture64(i64* nonnull %z2)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %7)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %7)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z2.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z2.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
|
||||
br label %if.end8
|
||||
|
@ -278,8 +278,8 @@ if.else7: ; preds = %if.else4
|
|||
if.end8: ; preds = %if.else7, %if.then6
|
||||
; CHECK: if.end8:
|
||||
; CHECK-NEXT: Alive: <x1 x2 z>
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z.cast)
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
|
||||
br label %if.end9
|
||||
|
@ -287,12 +287,12 @@ if.end8: ; preds = %if.else7, %if.then6
|
|||
if.end9: ; preds = %if.end8, %if.end
|
||||
; CHECK: if.end9:
|
||||
; CHECK-NEXT: Alive: <x1 x2>
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x2.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x2.cast)
|
||||
; CHECK-NEXT: Alive: <x1>
|
||||
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x1.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x1.cast)
|
||||
; CHECK-NEXT: Alive: <>
|
||||
|
||||
ret void
|
||||
|
@ -495,14 +495,14 @@ entry:
|
|||
%B.i2 = alloca [100 x i32], align 4
|
||||
%A.i = alloca [100 x i32], align 4
|
||||
%B.i = alloca [100 x i32], align 4
|
||||
%0 = bitcast [100 x i32]* %A.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
%A.i.cast = bitcast [100 x i32]* %A.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i>
|
||||
|
||||
%1 = bitcast [100 x i32]* %B.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
%B.i.cast = bitcast [100 x i32]* %B.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i B.i>
|
||||
|
||||
call void @capture100x32([100 x i32]* %A.i)
|
||||
|
@ -510,32 +510,32 @@ entry:
|
|||
; CHECK-NEXT: Alive: <A.i B.i>
|
||||
|
||||
call void @capture100x32([100 x i32]* %B.i)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK-NEXT: Alive: <B.i>
|
||||
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK-NEXT: Alive: <>
|
||||
|
||||
%2 = bitcast [100 x i32]* %A.i1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)
|
||||
%A.i1.cast = bitcast [100 x i32]* %A.i1 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i1.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i1.cast)
|
||||
; CHECK-NEXT: Alive: <A.i1>
|
||||
|
||||
%3 = bitcast [100 x i32]* %B.i2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)
|
||||
%B.i2.cast = bitcast [100 x i32]* %B.i2 to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i2.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i2.cast)
|
||||
; CHECK-NEXT: Alive: <A.i1 B.i2>
|
||||
|
||||
call void @capture100x32([100 x i32]* %A.i1)
|
||||
call void @capture100x32([100 x i32]* %B.i2)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i1.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i1.cast)
|
||||
; CHECK-NEXT: Alive: <B.i2>
|
||||
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i2.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i2.cast)
|
||||
; CHECK-NEXT: Alive: <>
|
||||
|
||||
ret void
|
||||
|
@ -578,24 +578,24 @@ entry:
|
|||
%B.i2 = alloca [100 x i32], align 4
|
||||
%A.i = alloca [100 x i32], align 4
|
||||
%B.i = alloca [100 x i32], align 4
|
||||
%0 = bitcast [100 x i32]* %A.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)
|
||||
%A.i.cast = bitcast [100 x i32]* %A.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i A.i1 B.i2>
|
||||
|
||||
%1 = bitcast [100 x i32]* %B.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)
|
||||
%B.i.cast = bitcast [100 x i32]* %B.i to i8*
|
||||
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i A.i1 B.i B.i2>
|
||||
|
||||
call void @capture100x32([100 x i32]* %A.i)
|
||||
call void @capture100x32([100 x i32]* %B.i)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %A.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i1 B.i B.i2>
|
||||
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 -1, i8* %B.i.cast)
|
||||
; CHECK-NEXT: Alive: <A.i1 B.i2>
|
||||
|
||||
br label %block2
|
||||
|
@ -714,26 +714,26 @@ entry:
|
|||
if.then: ; preds = %entry
|
||||
; CHECK: if.then:
|
||||
; CHECK-NEXT: Alive: <>
|
||||
%0 = getelementptr inbounds %struct.char_array, %struct.char_array* %a, i64 0, i32 0, i64 0
|
||||
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %0)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %0)
|
||||
%gep0 = getelementptr inbounds %struct.char_array, %struct.char_array* %a, i64 0, i32 0, i64 0
|
||||
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep0)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep0)
|
||||
; CHECK-NEXT: Alive: <a>
|
||||
tail call void @capture8(i8* %0)
|
||||
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %0)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %0)
|
||||
tail call void @capture8(i8* %gep0)
|
||||
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep0)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep0)
|
||||
; CHECK-NEXT: Alive: <>
|
||||
br label %if.end
|
||||
|
||||
if.else: ; preds = %entry
|
||||
; CHECK: if.else:
|
||||
; CHECK-NEXT: Alive: <>
|
||||
%1 = getelementptr inbounds %struct.char_array, %struct.char_array* %b, i64 0, i32 0, i64 0
|
||||
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %1)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %1)
|
||||
%gep1 = getelementptr inbounds %struct.char_array, %struct.char_array* %b, i64 0, i32 0, i64 0
|
||||
call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep1)
|
||||
; CHECK: call void @llvm.lifetime.start.p0i8(i64 500, i8* nonnull %gep1)
|
||||
; CHECK-NEXT: Alive: <b>
|
||||
tail call void @capture8(i8* %1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %1)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %1)
|
||||
tail call void @capture8(i8* %gep1)
|
||||
call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep1)
|
||||
; CHECK: call void @llvm.lifetime.end.p0i8(i64 500, i8* nonnull %gep1)
|
||||
; CHECK-NEXT: Alive: <>
|
||||
br label %if.end
|
||||
|
||||
|
|
|
@ -495,7 +495,7 @@ define signext i8 @SimpleLoop() {
|
|||
; CHECK-NEXT: allocas uses:
|
||||
; CHECK-NEXT: x[10]: [0,10){{$}}
|
||||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: %1 = load volatile i8, i8* %p.09, align 1
|
||||
; GLOBAL-NEXT: %load = load volatile i8, i8* %p.09, align 1
|
||||
; CHECK-EMPTY:
|
||||
entry:
|
||||
%x = alloca [10 x i8], align 1
|
||||
|
@ -507,8 +507,8 @@ for.body:
|
|||
%sum.010 = phi i8 [ 0, %entry ], [ %add, %for.body ]
|
||||
%p.09 = phi i8* [ %0, %entry ], [ %incdec.ptr, %for.body ]
|
||||
%incdec.ptr = getelementptr inbounds i8, i8* %p.09, i64 1
|
||||
%1 = load volatile i8, i8* %p.09, align 1
|
||||
%add = add i8 %1, %sum.010
|
||||
%load = load volatile i8, i8* %p.09, align 1
|
||||
%add = add i8 %load, %sum.010
|
||||
%exitcond = icmp eq i8* %incdec.ptr, %lftr.limit
|
||||
br i1 %exitcond, label %for.cond.cleanup, label %for.body
|
||||
|
||||
|
@ -535,8 +535,8 @@ for.body:
|
|||
%sum.010 = phi i8 [ 0, %entry ], [ %add, %for.body ]
|
||||
%p.09 = phi i8* [ %0, %entry ], [ %incdec.ptr, %for.body ]
|
||||
%incdec.ptr = getelementptr inbounds i8, i8* %p.09, i64 1
|
||||
%1 = load volatile i8, i8* %p.09, align 1
|
||||
%add = add i8 %1, %sum.010
|
||||
%load = load volatile i8, i8* %p.09, align 1
|
||||
%add = add i8 %load, %sum.010
|
||||
%exitcond = icmp eq i8* %incdec.ptr, %lftr.limit
|
||||
br i1 %exitcond, label %for.cond.cleanup, label %for.body
|
||||
|
||||
|
@ -596,7 +596,7 @@ define void @ZeroSize(%zerosize_type *%p) {
|
|||
; GLOBAL-NEXT: safe accesses:
|
||||
; GLOBAL-NEXT: store %zerosize_type undef, %zerosize_type* %x, align 4
|
||||
; GLOBAL-NEXT: store %zerosize_type undef, %zerosize_type* undef, align 4
|
||||
; GLOBAL-NEXT: load %zerosize_type, %zerosize_type* %p, align
|
||||
; GLOBAL-NEXT: load %zerosize_type, %zerosize_type* %p, align
|
||||
; CHECK-EMPTY:
|
||||
entry:
|
||||
%x = alloca %zerosize_type, align 4
|
||||
|
|
Loading…
Reference in New Issue