diff options
Diffstat (limited to 'test/Transforms/SafeStack/X86')
| -rw-r--r-- | test/Transforms/SafeStack/X86/abi_ssp.ll | 21 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/call.ll | 8 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/coloring-ssp.ll | 12 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/coloring.ll | 16 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/coloring2.ll | 162 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/debug-loc2.ll | 4 | ||||
| -rw-r--r-- | test/Transforms/SafeStack/X86/layout-frag.ll | 16 | 
7 files changed, 123 insertions, 116 deletions
| diff --git a/test/Transforms/SafeStack/X86/abi_ssp.ll b/test/Transforms/SafeStack/X86/abi_ssp.ll index ba4ced5b8820..b489e07a8868 100644 --- a/test/Transforms/SafeStack/X86/abi_ssp.ll +++ b/test/Transforms/SafeStack/X86/abi_ssp.ll @@ -1,18 +1,25 @@ -; RUN: opt -safe-stack -S -mtriple=i686-pc-linux-gnu < %s -o - | FileCheck --check-prefix=TLS --check-prefix=TLS32 %s -; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefix=TLS --check-prefix=TLS64 %s -; RUN: opt -safe-stack -S -mtriple=i686-linux-android < %s -o - | FileCheck --check-prefix=TLS --check-prefix=TLS32 %s -; RUN: opt -safe-stack -S -mtriple=x86_64-linux-android < %s -o - | FileCheck --check-prefix=TLS --check-prefix=TLS64 %s +; RUN: opt -safe-stack -S -mtriple=i686-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s +; RUN: opt -safe-stack -S -mtriple=x86_64-pc-linux-gnu < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s + +; RUN: opt -safe-stack -S -mtriple=i686-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,GLOBAL32 %s +; RUN: opt -safe-stack -S -mtriple=i686-linux-android24 < %s -o - | FileCheck --check-prefixes=COMMON,TLS32 %s + +; RUN: opt -safe-stack -S -mtriple=x86_64-linux-android < %s -o - | FileCheck --check-prefixes=COMMON,TLS64 %s + +; RUN: opt -safe-stack -S -mtriple=x86_64-unknown-fuchsia < %s -o - | FileCheck --check-prefixes=COMMON,FUCHSIA64 %s  define void @foo() safestack sspreq {  entry:  ; TLS32: %[[StackGuard:.*]] = load i8*, i8* addrspace(256)* inttoptr (i32 20 to i8* addrspace(256)*)  ; TLS64: %[[StackGuard:.*]] = load i8*, i8* addrspace(257)* inttoptr (i32 40 to i8* addrspace(257)*) -; TLS:   store i8* %[[StackGuard]], i8** %[[StackGuardSlot:.*]] +; FUCHSIA64: %[[StackGuard:.*]] = load i8*, i8* addrspace(257)* inttoptr (i32 16 to i8* addrspace(257)*) +; GLOBAL32: %[[StackGuard:.*]] = load i8*, i8** @__stack_chk_guard +; COMMON:   store i8* %[[StackGuard]], i8** %[[StackGuardSlot:.*]]    %a = alloca i8, align 1    call void @Capture(i8* %a) -; TLS: %[[A:.*]] = load i8*, i8** %[[StackGuardSlot]] -; TLS: icmp ne i8* %[[StackGuard]], %[[A]] +; COMMON: %[[A:.*]] = load i8*, i8** %[[StackGuardSlot]] +; COMMON: icmp ne i8* %[[StackGuard]], %[[A]]    ret void  } diff --git a/test/Transforms/SafeStack/X86/call.ll b/test/Transforms/SafeStack/X86/call.ll index cbac4ce1bb0d..2d78bb1a6898 100644 --- a/test/Transforms/SafeStack/X86/call.ll +++ b/test/Transforms/SafeStack/X86/call.ll @@ -159,8 +159,8 @@ define void @call_lifetime(i32* %p) {  entry:    %q = alloca [100 x i8], align 16    %0 = bitcast [100 x i8]* %q to i8* -  call void @llvm.lifetime.start(i64 100, i8* %0) -  call void @llvm.lifetime.end(i64 100, i8* %0) +  call void @llvm.lifetime.start.p0i8(i64 100, i8* %0) +  call void @llvm.lifetime.end.p0i8(i64 100, i8* %0)    ret void  } @@ -174,5 +174,5 @@ declare void @readnone0(i8* nocapture readnone, i8* nocapture)  declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind argmemonly +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind argmemonly +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind argmemonly diff --git a/test/Transforms/SafeStack/X86/coloring-ssp.ll b/test/Transforms/SafeStack/X86/coloring-ssp.ll index d71babe200df..3b04fdf13fbc 100644 --- a/test/Transforms/SafeStack/X86/coloring-ssp.ll +++ b/test/Transforms/SafeStack/X86/coloring-ssp.ll @@ -16,19 +16,19 @@ entry:    %x0 = bitcast i64* %x to i8*    %y0 = bitcast i64* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:  getelementptr i8, i8* %[[USP]], i32 -16    call void @capture64(i64* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0) -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:  getelementptr i8, i8* %[[USP]], i32 -16    call void @capture64(i64* %y) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0)    ret void  } -declare void @llvm.lifetime.start(i64, i8* nocapture) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)  declare void @capture64(i64*) diff --git a/test/Transforms/SafeStack/X86/coloring.ll b/test/Transforms/SafeStack/X86/coloring.ll index 3ed9ccb43f39..76bdf37dbf4e 100644 --- a/test/Transforms/SafeStack/X86/coloring.ll +++ b/test/Transforms/SafeStack/X86/coloring.ll @@ -10,35 +10,35 @@ entry:    %x1 = alloca i32, align 4    %x2 = alloca i32, align 4    %0 = bitcast i32* %x to i8* -  call void @llvm.lifetime.start(i64 4, i8* %0) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %0)  ; CHECK:  %[[A1:.*]] = getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:  %[[A2:.*]] = bitcast i8* %[[A1]] to i32*  ; CHECK:  call void @capture(i32* nonnull %[[A2]])    call void @capture(i32* nonnull %x) -  call void @llvm.lifetime.end(i64 4, i8* %0) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %0)    %1 = bitcast i32* %x1 to i8* -  call void @llvm.lifetime.start(i64 4, i8* %1) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %1)  ; CHECK:  %[[B1:.*]] = getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:  %[[B2:.*]] = bitcast i8* %[[B1]] to i32*  ; CHECK:  call void @capture(i32* nonnull %[[B2]])    call void @capture(i32* nonnull %x1) -  call void @llvm.lifetime.end(i64 4, i8* %1) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %1)    %2 = bitcast i32* %x2 to i8* -  call void @llvm.lifetime.start(i64 4, i8* %2) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %2)  ; CHECK:  %[[C1:.*]] = getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:  %[[C2:.*]] = bitcast i8* %[[C1]] to i32*  ; CHECK:  call void @capture(i32* nonnull %[[C2]])    call void @capture(i32* nonnull %x2) -  call void @llvm.lifetime.end(i64 4, i8* %2) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %2)    ret void  } -declare void @llvm.lifetime.start(i64, i8* nocapture) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)  declare void @capture(i32*) diff --git a/test/Transforms/SafeStack/X86/coloring2.ll b/test/Transforms/SafeStack/X86/coloring2.ll index f3ac6d735c9d..2a8f871945ff 100644 --- a/test/Transforms/SafeStack/X86/coloring2.ll +++ b/test/Transforms/SafeStack/X86/coloring2.ll @@ -15,21 +15,21 @@ entry:    %y0 = bitcast i32* %y to i8*    %z0 = bitcast i32* %z to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %z0) -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4    call void @capture32(i32* %y) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8    call void @capture32(i32* %z) -  call void @llvm.lifetime.end(i64 -1, i8* %z0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z0)    ret void  } @@ -44,11 +44,11 @@ entry:    %y = alloca i32, align 4    %x0 = bitcast i32* %x to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8    call void @capture32(i32* %y) @@ -70,21 +70,21 @@ entry:    %y0 = bitcast i32* %y to i8*    %z0 = bitcast i64* %z to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8    call void @capture32(i32* %y) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) -  call void @llvm.lifetime.start(i64 -1, i8* %z0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8    call void @capture64(i64* %z) -  call void @llvm.lifetime.end(i64 -1, i8* %z0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z0)    ret void  } @@ -103,9 +103,9 @@ entry:    %y0 = bitcast i32* %y to i8*    %z0 = bitcast i64* %z to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) -  call void @llvm.lifetime.start(i64 -1, i8* %y0) -  call void @llvm.lifetime.start(i64 -1, i8* %z0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %z0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -16    call void @capture32(i32* %x) @@ -116,9 +116,9 @@ entry:  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8    call void @capture64(i64* %z) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) -  call void @llvm.lifetime.end(i64 -1, i8* %z0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %z0)    ret void  } @@ -156,9 +156,9 @@ entry:    %z1 = alloca i64, align 8    %z2 = alloca i64, align 8    %0 = bitcast i64* %x1 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)    %1 = bitcast i64* %x2 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %1) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %x1) @@ -169,7 +169,7 @@ entry:  if.then:                                          ; preds = %entry    %2 = bitcast i64* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %2) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -24  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %y) @@ -177,29 +177,29 @@ if.then:                                          ; preds = %entry  if.then3:                                         ; preds = %if.then    %3 = bitcast i64* %y1 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %3) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -32  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %y1) -  call void @llvm.lifetime.end(i64 -1, i8* %3) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)    br label %if.end  if.else:                                          ; preds = %if.then    %4 = bitcast i64* %y2 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %4) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %4)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -32  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %y2) -  call void @llvm.lifetime.end(i64 -1, i8* %4) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %4)    br label %if.end  if.end:                                           ; preds = %if.else, %if.then3 -  call void @llvm.lifetime.end(i64 -1, i8* %2) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2)    br label %if.end9  if.else4:                                         ; preds = %entry    %5 = bitcast i64* %z to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %5) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %5)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -24  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %z) @@ -207,29 +207,29 @@ if.else4:                                         ; preds = %entry  if.then6:                                         ; preds = %if.else4    %6 = bitcast i64* %z1 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %6) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %6)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -32  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %z1) -  call void @llvm.lifetime.end(i64 -1, i8* %6) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %6)    br label %if.end8  if.else7:                                         ; preds = %if.else4    %7 = bitcast i64* %z2 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %7) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %7)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -32  ; CHECK:   call void @capture64(    call void @capture64(i64* nonnull %z2) -  call void @llvm.lifetime.end(i64 -1, i8* %7) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %7)    br label %if.end8  if.end8:                                          ; preds = %if.else7, %if.then6 -  call void @llvm.lifetime.end(i64 -1, i8* %5) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %5)    br label %if.end9  if.end9:                                          ; preds = %if.end8, %if.end -  call void @llvm.lifetime.end(i64 -1, i8* %1) -  call void @llvm.lifetime.end(i64 -1, i8* %0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0)    ret void  } @@ -243,21 +243,21 @@ entry:    %y = alloca i32, align 4    %x0 = bitcast i32* %x to i8*    %y0 = bitcast i32* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %x)    br i1 %d, label %bb2, label %bb3  bb2: -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8  ; CHECK:   call void @capture32(    call void @capture32(i32* %y) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)    ret void  bb3: -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)    ret void  } @@ -270,18 +270,18 @@ entry:    %y = alloca i32, align 4    %x0 = bitcast i32* %x to i8*    %y0 = bitcast i32* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)    br i1 %d, label %bb2, label %bb3  bb2: -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %y) -  call void @llvm.lifetime.end(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %y0)    ret void  bb3:    ret void @@ -297,14 +297,14 @@ entry:    %y = alloca i32, align 4    %x0 = bitcast i32* %x to i8*    %y0 = bitcast i32* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)    br i1 %d, label %bb2, label %bb3  bb2: -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %y) @@ -323,14 +323,14 @@ entry:    %y = alloca i32, align 4    %x0 = bitcast i32* %x to i8*    %y0 = bitcast i32* %y to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %x)    br i1 %d, label %bb2, label %bb3  bb2: -  call void @llvm.lifetime.end(i64 -1, i8* %x0) -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %y) @@ -352,10 +352,10 @@ entry:  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4  ; CHECK:   call void @capture32(    call void @capture32(i32* %x) -  call void @llvm.lifetime.end(i64 -1, i8* %x0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %x0)    br i1 %d, label %bb2, label %bb3  bb2: -  call void @llvm.lifetime.start(i64 -1, i8* %y0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %y0)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8  ; CHECK:   call void @capture32(    call void @capture32(i32* %y) @@ -374,29 +374,29 @@ entry:    %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(i64 -1, i8* %0) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0)    %1 = bitcast [100 x i32]* %B.i to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %1) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -400  ; CHECK:   call void @capture100x32(    call void @capture100x32([100 x i32]* %A.i)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -800  ; CHECK:   call void @capture100x32(    call void @capture100x32([100 x i32]* %B.i) -  call void @llvm.lifetime.end(i64 -1, i8* %0) -  call void @llvm.lifetime.end(i64 -1, i8* %1) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1)    %2 = bitcast [100 x i32]* %A.i1 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %2) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2)    %3 = bitcast [100 x i32]* %B.i2 to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %3) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -400  ; CHECK:   call void @capture100x32(    call void @capture100x32([100 x i32]* %A.i1)  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -800  ; CHECK:   call void @capture100x32(    call void @capture100x32([100 x i32]* %B.i2) -  call void @llvm.lifetime.end(i64 -1, i8* %2) -  call void @llvm.lifetime.end(i64 -1, i8* %3) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3)    ret void  } @@ -408,11 +408,11 @@ entry:    %buf1 = alloca i8, i32 100000, align 16    %buf2 = alloca i8, i32 100000, align 16 -  call void @llvm.lifetime.start(i64 -1, i8* %buf1) -  call void @llvm.lifetime.end(i64 -1, i8* %buf1) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %buf1) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %buf1) -  call void @llvm.lifetime.start(i64 -1, i8* %buf1) -  call void @llvm.lifetime.start(i64 -1, i8* %buf2) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %buf1) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %buf2)    call void @capture8(i8* %buf1)    call void @capture8(i8* %buf2)    ret void @@ -435,13 +435,13 @@ entry:    %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(i64 -1, i8* %0) nounwind +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0) nounwind    %1 = bitcast [100 x i32]* %B.i to i8* -  call void @llvm.lifetime.start(i64 -1, i8* %1) nounwind +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %1) nounwind    call void @capture100x32([100 x i32]* %A.i)    call void @capture100x32([100 x i32]* %B.i) -  call void @llvm.lifetime.end(i64 -1, i8* %0) nounwind -  call void @llvm.lifetime.end(i64 -1, i8* %1) nounwind +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) nounwind +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %1) nounwind    br label %block2  block2: @@ -464,13 +464,13 @@ entry:    %b8 = bitcast [4 x %struct.Klass]* %b.i to i8*    ; I am used outside the lifetime zone below:    %z2 = getelementptr inbounds [4 x %struct.Klass], [4 x %struct.Klass]* %a.i, i64 0, i64 0, i32 0 -  call void @llvm.lifetime.start(i64 -1, i8* %a8) -  call void @llvm.lifetime.start(i64 -1, i8* %b8) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a8) +  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b8)    call void @capture8(i8* %a8)    call void @capture8(i8* %b8)    %z3 = load i32, i32* %z2, align 16 -  call void @llvm.lifetime.end(i64 -1, i8* %a8) -  call void @llvm.lifetime.end(i64 -1, i8* %b8) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %a8) +  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b8)    ret i32 %z3  } @@ -480,12 +480,12 @@ entry:  ; CHECK:        %[[USP:.*]] = load i8*, i8** @__safestack_unsafe_stack_ptr  ; CHECK-NEXT:   getelementptr i8, i8* %[[USP]], i32 -16    %x = alloca i8, align 4 -  call void @llvm.lifetime.start(i64 4, i8* %x) nounwind +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x) nounwind    br label %l2  l2:    call void @capture8(i8* %x) -  call void @llvm.lifetime.end(i64 4, i8* %x) nounwind +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %x) nounwind    br label %l2  } @@ -498,23 +498,23 @@ entry:  ; CHECK-NEXT:   getelementptr i8, i8* %[[USP]], i32 -16    %x = alloca i8, align 4    %y = alloca i8, align 4 -  call void @llvm.lifetime.start(i64 4, i8* %x) nounwind +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x) nounwind    br label %l2  l2:  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -8 -  call void @llvm.lifetime.start(i64 4, i8* %y) nounwind +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %y) nounwind    call void @capture8(i8* %y) -  call void @llvm.lifetime.end(i64 4, i8* %y) nounwind +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %y) nounwind  ; CHECK:   getelementptr i8, i8* %[[USP]], i32 -4 -  call void @llvm.lifetime.start(i64 4, i8* %x) nounwind +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x) nounwind    call void @capture8(i8* %x)    br label %l2  } -declare void @llvm.lifetime.start(i64, i8* nocapture) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)  declare void @capture8(i8*)  declare void @capture32(i32*)  declare void @capture64(i64*) diff --git a/test/Transforms/SafeStack/X86/debug-loc2.ll b/test/Transforms/SafeStack/X86/debug-loc2.ll index 35e9b7711d2f..8059a722fd45 100644 --- a/test/Transforms/SafeStack/X86/debug-loc2.ll +++ b/test/Transforms/SafeStack/X86/debug-loc2.ll @@ -40,12 +40,12 @@ entry:  }  ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1  declare void @capture(i32*) #2  ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1  ; Function Attrs: nounwind readnone  declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #3 diff --git a/test/Transforms/SafeStack/X86/layout-frag.ll b/test/Transforms/SafeStack/X86/layout-frag.ll index 125eb0f8be9a..b127defc2c5d 100644 --- a/test/Transforms/SafeStack/X86/layout-frag.ll +++ b/test/Transforms/SafeStack/X86/layout-frag.ll @@ -14,16 +14,16 @@ entry:    %x0a = bitcast i64* %x0 to i8*    %x2a = bitcast i64* %x2 to i8* -  call void @llvm.lifetime.start(i64 4, i8* %x0a) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x0a)    call void @capture64(i64* %x0) -  call void @llvm.lifetime.end(i64 4, i8* %x0a) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %x0a) -  call void @llvm.lifetime.start(i64 4, i8* %x1) -  call void @llvm.lifetime.start(i64 4, i8* %x2a) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x1) +  call void @llvm.lifetime.start.p0i8(i64 4, i8* %x2a)    call void @capture8(i8* %x1)    call void @capture64(i64* %x2) -  call void @llvm.lifetime.end(i64 4, i8* %x1) -  call void @llvm.lifetime.end(i64 4, i8* %x2a) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %x1) +  call void @llvm.lifetime.end.p0i8(i64 4, i8* %x2a)  ; Test that i64 allocas share space.  ; CHECK: getelementptr i8, i8* %unsafe_stack_ptr, i32 -8 @@ -33,7 +33,7 @@ entry:    ret void  } -declare void @llvm.lifetime.start(i64, i8* nocapture) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)  declare void @capture8(i8*)  declare void @capture64(i64*) | 
