diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-04-10 20:18:21 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-04-10 20:18:21 +0000 |
commit | f10061ec708ef787398649f3eb073c6ca3acd73d (patch) | |
tree | 5949d7ce9679b7e663a7f4fad605cddae4c5199c /llvm/test | |
parent | 324c99dee5096be095adc3972c4a512ca0f74090 (diff) | |
download | bcm5719-llvm-f10061ec708ef787398649f3eb073c6ca3acd73d.tar.gz bcm5719-llvm-f10061ec708ef787398649f3eb073c6ca3acd73d.zip |
Add address space mangling to lifetime intrinsics
In preparation for allowing allocas to have non-0 addrspace.
llvm-svn: 299876
Diffstat (limited to 'llvm/test')
114 files changed, 811 insertions, 792 deletions
diff --git a/llvm/test/Analysis/BasicAA/modref.ll b/llvm/test/Analysis/BasicAA/modref.ll index e42793936c3..71a3eac3a74 100644 --- a/llvm/test/Analysis/BasicAA/modref.ll +++ b/llvm/test/Analysis/BasicAA/modref.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -basicaa -gvn -dse -S | FileCheck %s target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128" -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) declare void @external(i32*) @@ -67,7 +67,7 @@ define void @test3(i8* %P, i8 %X) { %P2 = getelementptr i8, i8* %P, i32 2 store i8 %Y, i8* %P2 ;; Not read by lifetime.end, should be removed. ; CHECK: store i8 2, i8* %P2 - call void @llvm.lifetime.end(i64 1, i8* %P) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %P) store i8 2, i8* %P2 ; CHECK-NOT: store ret void @@ -81,7 +81,7 @@ define void @test3a(i8* %P, i8 %X) { %P2 = getelementptr i8, i8* %P, i32 2 store i8 %Y, i8* %P2 ; CHECK-NEXT: call void @llvm.lifetime.end - call void @llvm.lifetime.end(i64 10, i8* %P) + call void @llvm.lifetime.end.p0i8(i64 10, i8* %P) ret void ; CHECK-NEXT: ret void } diff --git a/llvm/test/Analysis/LazyValueAnalysis/invalidation.ll b/llvm/test/Analysis/LazyValueAnalysis/invalidation.ll index 21bfd2cfefa..67b6c985939 100644 --- a/llvm/test/Analysis/LazyValueAnalysis/invalidation.ll +++ b/llvm/test/Analysis/LazyValueAnalysis/invalidation.ll @@ -29,13 +29,13 @@ target triple = "x86_64-unknown-linux-gnu" @.str = private unnamed_addr constant [8 x i8] c"a = %l\0A\00", align 1 -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @hoo(i64*) declare i32 @printf(i8* nocapture readonly, ...) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) define void @goo(i32 %N, i64* %b) { entry: @@ -50,12 +50,12 @@ for.cond: ; preds = %for.body, %entry br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - call void @llvm.lifetime.start(i64 8, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 8, i8* %tmp) call void @hoo(i64* %a.i) call void @hoo(i64* %c) %tmp1 = load volatile i64, i64* %a.i, align 8 %call.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0), i64 %tmp1) - call void @llvm.lifetime.end(i64 8, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 8, i8* %tmp) %inc = add nsw i32 %i.0, 1 br label %for.cond diff --git a/llvm/test/Assembler/auto_upgrade_intrinsics.ll b/llvm/test/Assembler/auto_upgrade_intrinsics.ll index 6df5500b442..d00fe5882bc 100644 --- a/llvm/test/Assembler/auto_upgrade_intrinsics.ll +++ b/llvm/test/Assembler/auto_upgrade_intrinsics.ll @@ -110,6 +110,25 @@ define void @test.stackprotectorcheck() { ret void } +declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind readonly +declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind + +define void @tests.lifetime.start.end() { + ; CHECK-LABEL: @tests.lifetime.start.end( + %a = alloca i8 + call void @llvm.lifetime.start(i64 1, i8* %a) + ; CHECK: call void @llvm.lifetime.start.p0i8(i64 1, i8* %a) + store i8 0, i8* %a + call void @llvm.lifetime.end(i64 1, i8* %a) + ; CHECK: call void @llvm.lifetime.end.p0i8(i64 1, i8* %a) + ret void +} + + ; This is part of @test.objectsize(), since llvm.objectsize declaration gets ; emitted at the end. ; CHECK: declare i32 @llvm.objectsize.i32.p0i8 + + +; CHECK: declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) +; CHECK: declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll index 4356168d5d8..02848021dbc 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll @@ -1244,14 +1244,14 @@ define float @test_pow_intrin(float %l, float %r) { ret float %res } -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) define void @test_lifetime_intrin() { ; CHECK-LABEL: name: test_lifetime_intrin ; CHECK: RET_ReallyLR %slot = alloca i8, i32 4 - call void @llvm.lifetime.start(i64 0, i8* %slot) - call void @llvm.lifetime.end(i64 0, i8* %slot) + call void @llvm.lifetime.start.p0i8(i64 0, i8* %slot) + call void @llvm.lifetime.end.p0i8(i64 0, i8* %slot) ret void } diff --git a/llvm/test/CodeGen/AArch64/stack_guard_remat.ll b/llvm/test/CodeGen/AArch64/stack_guard_remat.ll index 08c8a4b6657..2b7b3485311 100644 --- a/llvm/test/CodeGen/AArch64/stack_guard_remat.ll +++ b/llvm/test/CodeGen/AArch64/stack_guard_remat.ll @@ -29,20 +29,20 @@ define i32 @test_stack_guard_remat() #0 { entry: %a1 = alloca [256 x i32], align 4 %0 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %0) %arraydecay = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i64 0, i64 0 call void @foo3(i32* %arraydecay) call void asm sideeffect "foo2", "~{w0},~{w1},~{w2},~{w3},~{w4},~{w5},~{w6},~{w7},~{w8},~{w9},~{w10},~{w11},~{w12},~{w13},~{w14},~{w15},~{w16},~{w17},~{w18},~{w19},~{w20},~{w21},~{w22},~{w23},~{w24},~{w25},~{w26},~{w27},~{w28},~{w29},~{w30}"() - call void @llvm.lifetime.end(i64 1024, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %0) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { nounwind sspstrong "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/AMDGPU/captured-frame-index.ll b/llvm/test/CodeGen/AMDGPU/captured-frame-index.ll index 17601415081..5fe1b272850 100644 --- a/llvm/test/CodeGen/AMDGPU/captured-frame-index.ll +++ b/llvm/test/CodeGen/AMDGPU/captured-frame-index.ll @@ -6,9 +6,9 @@ define amdgpu_kernel void @store_fi_lifetime(i32 addrspace(1)* %out, i32 %in) #0 { entry: %b = alloca i8 - call void @llvm.lifetime.start(i64 1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %b) store volatile i8* %b, i8* addrspace(1)* undef - call void @llvm.lifetime.end(i64 1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %b) ret void } @@ -196,8 +196,8 @@ entry: ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind } attributes #1 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll b/llvm/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll index 9d6f78f808e..bd4571a9616 100644 --- a/llvm/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll +++ b/llvm/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll @@ -1,7 +1,7 @@ ; RUN: opt -S -mtriple=amdgcn-unknown-amdhsa -amdgpu-promote-alloca %s | FileCheck -check-prefix=OPT %s -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 ; OPT-LABEL: @use_lifetime_promotable_lds( ; OPT-NOT: alloca i32 @@ -11,11 +11,11 @@ define amdgpu_kernel void @use_lifetime_promotable_lds(i32 addrspace(1)* %arg) # bb: %tmp = alloca i32, align 4 %tmp1 = bitcast i32* %tmp to i8* - call void @llvm.lifetime.start(i64 4, i8* %tmp1) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %tmp1) %tmp2 = getelementptr inbounds i32, i32 addrspace(1)* %arg, i64 1 %tmp3 = load i32, i32 addrspace(1)* %tmp2 store i32 %tmp3, i32* %tmp - call void @llvm.lifetime.end(i64 4, i8* %tmp1) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %tmp1) ret void } diff --git a/llvm/test/CodeGen/ARM/interval-update-remat.ll b/llvm/test/CodeGen/ARM/interval-update-remat.ll index 6391d4c2960..524e8a0aa49 100644 --- a/llvm/test/CodeGen/ARM/interval-update-remat.ll +++ b/llvm/test/CodeGen/ARM/interval-update-remat.ll @@ -109,7 +109,7 @@ _ZN7MessageD1Ev.exit: ; preds = %if.then.i.i.i.i, %i } ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 declare %class.StaticSocketDataProvider.6.231.281.1306.2331* @_ZN24StaticSocketDataProviderC1EP13MockReadWritejS1_j(%class.StaticSocketDataProvider.6.231.281.1306.2331* returned, %struct.MockReadWrite.7.232.282.1307.2332*, i32, %struct.MockReadWrite.7.232.282.1307.2332*, i32) unnamed_addr @@ -130,7 +130,7 @@ declare %class.Message.13.238.288.1313.2338* @_ZN7MessageC1Ev(%class.Message.13. declare %class.AssertHelper.10.235.285.1310.2335* @_ZN12AssertHelperD1Ev(%class.AssertHelper.10.235.285.1310.2335* returned) unnamed_addr ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 declare void @_ZN18ClientSocketHandle5m_fn3IPiEEvRK25Trans_NS___1_basic_stringIciiE13scoped_refptr15RequestPriorityN16ClientSocketPool13RespectLimitsERiT_11BoundNetLog(%class.ClientSocketHandle.14.239.289.1314.2339*, %class.Trans_NS___1_basic_string.18.243.293.1318.2343* dereferenceable(12), %class.scoped_refptr.19.244.294.1319.2344*, i32, i32, i32* dereferenceable(4), i32*, %class.BoundNetLog.20.245.295.1320.2345*) diff --git a/llvm/test/CodeGen/ARM/ldrd.ll b/llvm/test/CodeGen/ARM/ldrd.ll index 7fef6f5671a..6981cfcb085 100644 --- a/llvm/test/CodeGen/ARM/ldrd.ll +++ b/llvm/test/CodeGen/ARM/ldrd.ll @@ -80,7 +80,7 @@ return: ; preds = %bb, %entry ; CHECK-LABEL: Func1: define void @Func1() nounwind ssp "no-frame-pointer-elim"="true" { -entry: +entry: ; A8: movw [[BASE:r[0-9]+]], :lower16:{{.*}}TestVar{{.*}} ; A8: movt [[BASE]], :upper16:{{.*}}TestVar{{.*}} ; A8: ldrd [[FIELD1:r[0-9]+]], [[FIELD2:r[0-9]+]], {{\[}}[[BASE]], #4] @@ -88,12 +88,12 @@ entry: ; A8-NEXT: str [[FIELD1]], {{\[}}[[BASE]]{{\]}} ; CONSERVATIVE-NOT: ldrd %orig_blocks = alloca [256 x i16], align 2 - %0 = bitcast [256 x i16]* %orig_blocks to i8*call void @llvm.lifetime.start(i64 512, i8* %0) nounwind + %0 = bitcast [256 x i16]* %orig_blocks to i8*call void @llvm.lifetime.start.p0i8(i64 512, i8* %0) nounwind %tmp1 = load i32, i32* getelementptr inbounds (%struct.Test, %struct.Test* @TestVar, i32 0, i32 1), align 4 %tmp2 = load i32, i32* getelementptr inbounds (%struct.Test, %struct.Test* @TestVar, i32 0, i32 2), align 4 %add = add nsw i32 %tmp2, %tmp1 store i32 %add, i32* getelementptr inbounds (%struct.Test, %struct.Test* @TestVar, i32 0, i32 0), align 4 - call void @llvm.lifetime.end(i64 512, i8* %0) nounwind + call void @llvm.lifetime.end.p0i8(i64 512, i8* %0) nounwind ret void } @@ -207,5 +207,5 @@ entry: ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/CodeGen/ARM/stack_guard_remat.ll b/llvm/test/CodeGen/ARM/stack_guard_remat.ll index 99d49949845..9b5677608d2 100644 --- a/llvm/test/CodeGen/ARM/stack_guard_remat.ll +++ b/llvm/test/CodeGen/ARM/stack_guard_remat.ll @@ -51,20 +51,20 @@ define i32 @test_stack_guard_remat() #0 { %a1 = alloca [256 x i32], align 4 %1 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %1) %2 = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i32 0, i32 0 call void @foo3(i32* %2) #3 call void asm sideeffect "foo2", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{sp},~{lr}"() - call void @llvm.lifetime.end(i64 1024, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %1) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { nounwind ssp "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/BPF/warn-stack.ll b/llvm/test/CodeGen/BPF/warn-stack.ll index b7992960b73..5a579d28554 100644 --- a/llvm/test/CodeGen/BPF/warn-stack.ll +++ b/llvm/test/CodeGen/BPF/warn-stack.ll @@ -4,15 +4,15 @@ define void @nowarn() local_unnamed_addr #0 !dbg !6 { %1 = alloca [504 x i8], align 1 %2 = getelementptr inbounds [504 x i8], [504 x i8]* %1, i64 0, i64 0, !dbg !15 - call void @llvm.lifetime.start(i64 504, i8* nonnull %2) #4, !dbg !15 + call void @llvm.lifetime.start.p0i8(i64 504, i8* nonnull %2) #4, !dbg !15 tail call void @llvm.dbg.declare(metadata [504 x i8]* %1, metadata !10, metadata !16), !dbg !17 call void @doit(i8* nonnull %2) #4, !dbg !18 - call void @llvm.lifetime.end(i64 504, i8* nonnull %2) #4, !dbg !19 + call void @llvm.lifetime.end.p0i8(i64 504, i8* nonnull %2) #4, !dbg !19 ret void, !dbg !19 } ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind readnone declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 @@ -20,17 +20,17 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 declare void @doit(i8*) local_unnamed_addr #3 ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 ; CHECK: error: warn_stack.c ; CHECK: BPF stack limit define void @warn() local_unnamed_addr #0 !dbg !20 { %1 = alloca [512 x i8], align 1 %2 = getelementptr inbounds [512 x i8], [512 x i8]* %1, i64 0, i64 0, !dbg !26 - call void @llvm.lifetime.start(i64 512, i8* nonnull %2) #4, !dbg !26 + call void @llvm.lifetime.start.p0i8(i64 512, i8* nonnull %2) #4, !dbg !26 tail call void @llvm.dbg.declare(metadata [512 x i8]* %1, metadata !22, metadata !16), !dbg !27 call void @doit(i8* nonnull %2) #4, !dbg !28 - call void @llvm.lifetime.end(i64 512, i8* nonnull %2) #4, !dbg !29 + call void @llvm.lifetime.end.p0i8(i64 512, i8* nonnull %2) #4, !dbg !29 ret void, !dbg !29 } diff --git a/llvm/test/CodeGen/Hexagon/bit-rie.ll b/llvm/test/CodeGen/Hexagon/bit-rie.ll index 6bd0558f580..302382a1ade 100644 --- a/llvm/test/CodeGen/Hexagon/bit-rie.ll +++ b/llvm/test/CodeGen/Hexagon/bit-rie.ll @@ -187,8 +187,8 @@ declare i32 @llvm.hexagon.S2.asr.r.r.sat(i32, i32) #2 declare i32 @llvm.hexagon.S2.clbnorm(i32) #2 declare i32 @llvm.hexagon.S2.lsr.r.r(i32, i32) #2 declare i64 @llvm.hexagon.M2.mpyd.ll.s1(i32, i32) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 attributes #0 = { norecurse nounwind "target-cpu"="hexagonv60" "target-features"="+hvx,-hvx-double" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/Hexagon/hwloop-loop1.ll b/llvm/test/CodeGen/Hexagon/hwloop-loop1.ll index 7508b947f1c..427efdc2c11 100644 --- a/llvm/test/CodeGen/Hexagon/hwloop-loop1.ll +++ b/llvm/test/CodeGen/Hexagon/hwloop-loop1.ll @@ -12,9 +12,9 @@ entry: %array = alloca [100 x i32], align 8 %doublearray = alloca [100 x [100 x i32]], align 8 %0 = bitcast [100 x i32]* %array to i8* - call void @llvm.lifetime.start(i64 400, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 400, i8* %0) #1 %1 = bitcast [100 x [100 x i32]]* %doublearray to i8* - call void @llvm.lifetime.start(i64 40000, i8* %1) #1 + call void @llvm.lifetime.start.p0i8(i64 40000, i8* %1) #1 %arrayidx1 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %doublearray, i32 0, i32 10, i32 10 %arrayidx2.gep = getelementptr [100 x i32], [100 x i32]* %array, i32 0, i32 0 br label %for.body @@ -56,11 +56,11 @@ for.inc15: for.end17: %3 = load i32, i32* %arrayidx1, align 8 - call void @llvm.lifetime.end(i64 40000, i8* %1) #1 - call void @llvm.lifetime.end(i64 400, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 40000, i8* %1) #1 + call void @llvm.lifetime.end.p0i8(i64 400, i8* %0) #1 ret i32 %3 } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 diff --git a/llvm/test/CodeGen/Hexagon/memops-stack.ll b/llvm/test/CodeGen/Hexagon/memops-stack.ll index a8dc664591e..1aa2e30ea25 100644 --- a/llvm/test/CodeGen/Hexagon/memops-stack.ll +++ b/llvm/test/CodeGen/Hexagon/memops-stack.ll @@ -9,13 +9,13 @@ define void @test0() #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = add nsw i32 %1, 1 store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -25,13 +25,13 @@ define void @test1() #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = sub nsw i32 %1, 1 store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -41,13 +41,13 @@ define void @test2() #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = or i32 %1, 1 store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -57,13 +57,13 @@ define void @test3() #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = and i32 %1, -2 store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -73,13 +73,13 @@ define void @test4(i32 %a) #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = add nsw i32 %1, %a store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -89,13 +89,13 @@ define void @test5(i32 %a) #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = sub nsw i32 %1, %a store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -105,13 +105,13 @@ define void @test6(i32 %a) #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = or i32 %1, %a store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } @@ -121,20 +121,20 @@ define void @test7(i32 %a) #0 { entry: %x = alloca i32, align 4 %0 = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 call void @foo(i32* nonnull %x) #3 %1 = load i32, i32* %x, align 4, !tbaa !1 %inc = and i32 %1, %a store i32 %inc, i32* %x, align 4, !tbaa !1 call void @foo(i32* nonnull %x) #3 - call void @llvm.lifetime.end(i64 4, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #3 ret void } declare void @foo(i32*) #2 -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hexagonv60" "target-features"="+hvx,-hvx-double" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/Hexagon/opt-spill-volatile.ll b/llvm/test/CodeGen/Hexagon/opt-spill-volatile.ll index 4f50a9a28a3..1c86716132f 100644 --- a/llvm/test/CodeGen/Hexagon/opt-spill-volatile.ll +++ b/llvm/test/CodeGen/Hexagon/opt-spill-volatile.ll @@ -11,17 +11,17 @@ define i32 @foo(i32 %a) #0 { entry: %x = alloca i32, align 4 %x.0.x.0..sroa_cast = bitcast i32* %x to i8* - call void @llvm.lifetime.start(i64 4, i8* %x.0.x.0..sroa_cast) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %x.0.x.0..sroa_cast) store volatile i32 0, i32* %x, align 4 %call = tail call i32 bitcast (i32 (...)* @bar to i32 ()*)() #0 %x.0.x.0. = load volatile i32, i32* %x, align 4 %add = add nsw i32 %x.0.x.0., %a - call void @llvm.lifetime.end(i64 4, i8* %x.0.x.0..sroa_cast) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %x.0.x.0..sroa_cast) ret i32 %add } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 declare i32 @bar(...) #0 diff --git a/llvm/test/CodeGen/Hexagon/rdf-copy-undef2.ll b/llvm/test/CodeGen/Hexagon/rdf-copy-undef2.ll index 5f29d414ffc..28bf4c67cd7 100644 --- a/llvm/test/CodeGen/Hexagon/rdf-copy-undef2.ll +++ b/llvm/test/CodeGen/Hexagon/rdf-copy-undef2.ll @@ -3,8 +3,8 @@ target triple = "hexagon" -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 declare signext i16 @cat(i16 signext) #1 declare void @danny(i16 signext, i16 signext, i16 signext, i16* nocapture readonly, i16 signext, i16* nocapture) #1 declare void @sammy(i16* nocapture readonly, i16* nocapture readonly, i16* nocapture readonly, i32* nocapture, i16* nocapture, i16 signext, i16 signext, i16 signext) #1 diff --git a/llvm/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll b/llvm/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll index 7adf7e8a535..222d8a2b2e1 100644 --- a/llvm/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll +++ b/llvm/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll @@ -13,18 +13,18 @@ define i32 @foo(i32 %status) #0 { entry: %arg1 = alloca i32, align 4 %0 = bitcast i32* %arg1 to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #2 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #2 store i32 %status, i32* %arg1, align 4, !tbaa !1 %1 = call i32 asm sideeffect "r0 = #$1\0Ar1 = $2\0Ar2 = $4\0Atrap0 (#0)\0A$0 = r0", "=r,i,r,*m,r,~{r0},~{r1},~{r2}"(i32 24, i32* nonnull %arg1, i32* nonnull %arg1, i32 %status) #2, !srcloc !5 - call void @llvm.lifetime.end(i64 4, i8* %0) #2 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #2 ret i32 %1 } ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="hexagonv5" "target-features"="-hvx,-hvx-double" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/Hexagon/rdf-phi-up.ll b/llvm/test/CodeGen/Hexagon/rdf-phi-up.ll index 28f4c90c174..d4e72647123 100644 --- a/llvm/test/CodeGen/Hexagon/rdf-phi-up.ll +++ b/llvm/test/CodeGen/Hexagon/rdf-phi-up.ll @@ -7,8 +7,8 @@ target triple = "hexagon" %struct.0 = type { i32, i16, i8* } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @fred(i8* readonly %p0, i32* %p1) local_unnamed_addr #0 { entry: @@ -32,7 +32,7 @@ if.then3: ; preds = %if.then if.else: ; preds = %lor.lhs.false %v6 = bitcast i16* %v0 to i8* - call void @llvm.lifetime.start(i64 2, i8* nonnull %v6) #0 + call void @llvm.lifetime.start.p0i8(i64 2, i8* nonnull %v6) #0 store i16 0, i16* %v0, align 2 %v7 = call i32 @foo(%struct.0* nonnull %v3, i16* nonnull %v0) #0 %v8 = icmp eq i32* %p1, null @@ -45,7 +45,7 @@ if.then6: ; preds = %if.else br label %if.end7 if.end7: ; preds = %if.else, %if.then6 - call void @llvm.lifetime.end(i64 2, i8* nonnull %v6) #0 + call void @llvm.lifetime.end.p0i8(i64 2, i8* nonnull %v6) #0 br label %cleanup cleanup: ; preds = %if.then3, %if.then, diff --git a/llvm/test/CodeGen/Hexagon/runtime-stkchk.ll b/llvm/test/CodeGen/Hexagon/runtime-stkchk.ll index a4e8f117679..38aa8726d19 100644 --- a/llvm/test/CodeGen/Hexagon/runtime-stkchk.ll +++ b/llvm/test/CodeGen/Hexagon/runtime-stkchk.ll @@ -6,12 +6,12 @@ define i32 @foo_1(i32 %n) #0 { entry: %local = alloca [1024 x i32], align 8 %0 = bitcast [1024 x i32]* %local to i8* - call void @llvm.lifetime.start(i64 4096, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %0) #1 %arraydecay = getelementptr inbounds [1024 x i32], [1024 x i32]* %local, i32 0, i32 0 call void @baz_1(i32* %arraydecay) #3 %arrayidx = getelementptr inbounds [1024 x i32], [1024 x i32]* %local, i32 0, i32 %n %1 = load i32, i32* %arrayidx, align 4 - call void @llvm.lifetime.end(i64 4096, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %0) #1 ret i32 %1 } @@ -21,21 +21,21 @@ define i32 @foo_2(i32 %n, i32* %y) #0 { entry: %local = alloca [2048 x i32], align 8 %0 = bitcast [2048 x i32]* %local to i8* - call void @llvm.lifetime.start(i64 8192, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 8192, i8* %0) #1 %arraydecay = getelementptr inbounds [2048 x i32], [2048 x i32]* %local, i32 0, i32 0 call void @baz_2(i32* %y, i32* %arraydecay) #3 %1 = load i32, i32* %y, align 4 %add = add nsw i32 %n, %1 %arrayidx = getelementptr inbounds [2048 x i32], [2048 x i32]* %local, i32 0, i32 %add %2 = load i32, i32* %arrayidx, align 4 - call void @llvm.lifetime.end(i64 8192, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 8192, i8* %0) #1 ret i32 %2 } declare void @baz_1(i32*) #2 declare void @baz_2(i32*, i32*) #2 -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind optsize "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { nounwind } diff --git a/llvm/test/CodeGen/Mips/stackcoloring.ll b/llvm/test/CodeGen/Mips/stackcoloring.ll index 817caee2f27..680b3128cc1 100644 --- a/llvm/test/CodeGen/Mips/stackcoloring.ll +++ b/llvm/test/CodeGen/Mips/stackcoloring.ll @@ -11,7 +11,7 @@ define i32 @foo1() { entry: %b = alloca [16 x i32], align 4 %0 = bitcast [16 x i32]* %b to i8* - call void @llvm.lifetime.start(i64 64, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 64, i8* %0) %arraydecay = getelementptr inbounds [16 x i32], [16 x i32]* %b, i32 0, i32 0 br label %for.body @@ -28,12 +28,12 @@ for.body: ; preds = %for.body, %entry br i1 %exitcond, label %for.end, label %for.body for.end: ; preds = %for.body - call void @llvm.lifetime.end(i64 64, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %0) ret i32 %add } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare i32 @foo2(i32, i32*) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) diff --git a/llvm/test/CodeGen/Mips/stchar.ll b/llvm/test/CodeGen/Mips/stchar.ll index 34493e9ae33..a6021be8e80 100644 --- a/llvm/test/CodeGen/Mips/stchar.ll +++ b/llvm/test/CodeGen/Mips/stchar.ll @@ -34,7 +34,7 @@ entry: ; 16_h: lh ${{[0-9]+}}, [[offset2]](${{[0-9]+}}) } -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/CodeGen/NVPTX/bug22322.ll b/llvm/test/CodeGen/NVPTX/bug22322.ll index 0c4c30cf37e..74133d3dcab 100644 --- a/llvm/test/CodeGen/NVPTX/bug22322.ll +++ b/llvm/test/CodeGen/NVPTX/bug22322.ll @@ -17,7 +17,7 @@ _ZL11compute_vecRK6float3jb.exit: %4 = add nsw i32 %2, %3 %5 = zext i32 %4 to i64 %6 = bitcast float* %ret_vec.sroa.8.i to i8* - call void @llvm.lifetime.start(i64 4, i8* %6) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) %7 = and i32 %4, 15 %8 = icmp eq i32 %7, 0 %9 = select i1 %8, float 0.000000e+00, float -1.000000e+00 @@ -26,7 +26,7 @@ _ZL11compute_vecRK6float3jb.exit: %10 = fcmp olt float %9, 0.000000e+00 %ret_vec.sroa.8.i.val = load float, float* %ret_vec.sroa.8.i, align 4 %11 = select i1 %10, float 0.000000e+00, float %ret_vec.sroa.8.i.val - call void @llvm.lifetime.end(i64 4, i8* %6) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) %12 = getelementptr inbounds %class.float3, %class.float3* %dst, i64 %5, i32 0 store float 0.000000e+00, float* %12, align 4 %13 = getelementptr inbounds %class.float3, %class.float3* %dst, i64 %5, i32 1 @@ -46,10 +46,10 @@ declare i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #1 declare i32 @llvm.nvvm.read.ptx.sreg.tid.x() #1 ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #2 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #2 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "stack-protector-buffer-size"="8" "unsafe-fp-math"="true" "use-soft-float"="false" } attributes #1 = { nounwind readnone } diff --git a/llvm/test/CodeGen/PowerPC/BreakableToken-reduced.ll b/llvm/test/CodeGen/PowerPC/BreakableToken-reduced.ll index 39516537da4..dcc09304168 100644 --- a/llvm/test/CodeGen/PowerPC/BreakableToken-reduced.ll +++ b/llvm/test/CodeGen/PowerPC/BreakableToken-reduced.ll @@ -265,12 +265,12 @@ _ZNK4llvm9StringRef10startswithES0_.exit: ; preds = %entry._ZNK4llvm9Str } ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) #2 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2 declare void @_ZN5clang6format17WhitespaceManager24replaceWhitespaceInTokenERKNS0_11FormatTokenEjjN4llvm9StringRefES6_bjji(%"class.clang::format::WhitespaceManager"*, %"struct.clang::format::FormatToken"* dereferenceable(272), i32 zeroext, i32 zeroext, [2 x i64], [2 x i64], i1 zeroext, i32 zeroext, i32 zeroext, i32 signext) #3 ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) #2 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2 attributes #9 = { nounwind } diff --git a/llvm/test/CodeGen/PowerPC/addi-licm.ll b/llvm/test/CodeGen/PowerPC/addi-licm.ll index 37a14899deb..d0178a8aec0 100644 --- a/llvm/test/CodeGen/PowerPC/addi-licm.ll +++ b/llvm/test/CodeGen/PowerPC/addi-licm.ll @@ -9,9 +9,9 @@ entry: %x = alloca [2048 x float], align 4 %y = alloca [2048 x float], align 4 %0 = bitcast [2048 x float]* %x to i8* - call void @llvm.lifetime.start(i64 8192, i8* %0) #2 + call void @llvm.lifetime.start.p0i8(i64 8192, i8* %0) #2 %1 = bitcast [2048 x float]* %y to i8* - call void @llvm.lifetime.start(i64 8192, i8* %1) #2 + call void @llvm.lifetime.start.p0i8(i64 8192, i8* %1) #2 br label %for.body.i ; CHECK-LABEL: @foo @@ -50,12 +50,12 @@ loop.exit: ; preds = %for.body.i } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #2 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2 declare void @bar(float*, float*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #2 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2 attributes #0 = { nounwind readonly } attributes #1 = { nounwind } diff --git a/llvm/test/CodeGen/PowerPC/ctrloop-intrin.ll b/llvm/test/CodeGen/PowerPC/ctrloop-intrin.ll index 3a6e8855971..6ae5d3368c1 100644 --- a/llvm/test/CodeGen/PowerPC/ctrloop-intrin.ll +++ b/llvm/test/CodeGen/PowerPC/ctrloop-intrin.ll @@ -17,10 +17,10 @@ target triple = "powerpc64le--linux-gnu" @.str.11.98 = external hidden unnamed_addr constant [3 x i8], align 1 ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 ; Function Attrs: nounwind declare i8* @halide_string_to_string(i8*, i8*, i8*) #1 @@ -36,7 +36,7 @@ entry: %buf = alloca [512 x i8], align 1 store double %arg, double* %arg.addr, align 8, !tbaa !4 %0 = bitcast i64* %bits to i8* - call void @llvm.lifetime.start(i64 8, i8* %0) #0 + call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #0 store i64 0, i64* %bits, align 8, !tbaa !8 %1 = bitcast double* %arg.addr to i8* %call = call i8* @memcpy(i8* %0, i8* %1, i64 8) #2 @@ -245,7 +245,7 @@ if.end.105: ; preds = %if.end.84, %if.end. %integer_exponent.0 = phi i32 [ 0, %if.end.84 ], [ %sub70, %if.end.66 ] %fractional_part.2 = phi i64 [ %.fractional_part.0, %if.end.84 ], [ 0, %if.end.66 ] %7 = bitcast [512 x i8]* %buf to i8* - call void @llvm.lifetime.start(i64 512, i8* %7) #0 + call void @llvm.lifetime.start.p0i8(i64 512, i8* %7) #0 %add.ptr = getelementptr inbounds [512 x i8], [512 x i8]* %buf, i64 0, i64 512 %add.ptr106 = getelementptr inbounds [512 x i8], [512 x i8]* %buf, i64 0, i64 480 %call109 = call i8* @halide_int64_to_string(i8* %add.ptr106, i8* %add.ptr, i64 %integer_part.2, i32 1) #3 @@ -272,7 +272,7 @@ for.cond.cleanup: ; preds = %if.end.138, %if.end %call142 = call i8* @halide_string_to_string(i8* %dst.addr.0, i8* %end, i8* %int_part_ptr.0.lcssa) #3 %call143 = call i8* @halide_string_to_string(i8* %call142, i8* %end, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9.96, i64 0, i64 0)) #3 %call144 = call i8* @halide_int64_to_string(i8* %call143, i8* %end, i64 %fractional_part.2, i32 6) #3 - call void @llvm.lifetime.end(i64 512, i8* %9) #0 + call void @llvm.lifetime.end.p0i8(i64 512, i8* %9) #0 br label %cleanup.148 for.cond.cleanup.115: ; preds = %for.body.116 @@ -315,7 +315,7 @@ if.end.138: ; preds = %if.then.136, %for.c cleanup.148: ; preds = %for.cond.cleanup, %if.then.64, %if.end.59, %if.else.30, %if.then.28, %if.else.24, %if.then.22, %if.else.13, %if.then.11, %if.else, %if.then.6 %retval.1 = phi i8* [ %call7, %if.then.6 ], [ %call8, %if.else ], [ %call12, %if.then.11 ], [ %call14, %if.else.13 ], [ %call23, %if.then.22 ], [ %call25, %if.else.24 ], [ %call29, %if.then.28 ], [ %call31, %if.else.30 ], [ %call65, %if.then.64 ], [ %call61, %if.end.59 ], [ %call144, %for.cond.cleanup ] %13 = bitcast i64* %bits to i8* - call void @llvm.lifetime.end(i64 8, i8* %13) #0 + call void @llvm.lifetime.end.p0i8(i64 8, i8* %13) #0 ret i8* %retval.1 } diff --git a/llvm/test/CodeGen/PowerPC/lsa.ll b/llvm/test/CodeGen/PowerPC/lsa.ll index dc74b9dbca2..d0ebd473133 100644 --- a/llvm/test/CodeGen/PowerPC/lsa.ll +++ b/llvm/test/CodeGen/PowerPC/lsa.ll @@ -8,11 +8,11 @@ entry: %w = alloca [8200 x i32], align 4 %q = alloca [8200 x i32], align 4 %0 = bitcast [8200 x i32]* %v to i8* - call void @llvm.lifetime.start(i64 32800, i8* %0) #0 + call void @llvm.lifetime.start.p0i8(i64 32800, i8* %0) #0 %1 = bitcast [8200 x i32]* %w to i8* - call void @llvm.lifetime.start(i64 32800, i8* %1) #0 + call void @llvm.lifetime.start.p0i8(i64 32800, i8* %1) #0 %2 = bitcast [8200 x i32]* %q to i8* - call void @llvm.lifetime.start(i64 32800, i8* %2) #0 + call void @llvm.lifetime.start.p0i8(i64 32800, i8* %2) #0 %arraydecay = getelementptr inbounds [8200 x i32], [8200 x i32]* %q, i64 0, i64 0 %arraydecay1 = getelementptr inbounds [8200 x i32], [8200 x i32]* %v, i64 0, i64 0 %arraydecay2 = getelementptr inbounds [8200 x i32], [8200 x i32]* %w, i64 0, i64 0 @@ -28,16 +28,16 @@ entry: ; CHECK: blr %add = add nsw i32 %4, %3 - call void @llvm.lifetime.end(i64 32800, i8* %2) #0 - call void @llvm.lifetime.end(i64 32800, i8* %1) #0 - call void @llvm.lifetime.end(i64 32800, i8* %0) #0 + call void @llvm.lifetime.end.p0i8(i64 32800, i8* %2) #0 + call void @llvm.lifetime.end.p0i8(i64 32800, i8* %1) #0 + call void @llvm.lifetime.end.p0i8(i64 32800, i8* %0) #0 ret i32 %add } -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 declare void @bar(i32*, i32*, i32*) -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 attributes #0 = { nounwind } diff --git a/llvm/test/CodeGen/PowerPC/pr30451.ll b/llvm/test/CodeGen/PowerPC/pr30451.ll index 930553451cf..9b07df00f9c 100644 --- a/llvm/test/CodeGen/PowerPC/pr30451.ll +++ b/llvm/test/CodeGen/PowerPC/pr30451.ll @@ -3,11 +3,11 @@ define i8 @atomic_min_i8() { top: %0 = alloca i8, align 2 %1 = bitcast i8* %0 to i8* - call void @llvm.lifetime.start(i64 2, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) store i8 -1, i8* %0, align 2 %2 = atomicrmw min i8* %0, i8 0 acq_rel %3 = load atomic i8, i8* %0 acquire, align 8 - call void @llvm.lifetime.end(i64 2, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) ret i8 %3 ; CHECK-LABEL: atomic_min_i8 ; CHECK: lbarx [[DST:[0-9]+]], @@ -19,11 +19,11 @@ define i16 @atomic_min_i16() { top: %0 = alloca i16, align 2 %1 = bitcast i16* %0 to i8* - call void @llvm.lifetime.start(i64 2, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) store i16 -1, i16* %0, align 2 %2 = atomicrmw min i16* %0, i16 0 acq_rel %3 = load atomic i16, i16* %0 acquire, align 8 - call void @llvm.lifetime.end(i64 2, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) ret i16 %3 ; CHECK-LABEL: atomic_min_i16 ; CHECK: lharx [[DST:[0-9]+]], @@ -36,11 +36,11 @@ define i8 @atomic_max_i8() { top: %0 = alloca i8, align 2 %1 = bitcast i8* %0 to i8* - call void @llvm.lifetime.start(i64 2, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) store i8 -1, i8* %0, align 2 %2 = atomicrmw max i8* %0, i8 0 acq_rel %3 = load atomic i8, i8* %0 acquire, align 8 - call void @llvm.lifetime.end(i64 2, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) ret i8 %3 ; CHECK-LABEL: atomic_max_i8 ; CHECK: lbarx [[DST:[0-9]+]], @@ -52,11 +52,11 @@ define i16 @atomic_max_i16() { top: %0 = alloca i16, align 2 %1 = bitcast i16* %0 to i8* - call void @llvm.lifetime.start(i64 2, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %1) store i16 -1, i16* %0, align 2 %2 = atomicrmw max i16* %0, i16 0 acq_rel %3 = load atomic i16, i16* %0 acquire, align 8 - call void @llvm.lifetime.end(i64 2, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %1) ret i16 %3 ; CHECK-LABEL: atomic_max_i16 ; CHECK: lharx [[DST:[0-9]+]], @@ -65,5 +65,5 @@ define i16 @atomic_max_i16() { ; CHECK-NEXT: ble 0 } -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) diff --git a/llvm/test/CodeGen/PowerPC/swaps-le-4.ll b/llvm/test/CodeGen/PowerPC/swaps-le-4.ll index 87c6dac9630..2bf684d9d61 100644 --- a/llvm/test/CodeGen/PowerPC/swaps-le-4.ll +++ b/llvm/test/CodeGen/PowerPC/swaps-le-4.ll @@ -8,11 +8,11 @@ define void @bar() { entry: %x = alloca <2 x i64>, align 16 %0 = bitcast <2 x i64>* %x to i8* - call void @llvm.lifetime.start(i64 16, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) %arrayidx = getelementptr inbounds <2 x i64>, <2 x i64>* %x, i64 0, i64 0 store <2 x i64> <i64 0, i64 1>, <2 x i64>* %x, align 16 call void @foo(i64* %arrayidx) - call void @llvm.lifetime.end(i64 16, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %0) ret void } @@ -21,7 +21,7 @@ entry: ; CHECK: stxvd2x ; CHECK-NOT: xxswapd -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo(i64*) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) diff --git a/llvm/test/CodeGen/PowerPC/tail-dup-branch-to-fallthrough.ll b/llvm/test/CodeGen/PowerPC/tail-dup-branch-to-fallthrough.ll index 5d03af801fc..0b101457161 100644 --- a/llvm/test/CodeGen/PowerPC/tail-dup-branch-to-fallthrough.ll +++ b/llvm/test/CodeGen/PowerPC/tail-dup-branch-to-fallthrough.ll @@ -3,7 +3,7 @@ target datalayout = "E-m:e-i64:64-n32:64" target triple = "powerpc64-unknown-linux-gnu" ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 declare void @f1() declare void @f2() @@ -54,11 +54,11 @@ if.else: ; preds = %sw.default br label %dup2 dup1: ; preds = %sw.0, %sw.1 - call void @llvm.lifetime.end(i64 8, i8* nonnull undef) #0 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull undef) #0 unreachable dup2: ; preds = %if.then, %if.else - call void @llvm.lifetime.end(i64 8, i8* nonnull undef) #0 + call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull undef) #0 unreachable } diff --git a/llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll b/llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll index e83124cbb99..21ccbf6f1ea 100644 --- a/llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll +++ b/llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll @@ -223,7 +223,7 @@ if.then: ; preds = %_ZNK4llvm7ErrorOrIS %10 = getelementptr inbounds %"class.std::allocator", %"class.std::allocator"* %ref.tmp.i.i2.i, i64 0, i32 0 %11 = bitcast %"class.llvm::SMDiagnostic"* %ref.tmp to i8* call void @llvm.memset.p0i8.i64(i8* %11, i8 0, i64 16, i32 8, i1 false) #3 - call void @llvm.lifetime.start(i64 1, i8* %10) #3 + call void @llvm.lifetime.start.p0i8(i64 1, i8* %10) #3 %tobool.i.i4.i = icmp eq i8* %4, null br i1 %tobool.i.i4.i, label %if.then.i.i6.i, label %if.end.i.i8.i @@ -237,7 +237,7 @@ if.end.i.i8.i: ; preds = %if.then br label %_ZNK4llvm9StringRefcvSsEv.exit9.i _ZNK4llvm9StringRefcvSsEv.exit9.i: ; preds = %if.end.i.i8.i, %if.then.i.i6.i - call void @llvm.lifetime.end(i64 1, i8* %10) #3 + call void @llvm.lifetime.end.p0i8(i64 1, i8* %10) #3 %LineNo.i = getelementptr inbounds %"class.llvm::SMDiagnostic", %"class.llvm::SMDiagnostic"* %ref.tmp, i64 0, i32 3 store i32 -1, i32* %LineNo.i, align 8, !tbaa !14 %ColumnNo.i = getelementptr inbounds %"class.llvm::SMDiagnostic", %"class.llvm::SMDiagnostic"* %ref.tmp, i64 0, i32 4 @@ -246,7 +246,7 @@ _ZNK4llvm9StringRefcvSsEv.exit9.i: ; preds = %if.end.i.i8.i, %if. store i32 0, i32* %Kind.i, align 8, !tbaa !22 %Message.i = getelementptr inbounds %"class.llvm::SMDiagnostic", %"class.llvm::SMDiagnostic"* %ref.tmp, i64 0, i32 6 %12 = getelementptr inbounds %"class.std::allocator", %"class.std::allocator"* %ref.tmp.i.i.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %12) #3 + call void @llvm.lifetime.start.p0i8(i64 1, i8* %12) #3 %tobool.i.i.i = icmp eq i8* %8, null br i1 %tobool.i.i.i, label %if.then.i.i.i, label %if.end.i.i.i @@ -260,7 +260,7 @@ if.end.i.i.i: ; preds = %_ZNK4llvm9StringRef br label %_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit _ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit: ; preds = %if.then.i.i.i, %if.end.i.i.i - call void @llvm.lifetime.end(i64 1, i8* %12) #3 + call void @llvm.lifetime.end.p0i8(i64 1, i8* %12) #3 %_M_p.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", %"class.llvm::SMDiagnostic"* %ref.tmp, i64 0, i32 7, i32 0, i32 0 store i8* bitcast (i64* getelementptr inbounds ([0 x i64], [0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3) to i8*), i8** %_M_p.i.i.i.i.i, align 8, !tbaa !13 %Ranges.i = getelementptr inbounds %"class.llvm::SMDiagnostic", %"class.llvm::SMDiagnostic"* %ref.tmp, i64 0, i32 8 @@ -320,7 +320,7 @@ _ZN4llvm12SMDiagnosticaSEOS0_.exit: ; preds = %_ZN4llvm12SMDiagnos %call2.i.i42 = call dereferenceable(48) %"class.llvm::SmallVectorImpl.85"* @_ZN4llvm15SmallVectorImplINS_7SMFixItEEaSEOS2_(%"class.llvm::SmallVectorImpl.85"* %24, %"class.llvm::SmallVectorImpl.85"* dereferenceable(48) %25) #3 call void @_ZN4llvm12SMDiagnosticD2Ev(%"class.llvm::SMDiagnostic"* %ref.tmp) #3 %26 = getelementptr inbounds %"class.std::allocator", %"class.std::allocator"* %ref.tmp.i.i, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %26) #3 + call void @llvm.lifetime.start.p0i8(i64 1, i8* %26) #3 %27 = bitcast i8* %arrayidx.i.i.i36 to %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* %cmp.i.i.i = icmp eq i8* %arrayidx.i.i.i36, bitcast ([0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) br i1 %cmp.i.i.i, label %_ZNSsD1Ev.exit, label %if.then.i.i.i45, !prof !28 @@ -332,11 +332,11 @@ if.then.i.i.i45: ; preds = %_ZN4llvm12SMDiagnos if.then.i.i.i.i: ; preds = %if.then.i.i.i45 %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast = bitcast i32* %.atomicdst.i.i.i.i.i to i8* - call void @llvm.lifetime.start(i64 4, i8* %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) %29 = atomicrmw volatile add i32* %28, i32 -1 acq_rel store i32 %29, i32* %.atomicdst.i.i.i.i.i, align 4 %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i = load volatile i32, i32* %.atomicdst.i.i.i.i.i, align 4 - call void @llvm.lifetime.end(i64 4, i8* %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i if.else.i.i.i.i: ; preds = %if.then.i.i.i45 @@ -355,9 +355,9 @@ if.then4.i.i.i: ; preds = %_ZN9__gnu_cxxL27__e br label %_ZNSsD1Ev.exit _ZNSsD1Ev.exit: ; preds = %_ZN4llvm12SMDiagnosticaSEOS0_.exit, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i, %if.then4.i.i.i - call void @llvm.lifetime.end(i64 1, i8* %26) #3 + call void @llvm.lifetime.end.p0i8(i64 1, i8* %26) #3 %31 = getelementptr inbounds %"class.std::allocator", %"class.std::allocator"* %ref.tmp.i.i47, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %31) #3 + call void @llvm.lifetime.start.p0i8(i64 1, i8* %31) #3 %_M_p.i.i.i.i48 = getelementptr inbounds %"class.std::basic_string", %"class.std::basic_string"* %ref.tmp5, i64 0, i32 0, i32 0 %32 = load i8*, i8** %_M_p.i.i.i.i48, align 8, !tbaa !1 %arrayidx.i.i.i49 = getelementptr inbounds i8, i8* %32, i64 -24 @@ -372,11 +372,11 @@ if.then.i.i.i52: ; preds = %_ZNSsD1Ev.exit if.then.i.i.i.i55: ; preds = %if.then.i.i.i52 %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast = bitcast i32* %.atomicdst.i.i.i.i.i46 to i8* - call void @llvm.lifetime.start(i64 4, i8* %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) %35 = atomicrmw volatile add i32* %34, i32 -1 acq_rel store i32 %35, i32* %.atomicdst.i.i.i.i.i46, align 4 %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i54 = load volatile i32, i32* %.atomicdst.i.i.i.i.i46, align 4 - call void @llvm.lifetime.end(i64 4, i8* %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast) br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60 if.else.i.i.i.i57: ; preds = %if.then.i.i.i52 @@ -395,7 +395,7 @@ if.then4.i.i.i61: ; preds = %_ZN9__gnu_cxxL27__e br label %_ZNSsD1Ev.exit62 _ZNSsD1Ev.exit62: ; preds = %_ZNSsD1Ev.exit, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60, %if.then4.i.i.i61 - call void @llvm.lifetime.end(i64 1, i8* %31) #3 + call void @llvm.lifetime.end.p0i8(i64 1, i8* %31) #3 br label %cleanup cond.false.i.i: ; preds = %_ZNK4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE8getErrorEv.exit @@ -438,10 +438,10 @@ _ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEED2Ev. } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #3 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #3 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #3 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #3 ; Function Attrs: noreturn nounwind declare void @__assert_fail(i8*, i8*, i32 zeroext, i8*) #4 diff --git a/llvm/test/CodeGen/SystemZ/stack-guard.ll b/llvm/test/CodeGen/SystemZ/stack-guard.ll index 0889e7ba941..2908cbe92bb 100644 --- a/llvm/test/CodeGen/SystemZ/stack-guard.ll +++ b/llvm/test/CodeGen/SystemZ/stack-guard.ll @@ -17,19 +17,19 @@ define i32 @test_stack_guard() #0 { entry: %a1 = alloca [256 x i32], align 4 %0 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %0) %arraydecay = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i64 0, i64 0 call void @foo3(i32* %arraydecay) - call void @llvm.lifetime.end(i64 1024, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %0) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { sspstrong } diff --git a/llvm/test/CodeGen/Thumb/PR17309.ll b/llvm/test/CodeGen/Thumb/PR17309.ll index f1033e7d741..8869537425b 100644 --- a/llvm/test/CodeGen/Thumb/PR17309.ll +++ b/llvm/test/CodeGen/Thumb/PR17309.ll @@ -11,9 +11,9 @@ define void @pass_C() #0 { entry: %c = alloca %struct.C, align 1 %0 = getelementptr inbounds %struct.C, %struct.C* %c, i32 0, i32 0, i32 0 - call void @llvm.lifetime.start(i64 1000, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 1000, i8* %0) #1 call void @use_C(%struct.C* byval %c) #3 - call void @llvm.lifetime.end(i64 1000, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 1000, i8* %0) #1 ret void } @@ -24,9 +24,9 @@ define void @pass_S() #0 { entry: %s = alloca %struct.S, align 2 %0 = bitcast %struct.S* %s to i8* - call void @llvm.lifetime.start(i64 2000, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 2000, i8* %0) #1 call void @use_S(%struct.S* byval %s) #3 - call void @llvm.lifetime.end(i64 2000, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 2000, i8* %0) #1 ret void } @@ -37,9 +37,9 @@ define void @pass_I() #0 { entry: %i = alloca %struct.I, align 4 %0 = bitcast %struct.I* %i to i8* - call void @llvm.lifetime.start(i64 4000, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4000, i8* %0) #1 call void @use_I(%struct.I* byval %i) #3 - call void @llvm.lifetime.end(i64 4000, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4000, i8* %0) #1 ret void } @@ -47,8 +47,8 @@ declare void @use_C(%struct.C* byval) #2 declare void @use_S(%struct.S* byval) #2 declare void @use_I(%struct.I* byval) #2 -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind optsize "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll b/llvm/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll index 97c66d9dc86..6678f68c4e8 100644 --- a/llvm/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll +++ b/llvm/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll @@ -12,18 +12,18 @@ entry: %0 = bitcast %deque* %var3 to i8* %1 = bitcast %iterator* %var1 to i8* - call void @llvm.lifetime.start(i64 16, i8* %1) nounwind + call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) nounwind call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %0, i32 16, i32 4, i1 false) - call void @llvm.lifetime.end(i64 16, i8* %1) nounwind + call void @llvm.lifetime.end.p0i8(i64 16, i8* %1) nounwind %2 = bitcast %insert_iterator* %var2 to i8* - call void @llvm.lifetime.start(i64 20, i8* %2) nounwind + call void @llvm.lifetime.start.p0i8(i64 20, i8* %2) nounwind ret i32 0 } declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/CodeGen/Thumb/stack_guard_remat.ll b/llvm/test/CodeGen/Thumb/stack_guard_remat.ll index 41edef5a58e..294c6a6bd45 100644 --- a/llvm/test/CodeGen/Thumb/stack_guard_remat.ll +++ b/llvm/test/CodeGen/Thumb/stack_guard_remat.ll @@ -27,20 +27,20 @@ define i32 @test_stack_guard_remat() #0 { %a1 = alloca [256 x i32], align 4 %1 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %1) %2 = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i32 0, i32 0 call void @foo3(i32* %2) #3 call void asm sideeffect "foo2", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{sp},~{lr}"() - call void @llvm.lifetime.end(i64 1024, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %1) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { nounwind ssp "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/Thumb2/ifcvt-rescan-bug-2016-08-22.ll b/llvm/test/CodeGen/Thumb2/ifcvt-rescan-bug-2016-08-22.ll index ae3084dcc62..65ee4283b3f 100644 --- a/llvm/test/CodeGen/Thumb2/ifcvt-rescan-bug-2016-08-22.ll +++ b/llvm/test/CodeGen/Thumb2/ifcvt-rescan-bug-2016-08-22.ll @@ -3,7 +3,7 @@ target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" target triple = "thumbv7-unknown-linux-gnueabihf" ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 ; Function Attrs: nounwind declare void @_ZNSaIcEC2Ev() unnamed_addr #0 align 2 @@ -25,7 +25,7 @@ define hidden void @_ZN4llvm14DOTGraphTraitsIPNS_13ScheduleDAGMIEE17getEdgeAttri br label %3 ; <label>:2: ; preds = %0 - call void @llvm.lifetime.start(i64 1, i8* undef) #0 + call void @llvm.lifetime.start.p0i8(i64 1, i8* undef) #0 call void @_ZNSaIcEC2Ev() #0 br label %3 diff --git a/llvm/test/CodeGen/Thumb2/stack_guard_remat.ll b/llvm/test/CodeGen/Thumb2/stack_guard_remat.ll index cf34e8c0c2f..839a506b35e 100644 --- a/llvm/test/CodeGen/Thumb2/stack_guard_remat.ll +++ b/llvm/test/CodeGen/Thumb2/stack_guard_remat.ll @@ -24,20 +24,20 @@ define i32 @test_stack_guard_remat() #0 { %a1 = alloca [256 x i32], align 4 %1 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %1) %2 = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i32 0, i32 0 call void @foo3(i32* %2) #3 call void asm sideeffect "foo2", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{sp},~{lr}"() - call void @llvm.lifetime.end(i64 1024, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %1) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { nounwind ssp "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/X86/StackColoring-dbg.ll b/llvm/test/CodeGen/X86/StackColoring-dbg.ll index 15be7aa1029..0ebd01d1c4e 100644 --- a/llvm/test/CodeGen/X86/StackColoring-dbg.ll +++ b/llvm/test/CodeGen/X86/StackColoring-dbg.ll @@ -15,16 +15,16 @@ entry: br label %for.body for.body: - call void @llvm.lifetime.end(i64 -1, i8* %0) nounwind - call void @llvm.lifetime.start(i64 -1, i8* %x.i) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %x.i) nounwind call void @llvm.dbg.declare(metadata i8* %x.i, metadata !22, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !2) br label %for.body } -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!23} diff --git a/llvm/test/CodeGen/X86/StackColoring.ll b/llvm/test/CodeGen/X86/StackColoring.ll index f974cdc30a2..93888c470e2 100644 --- a/llvm/test/CodeGen/X86/StackColoring.ll +++ b/llvm/test/CodeGen/X86/StackColoring.ll @@ -15,14 +15,14 @@ entry: %a2 = alloca [16 x i8*], align 8 %b = bitcast [17 x i8*]* %a to i8* %b2 = bitcast [16 x i8*]* %a2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) - call void @llvm.lifetime.end(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b2) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 @@ -40,22 +40,22 @@ entry: %a2 = alloca [16 x i8*], align 8 %b = bitcast [17 x i8*]* %a to i8* %b2 = bitcast [16 x i8*]* %a2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) - call void @llvm.lifetime.end(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b2) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) ret i32 %t7 bb3: - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) ret i32 0 } @@ -69,16 +69,16 @@ entry: %a2 = alloca [16 x i8*], align 8 %b = bitcast [17 x i8*]* %a to i8* %b2 = bitcast [16 x i8*]* %a2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) - call void @llvm.lifetime.end(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b2) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 @@ -102,21 +102,21 @@ entry: %b2 = bitcast [13 x i8*]* %a2 to i8* %b3 = bitcast [12 x i8*]* %a3 to i8* %b4 = bitcast [11 x i8*]* %a4 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b4) - call void @llvm.lifetime.start(i64 -1, i8* %b1) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b4) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b1) %t1 = call i32 @foo(i32 %in, i8* %b1) %t2 = call i32 @foo(i32 %in, i8* %b1) - call void @llvm.lifetime.end(i64 -1, i8* %b1) - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b1) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t9 = call i32 @foo(i32 %in, i8* %b2) %t8 = call i32 @foo(i32 %in, i8* %b2) - call void @llvm.lifetime.end(i64 -1, i8* %b2) - call void @llvm.lifetime.start(i64 -1, i8* %b3) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b3) %t3 = call i32 @foo(i32 %in, i8* %b3) %t4 = call i32 @foo(i32 %in, i8* %b3) - call void @llvm.lifetime.end(i64 -1, i8* %b3) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b3) %t11 = call i32 @foo(i32 %in, i8* %b4) - call void @llvm.lifetime.end(i64 -1, i8* %b4) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b4) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 @@ -137,23 +137,23 @@ entry: %b2 = bitcast [13 x i8*]* %a2 to i8* %b3 = bitcast [12 x i8*]* %a3 to i8* %b4 = bitcast [11 x i8*]* %a4 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b1) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b1) %t1 = call i32 @foo(i32 %in, i8* %b1) %t2 = call i32 @foo(i32 %in, i8* %b1) - call void @llvm.lifetime.end(i64 -1, i8* %b1) - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b1) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t9 = call i32 @foo(i32 %in, i8* %b2) %t8 = call i32 @foo(i32 %in, i8* %b2) - call void @llvm.lifetime.end(i64 -1, i8* %b2) - call void @llvm.lifetime.start(i64 -1, i8* %b3) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b3) %t3 = call i32 @foo(i32 %in, i8* %b3) %t4 = call i32 @foo(i32 %in, i8* %b3) - call void @llvm.lifetime.end(i64 -1, i8* %b3) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b3) br i1 undef, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b4) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b4) %t11 = call i32 @foo(i32 %in, i8* %b4) - call void @llvm.lifetime.end(i64 -1, i8* %b4) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b4) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 @@ -174,13 +174,13 @@ entry: %a2 = alloca [16 x i8*], align 8 %b = bitcast [17 x i8*]* %a to i8* %b2 = bitcast [16 x i8*]* %a2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) %t5 = add i32 %t1, %t2 @@ -200,13 +200,13 @@ entry: %a2 = alloca [16 x i8*], align 8 %b = bitcast [17 x i8*]* %a to i8* %b2 = bitcast [16 x i8*]* %a2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.end(i64 -1, i8* %b) - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) %t5 = add i32 %t1, %t2 @@ -229,10 +229,10 @@ entry: %b2 = bitcast [16 x i8*]* %a2 to i8* %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) %t5 = add i32 %t1, %t2 @@ -254,19 +254,19 @@ 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 @bar([100 x i32]* %A.i, [100 x i32]* %B.i) nounwind - 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 %2 = bitcast [100 x i32]* %A.i1 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %2) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2) nounwind %3 = bitcast [100 x i32]* %B.i2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %3) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3) nounwind call void @bar([100 x i32]* %A.i1, [100 x i32]* %B.i2) nounwind - call void @llvm.lifetime.end(i64 -1, i8* %2) nounwind - call void @llvm.lifetime.end(i64 -1, i8* %3) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3) nounwind ret void } @@ -281,7 +281,7 @@ entry: %b2 = bitcast [16 x i8*]* %a2 to i8* %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) br i1 %d, label %bb0, label %bb1 bb0: @@ -294,13 +294,13 @@ bb1: bb2: %split = phi i8* [ %I1, %bb0 ], [ %I2, %bb1 ] - call void @llvm.lifetime.start(i64 -1, i8* %split) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %split) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) %t5 = add i32 %t1, %t2 %t6 = add i32 %t3, %t4 %t7 = add i32 %t5, %t6 - call void @llvm.lifetime.end(i64 -1, i8* %split) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %split) ret i32 %t7 bb3: ret i32 0 @@ -318,21 +318,21 @@ 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 ; <---- start #1 + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0) nounwind ; <---- start #1 %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 @bar([100 x i32]* %A.i, [100 x i32]* %B.i) nounwind - 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 %2 = bitcast [100 x i32]* %A.i1 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %2) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %2) nounwind %3 = bitcast [100 x i32]* %B.i2 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %3) nounwind - call void @llvm.lifetime.start(i64 -1, i8* %0) nounwind ; <---- start #2 + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %3) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0) nounwind ; <---- start #2 call void @bar([100 x i32]* %A.i1, [100 x i32]* %B.i2) nounwind - call void @llvm.lifetime.end(i64 -1, i8* %2) nounwind - call void @llvm.lifetime.end(i64 -1, i8* %0) nounwind - call void @llvm.lifetime.end(i64 -1, i8* %3) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %2) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %3) nounwind ret void } @@ -344,11 +344,11 @@ entry: %b2 = bitcast [16 x i8*]* %a2 to i8* %t1 = call i32 @foo(i32 %in, i8* %b) %t2 = call i32 @foo(i32 %in, i8* %b) - call void @llvm.lifetime.end(i64 -1, i8* %b) - call void @llvm.lifetime.start(i64 -1, i8* %b) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b) br i1 %d, label %bb2, label %bb3 bb2: - call void @llvm.lifetime.start(i64 -1, i8* %b2) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %b2) %t3 = call i32 @foo(i32 %in, i8* %b2) %t4 = call i32 @foo(i32 %in, i8* %b2) %t5 = add i32 %t1, %t2 @@ -369,11 +369,11 @@ define void @myCall_pr15707() { %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) %result1 = call i32 @foo(i32 0, i8* %buf1) %result2 = call i32 @foo(i32 0, i8* %buf2) ret void @@ -390,12 +390,12 @@ 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 @bar([100 x i32]* %A.i, [100 x i32]* %B.i) nounwind - 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: @@ -418,13 +418,13 @@ define i32 @shady_range(i32 %argc, i8** nocapture %argv) uwtable { %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) %z3 = load i32, i32* %z2, align 16 %r = call i32 @foo(i32 %z3, i8* %a8) %r2 = call i32 @foo(i32 %z3, i8* %b8) - 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 9 } @@ -446,38 +446,38 @@ entry: %b4 = alloca [128 x i32], align 16 %b5 = alloca [128 x i32], align 16 %tmp = bitcast [128 x i32]* %b1 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp) %tmp1 = bitcast [128 x i32]* %b2 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp1) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp1) %and = and i32 %x, 1 %tobool = icmp eq i32 %and, 0 br i1 %tobool, label %if.else, label %if.then if.then: ; preds = %entry %tmp2 = bitcast [128 x i32]* %b3 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp2) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp2) %a1 = getelementptr inbounds [128 x i32], [128 x i32]* %b1, i64 0, i64 0 %a2 = getelementptr inbounds [128 x i32], [128 x i32]* %b3, i64 0, i64 0 call void @initb(i32* %a1, i32* %a2, i32* null) - call void @llvm.lifetime.end(i64 512, i8* %tmp2) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp2) br label %if.end if.else: ; preds = %entry %tmp3 = bitcast [128 x i32]* %b4 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp3) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp3) %tmp4 = bitcast [128 x i32]* %b5 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp4) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp4) %a3 = getelementptr inbounds [128 x i32], [128 x i32]* %b2, i64 0, i64 0 %a4 = getelementptr inbounds [128 x i32], [128 x i32]* %b4, i64 0, i64 0 %a5 = getelementptr inbounds [128 x i32], [128 x i32]* %b5, i64 0, i64 0 call void @initb(i32* %a3, i32* %a4, i32* %a5) #3 - call void @llvm.lifetime.end(i64 512, i8* %tmp4) - call void @llvm.lifetime.end(i64 512, i8* %tmp3) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp4) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp3) br label %if.end if.end: ; preds = %if.else, %if.then - call void @llvm.lifetime.end(i64 512, i8* %tmp1) - call void @llvm.lifetime.end(i64 512, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp1) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp) ret i32 0 } @@ -499,9 +499,9 @@ entry: %b2 = alloca [128 x i32], align 16 %b3 = alloca [128 x i32], align 16 %tmp = bitcast [128 x i32]* %b1 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp) #3 + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp) #3 %tmp1 = bitcast [128 x i32]* %b2 to i8* - call void @llvm.lifetime.start(i64 512, i8* %tmp1) #3 + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp1) #3 %and = and i32 %x, 1 %tobool = icmp eq i32 %and, 0 br i1 %tobool, label %if.else, label %if.then @@ -526,9 +526,9 @@ while.body.lr.ph: ; preds = %if.else while.body: ; preds = %while.body.lr.ph, %while.body %x.addr.06 = phi i32 [ %x, %while.body.lr.ph ], [ %dec, %while.body ] %dec = add nsw i32 %x.addr.06, -1 - call void @llvm.lifetime.start(i64 512, i8* %tmp2) #3 + call void @llvm.lifetime.start.p0i8(i64 512, i8* %tmp2) #3 call void @inita(i32* %arraydecay3) #3 - call void @llvm.lifetime.end(i64 512, i8* %tmp2) #3 + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp2) #3 %tobool2 = icmp eq i32 %dec, 0 br i1 %tobool2, label %if.end.loopexit, label %while.body @@ -536,8 +536,8 @@ if.end.loopexit: ; preds = %while.body br label %if.end if.end: ; preds = %if.end.loopexit, %if.else, %if.then - call void @llvm.lifetime.end(i64 512, i8* %tmp1) #3 - call void @llvm.lifetime.end(i64 512, i8* %tmp) #3 + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp1) #3 + call void @llvm.lifetime.end.p0i8(i64 512, i8* %tmp) #3 ret i32 0 } @@ -556,25 +556,25 @@ entry: %buffer.i = alloca [12 x i32], align 16 %abc = alloca [12 x i32], align 16 %tmp = bitcast [12 x i32]* %buffer.i to i8* - call void @llvm.lifetime.start(i64 48, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 48, i8* %tmp) %idxprom.i = sext i32 %y to i64 %arrayidx.i = getelementptr inbounds [12 x i32], [12 x i32]* %buffer.i, i64 0, i64 %idxprom.i call void @inita(i32* %arrayidx.i) %add.i = add nsw i32 %x, %y - call void @llvm.lifetime.end(i64 48, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 48, i8* %tmp) %tobool = icmp eq i32 %y, 0 br i1 %tobool, label %if.end, label %if.then if.then: ; preds = %entry %tmp1 = bitcast [12 x i32]* %abc to i8* - call void @llvm.lifetime.start(i64 48, i8* %tmp1) + call void @llvm.lifetime.start.p0i8(i64 48, i8* %tmp1) %arrayidx = getelementptr inbounds [12 x i32], [12 x i32]* %abc, i64 0, i64 %idxprom.i call void @inita(i32* %arrayidx) - call void @llvm.lifetime.start(i64 48, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 48, i8* %tmp) call void @inita(i32* %arrayidx.i) %add.i9 = add nsw i32 %add.i, %y - call void @llvm.lifetime.end(i64 48, i8* %tmp) - call void @llvm.lifetime.end(i64 48, i8* %tmp1) + call void @llvm.lifetime.end.p0i8(i64 48, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 48, i8* %tmp1) br label %if.end if.end: ; preds = %if.then, %entry @@ -588,8 +588,8 @@ declare void @initb(i32*,i32*,i32*) declare void @bar([100 x i32]* , [100 x i32]*) nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind declare i32 @foo(i32, i8*) diff --git a/llvm/test/CodeGen/X86/avx-vbroadcast.ll b/llvm/test/CodeGen/X86/avx-vbroadcast.ll index 37b8753097c..41ea2a8c367 100644 --- a/llvm/test/CodeGen/X86/avx-vbroadcast.ll +++ b/llvm/test/CodeGen/X86/avx-vbroadcast.ll @@ -878,15 +878,15 @@ define float @broadcast_lifetime() nounwind { %3 = bitcast <4 x float>* %1 to i8* %4 = bitcast <4 x float>* %2 to i8* - call void @llvm.lifetime.start(i64 16, i8* %3) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) call void @gfunc(<4 x float>* %1) %5 = load <4 x float>, <4 x float>* %1, align 16 - call void @llvm.lifetime.end(i64 16, i8* %3) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) - call void @llvm.lifetime.start(i64 16, i8* %4) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %4) call void @gfunc(<4 x float>* %2) %6 = load <4 x float>, <4 x float>* %2, align 16 - call void @llvm.lifetime.end(i64 16, i8* %4) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %4) %7 = extractelement <4 x float> %5, i32 1 %8 = extractelement <4 x float> %6, i32 1 @@ -895,5 +895,5 @@ define float @broadcast_lifetime() nounwind { } declare void @gfunc(<4 x float>*) -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) diff --git a/llvm/test/CodeGen/X86/catchpad-lifetime.ll b/llvm/test/CodeGen/X86/catchpad-lifetime.ll index 77d3f25057c..d85adec360c 100644 --- a/llvm/test/CodeGen/X86/catchpad-lifetime.ll +++ b/llvm/test/CodeGen/X86/catchpad-lifetime.ll @@ -26,9 +26,9 @@ catch.pad: ; preds = %catch.dispatch %cp = catchpad within %cs [i8* null, i32 0, i8** %alloca1] store volatile i8* null, i8** %alloca1 %bc1 = bitcast i8** %alloca1 to i8* - call void @llvm.lifetime.end(i64 4, i8* nonnull %bc1) + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %bc1) %bc2 = bitcast i8** %alloca2 to i8* - call void @llvm.lifetime.start(i64 4, i8* %bc2) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %bc2) store volatile i8* null, i8** %alloca1 unreachable @@ -63,9 +63,9 @@ catch.pad: ; preds = %catch.dispatch %cp = catchpad within %cs [i8* null, i32 0, i8** null] store volatile i8* null, i8** %alloca1 %bc1 = bitcast i8** %alloca1 to i8* - call void @llvm.lifetime.end(i64 4, i8* nonnull %bc1) + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %bc1) %bc2 = bitcast i8** %alloca2 to i8* - call void @llvm.lifetime.start(i64 4, i8* %bc2) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %bc2) store volatile i8* null, i8** %alloca1 unreachable @@ -83,9 +83,9 @@ unreachable: ; preds = %entry ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 attributes #0 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/X86/catchpad-weight.ll b/llvm/test/CodeGen/X86/catchpad-weight.ll index 60939bc6b03..6caf0c6012f 100644 --- a/llvm/test/CodeGen/X86/catchpad-weight.ll +++ b/llvm/test/CodeGen/X86/catchpad-weight.ll @@ -26,7 +26,7 @@ define i32 @main() #0 personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to entry: %o = alloca %struct.HasDtor, align 1 %0 = getelementptr inbounds %struct.HasDtor, %struct.HasDtor* %o, i64 0, i32 0 - call void @llvm.lifetime.start(i64 1, i8* %0) #4 + call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) #4 invoke void @"\01?may_throw@@YAXXZ"() to label %try.cont unwind label %catch.dispatch @@ -39,7 +39,7 @@ catch.5: ; preds = %catch.dispatch try.cont: ; preds = %entry, %catch, %catch.3, %catch.5 call void @"\01??1HasDtor@@QEAA@XZ"(%struct.HasDtor* nonnull %o) #4 - call void @llvm.lifetime.end(i64 1, i8* %0) #4 + call void @llvm.lifetime.end.p0i8(i64 1, i8* %0) #4 ret i32 0 catch.dispatch.1: ; preds = %catch.dispatch @@ -63,7 +63,7 @@ ehcleanup: ; preds = %catchendblock } ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @"\01?may_throw@@YAXXZ"() #2 @@ -73,7 +73,7 @@ declare i32 @__CxxFrameHandler3(...) declare void @"\01??1HasDtor@@QEAA@XZ"(%struct.HasDtor*) #3 ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { nounwind argmemonly } diff --git a/llvm/test/CodeGen/X86/crash.ll b/llvm/test/CodeGen/X86/crash.ll index a95b84d4c3b..4bdb2ddfab6 100644 --- a/llvm/test/CodeGen/X86/crash.ll +++ b/llvm/test/CodeGen/X86/crash.ll @@ -314,9 +314,9 @@ declare %t14* @_ZN4llvm9MCContext16CreateTempSymbolEv(%t2*) declare void @_ZNSt6vectorIN4llvm11MachineMoveESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_(%t10*, %t21* byval align 4, %t13*) -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind ; PR10463 ; Spilling a virtual register with <undef> uses. diff --git a/llvm/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll b/llvm/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll index 7968777b0d8..7a19dd2a98d 100644 --- a/llvm/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll +++ b/llvm/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll @@ -65,13 +65,13 @@ if.then: ; preds = %entry if.end: ; preds = %entry, %if.then %0 = getelementptr inbounds %struct.AAA3, %struct.AAA3* %var1, i64 0, i32 0, i64 0, !dbg !56 - call void @llvm.lifetime.start(i64 4, i8* %0) #4, !dbg !56 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #4, !dbg !56 tail call void @llvm.dbg.value(metadata %struct.AAA3* %var1, i64 0, metadata !32, metadata !57), !dbg !58 tail call void @llvm.dbg.value(metadata %struct.AAA3* %var1, i64 0, metadata !36, metadata !46), !dbg !59 tail call void @llvm.dbg.value(metadata i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), i64 0, metadata !38, metadata !46), !dbg !62 call void @_Z3fooPcjPKc(i8* %0, i32 4, i8* nonnull getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0)), !dbg !63 %1 = getelementptr inbounds %struct.AAA3, %struct.AAA3* %var2, i64 0, i32 0, i64 0, !dbg !65 - call void @llvm.lifetime.start(i64 4, i8* %1) #4, !dbg !65 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #4, !dbg !65 call void @llvm.dbg.value(metadata %struct.AAA3* %var2, i64 0, metadata !33, metadata !57), !dbg !66 call void @llvm.dbg.value(metadata %struct.AAA3* %var2, i64 0, metadata !36, metadata !46), !dbg !67 call void @llvm.dbg.value(metadata i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), i64 0, metadata !38, metadata !46), !dbg !69 @@ -96,18 +96,18 @@ if.end3: ; preds = %if.else, %if.then2 call void @llvm.dbg.value(metadata %struct.AAA3* %var1, i64 0, metadata !41, metadata !46), !dbg !82 call void @llvm.dbg.value(metadata i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), i64 0, metadata !42, metadata !46), !dbg !84 call void @_Z3fooPcjPKc(i8* %0, i32 4, i8* nonnull getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0)), !dbg !85 - call void @llvm.lifetime.end(i64 4, i8* %1) #4, !dbg !86 - call void @llvm.lifetime.end(i64 4, i8* %0) #4, !dbg !87 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %1) #4, !dbg !86 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #4, !dbg !87 ret void, !dbg !86 } ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare i8* @_Z5i2stri(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 declare void @_Z3fooPcjPKc(i8*, i32, i8*) #2 diff --git a/llvm/test/CodeGen/X86/dynamic-alloca-lifetime.ll b/llvm/test/CodeGen/X86/dynamic-alloca-lifetime.ll index 034b074ef9b..996eec05163 100644 --- a/llvm/test/CodeGen/X86/dynamic-alloca-lifetime.ll +++ b/llvm/test/CodeGen/X86/dynamic-alloca-lifetime.ll @@ -10,10 +10,10 @@ target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" target triple = "i386-apple-macosx10.10.0" ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 ; Function Attrs: ssp define void @foo(i1 %cond1, i1 %cond2) #1 { @@ -30,11 +30,11 @@ end1: if.else130: ; preds = %bb1 %tmp = getelementptr inbounds [8192 x i8], [8192 x i8]* %bitmapBuffer, i32 0, i32 0 - call void @llvm.lifetime.start(i64 8192, i8* %tmp) #0 - call void @llvm.lifetime.end(i64 8192, i8* %tmp) #0 + call void @llvm.lifetime.start.p0i8(i64 8192, i8* %tmp) #0 + call void @llvm.lifetime.end.p0i8(i64 8192, i8* %tmp) #0 %tmp25 = getelementptr inbounds [8192 x i8], [8192 x i8]* %bitmapBuffer229, i32 0, i32 0 - call void @llvm.lifetime.start(i64 8192, i8* %tmp25) #0 - call void @llvm.lifetime.end(i64 8192, i8* %tmp25) #0 + call void @llvm.lifetime.start.p0i8(i64 8192, i8* %tmp25) #0 + call void @llvm.lifetime.end.p0i8(i64 8192, i8* %tmp25) #0 br label %end1 } diff --git a/llvm/test/CodeGen/X86/fast-isel-deadcode.ll b/llvm/test/CodeGen/X86/fast-isel-deadcode.ll index 0a53d60f835..5381dc4858a 100644 --- a/llvm/test/CodeGen/X86/fast-isel-deadcode.ll +++ b/llvm/test/CodeGen/X86/fast-isel-deadcode.ll @@ -83,7 +83,7 @@ entry: %tmp = alloca { <2 x float>, float }, align 8 store i32 0, i32* %retval, align 4 %0 = bitcast %struct.FVector* %v to i8* - call void @llvm.lifetime.start(i64 12, i8* %0) nounwind + call void @llvm.lifetime.start.p0i8(i64 12, i8* %0) nounwind %x.i = getelementptr inbounds %struct.FVector, %struct.FVector* %v, i64 0, i32 0 store float 1.000000e+00, float* %x.i, align 4 %y.i = getelementptr inbounds %struct.FVector, %struct.FVector* %v, i64 0, i32 1 @@ -136,12 +136,12 @@ func.exit: ; preds = %if.then.i, %if.else.i, %if.end.5.i %5 = bitcast %struct.FVector* %ref.tmp to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 12, i32 4, i1 false) %6 = bitcast %struct.FVector* %v to i8* - call void @llvm.lifetime.end(i64 12, i8* %6) nounwind + call void @llvm.lifetime.end.p0i8(i64 12, i8* %6) nounwind ret i32 0 } -declare void @llvm.lifetime.start(i64, i8* nocapture) argmemonly nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) argmemonly nounwind declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) argmemonly nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) argmemonly nounwind diff --git a/llvm/test/CodeGen/X86/fast-isel.ll b/llvm/test/CodeGen/X86/fast-isel.ll index 36183e48c29..375814c8afc 100644 --- a/llvm/test/CodeGen/X86/fast-isel.ll +++ b/llvm/test/CodeGen/X86/fast-isel.ll @@ -107,12 +107,12 @@ define void @crash_test1() nounwind ssp { ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind define i64* @life() nounwind { %a1 = alloca i64*, align 8 %a2 = bitcast i64** %a1 to i8* - call void @llvm.lifetime.start(i64 -1, i8* %a2) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a2) nounwind %a3 = load i64*, i64** %a1, align 8 ret i64* %a3 } diff --git a/llvm/test/CodeGen/X86/load-slice.ll b/llvm/test/CodeGen/X86/load-slice.ll index 2f90f819d47..7e68f837449 100644 --- a/llvm/test/CodeGen/X86/load-slice.ll +++ b/llvm/test/CodeGen/X86/load-slice.ll @@ -73,10 +73,10 @@ entry: declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #1 ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) ; Check that we do not read outside of the chunk of bits of the original loads. ; diff --git a/llvm/test/CodeGen/X86/local_stack_symbol_ordering.ll b/llvm/test/CodeGen/X86/local_stack_symbol_ordering.ll index 1893eeec2f1..1cd4d6c26c3 100644 --- a/llvm/test/CodeGen/X86/local_stack_symbol_ordering.ll +++ b/llvm/test/CodeGen/X86/local_stack_symbol_ordering.ll @@ -115,21 +115,21 @@ entry: %d = alloca i32, align 4 %aaa = alloca [1000 x i32], align 16 %0 = bitcast i32* %f to i8* - call void @llvm.lifetime.start(i64 4, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #1 %1 = bitcast [30 x i32]* %a to i8* - call void @llvm.lifetime.start(i64 120, i8* %1) #1 + call void @llvm.lifetime.start.p0i8(i64 120, i8* %1) #1 %2 = bitcast [1000 x i32]* %aa to i8* - call void @llvm.lifetime.start(i64 4000, i8* %2) #1 + call void @llvm.lifetime.start.p0i8(i64 4000, i8* %2) #1 %3 = bitcast i32* %e to i8* - call void @llvm.lifetime.start(i64 4, i8* %3) #1 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #1 %4 = bitcast [1000 x i32]* %cc to i8* - call void @llvm.lifetime.start(i64 4000, i8* %4) #1 + call void @llvm.lifetime.start.p0i8(i64 4000, i8* %4) #1 %5 = bitcast i32* %b to i8* - call void @llvm.lifetime.start(i64 4, i8* %5) #1 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %5) #1 %6 = bitcast i32* %d to i8* - call void @llvm.lifetime.start(i64 4, i8* %6) #1 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) #1 %7 = bitcast [1000 x i32]* %aaa to i8* - call void @llvm.lifetime.start(i64 4000, i8* %7) #1 + call void @llvm.lifetime.start.p0i8(i64 4000, i8* %7) #1 %call = call i32 ([30 x i32]*, ...) bitcast (i32 (...)* @check_a to i32 ([30 x i32]*, ...)*)([30 x i32]* %a) %call1 = call i32 ([1000 x i32]*, ...) bitcast (i32 (...)* @bar1 to i32 ([1000 x i32]*, ...)*)([1000 x i32]* %aaa) call void asm sideeffect "", "~{esi},~{edi},~{ebp},~{ebx},~{rbx},~{r12},~{r13},~{r14},~{r15},~{rbp},~{dirflag},~{fpsr},~{flags}"() #1 @@ -156,19 +156,19 @@ entry: %call15 = call i32 (i32*, i32*, i32*, ...) bitcast (i32 (...)* @bar3 to i32 (i32*, i32*, i32*, ...)*)(i32* %d, i32* %e, i32* %f) call void asm sideeffect "", "~{esi},~{edi},~{ebp},~{ebx},~{rbx},~{r12},~{r13},~{r14},~{r15},~{rbp},~{dirflag},~{fpsr},~{flags}"() #1 %call16 = call i32 ([30 x i32]*, ...) bitcast (i32 (...)* @bar1 to i32 ([30 x i32]*, ...)*)([30 x i32]* %a) - call void @llvm.lifetime.end(i64 4000, i8* %7) #1 - call void @llvm.lifetime.end(i64 4, i8* %6) #1 - call void @llvm.lifetime.end(i64 4, i8* %5) #1 - call void @llvm.lifetime.end(i64 4000, i8* %4) #1 - call void @llvm.lifetime.end(i64 4, i8* %3) #1 - call void @llvm.lifetime.end(i64 4000, i8* %2) #1 - call void @llvm.lifetime.end(i64 120, i8* %1) #1 - call void @llvm.lifetime.end(i64 4, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4000, i8* %7) #1 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #1 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #1 + call void @llvm.lifetime.end.p0i8(i64 4000, i8* %4) #1 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %3) #1 + call void @llvm.lifetime.end.p0i8(i64 4000, i8* %2) #1 + call void @llvm.lifetime.end.p0i8(i64 120, i8* %1) #1 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) #1 ret void } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare i32 @check_a(...) #2 declare i32 @bar1(...) #2 @@ -180,5 +180,5 @@ declare i32 @check_e(...) #2 declare i32 @check_d(...) #2 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 diff --git a/llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll b/llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll index 5b7c5445316..6369ee4eb0e 100644 --- a/llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll +++ b/llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll @@ -31,7 +31,7 @@ if.end: %add.i = fadd fast float %add, %n0 store float %add.i, float* undef, align 4 %n1 = bitcast %struct.A* %i to i8* - call void @llvm.lifetime.start(i64 16, i8* %n1) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %n1) %n2 = load <2 x float>, <2 x float>* undef, align 8 %conv = uitofp i1 %tobool to float %bitcast = extractelement <2 x float> %n2, i32 0 @@ -45,7 +45,7 @@ if.end: declare void @bar(float) declare void @foo(%struct.A*) -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @llvm.dbg.value(metadata, i64, metadata, metadata) !llvm.dbg.cu = !{!0} diff --git a/llvm/test/CodeGen/X86/misched-aa-colored.ll b/llvm/test/CodeGen/X86/misched-aa-colored.ll index 9f8f3a946e6..e118b00fd09 100644 --- a/llvm/test/CodeGen/X86/misched-aa-colored.ll +++ b/llvm/test/CodeGen/X86/misched-aa-colored.ll @@ -143,10 +143,10 @@ declare { %"class.llvm::SDNode.10.610.970.1930.2050.2290.4090"*, i32 } @_ZN4llvm declare void @__assert_fail(i8*, i8*, i32, i8*) #0 ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind uwtable define hidden { %"class.llvm::SDNode.10.610.970.1930.2050.2290.4090"*, i32 } @_ZN4llvm16DAGTypeLegalizer18WidenVecRes_BinaryEPNS_6SDNodeE(%"class.llvm::DAGTypeLegalizer.117.717.1077.2037.2157.2397.4197"* %this, %"class.llvm::SDNode.10.610.970.1930.2050.2290.4090"* %N) #2 align 2 { @@ -155,13 +155,13 @@ entry: %ref.tmp.i = alloca %"struct.std::pair.112.119.719.1079.2039.2159.2399.4199", align 8 %Op.i = alloca %"class.llvm::SDValue.3.603.963.1923.2043.2283.4083", align 8 %0 = bitcast %"struct.std::pair.112.119.719.1079.2039.2159.2399.4199"* %ref.tmp.i to i8* - call void @llvm.lifetime.start(i64 24, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 24, i8* %0) #1 %retval.sroa.0.0.idx.i36 = getelementptr inbounds %"struct.std::pair.112.119.719.1079.2039.2159.2399.4199", %"struct.std::pair.112.119.719.1079.2039.2159.2399.4199"* %ref.tmp.i, i64 0, i32 1, i32 0, i32 0 %retval.sroa.0.0.copyload.i37 = load i32, i32* %retval.sroa.0.0.idx.i36, align 8 - call void @llvm.lifetime.end(i64 24, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 24, i8* %0) #1 %agg.tmp8.sroa.2.0.copyload = load i32, i32* undef, align 8 %1 = bitcast %"class.llvm::SDValue.3.603.963.1923.2043.2283.4083"* %Op.i to i8* - call void @llvm.lifetime.start(i64 16, i8* %1) #1 + call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) #1 %2 = getelementptr %"class.llvm::SDValue.3.603.963.1923.2043.2283.4083", %"class.llvm::SDValue.3.603.963.1923.2043.2283.4083"* %Op.i, i64 0, i32 1 store i32 %agg.tmp8.sroa.2.0.copyload, i32* %2, align 8 diff --git a/llvm/test/CodeGen/X86/stack-align.ll b/llvm/test/CodeGen/X86/stack-align.ll index 04bae023984..192306462d1 100644 --- a/llvm/test/CodeGen/X86/stack-align.ll +++ b/llvm/test/CodeGen/X86/stack-align.ll @@ -69,10 +69,10 @@ entry: define x86_stdcallcc void @test5(%struct.sixteen* byval nocapture readonly align 4 %s) #0 { %d.sroa.0 = alloca [16 x i8], align 1 %1 = getelementptr inbounds [16 x i8], [16 x i8]* %d.sroa.0, i32 0, i32 0 - call void @llvm.lifetime.start(i64 16, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) %2 = getelementptr inbounds %struct.sixteen, %struct.sixteen* %s, i32 0, i32 0, i32 0 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 16, i32 1, i1 true) - call void @llvm.lifetime.end(i64 16, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %1) ret void ; CHECK-LABEL: test5: ; CHECK: and @@ -82,10 +82,10 @@ define x86_stdcallcc void @test5(%struct.sixteen* byval nocapture readonly align ; CHECK-NEXT: movsd } -declare void @llvm.lifetime.start(i64, i8* nocapture) argmemonly nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) argmemonly nounwind declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1) argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) argmemonly nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) argmemonly nounwind attributes #0 = { nounwind alignstack=16 "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" } diff --git a/llvm/test/CodeGen/X86/stack-protector-weight.ll b/llvm/test/CodeGen/X86/stack-protector-weight.ll index 58c6c713941..d5a65ffb890 100644 --- a/llvm/test/CodeGen/X86/stack-protector-weight.ll +++ b/llvm/test/CodeGen/X86/stack-protector-weight.ll @@ -31,20 +31,20 @@ define i32 @test_branch_weights(i32 %n) #0 { entry: %a = alloca [128 x i32], align 16 %0 = bitcast [128 x i32]* %a to i8* - call void @llvm.lifetime.start(i64 512, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 512, i8* %0) %arraydecay = getelementptr inbounds [128 x i32], [128 x i32]* %a, i64 0, i64 0 call void @foo2(i32* %arraydecay) %idxprom = sext i32 %n to i64 %arrayidx = getelementptr inbounds [128 x i32], [128 x i32]* %a, i64 0, i64 %idxprom %1 = load i32, i32* %arrayidx, align 4 - call void @llvm.lifetime.end(i64 512, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 512, i8* %0) ret i32 %1 } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo2(i32*) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { sspstrong "stack-protector-buffer-size"="8" } diff --git a/llvm/test/CodeGen/X86/stack_guard_remat.ll b/llvm/test/CodeGen/X86/stack_guard_remat.ll index d38c68a8a5b..cc3cd6b0801 100644 --- a/llvm/test/CodeGen/X86/stack_guard_remat.ll +++ b/llvm/test/CodeGen/X86/stack_guard_remat.ll @@ -9,20 +9,20 @@ define i32 @test_stack_guard_remat() #0 { entry: %a1 = alloca [256 x i32], align 16 %0 = bitcast [256 x i32]* %a1 to i8* - call void @llvm.lifetime.start(i64 1024, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %0) %arraydecay = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i64 0, i64 0 call void @foo3(i32* %arraydecay) call void asm sideeffect "foo2", "~{r12},~{r13},~{r14},~{r15},~{ebx},~{esi},~{edi},~{dirflag},~{fpsr},~{flags}"() - call void @llvm.lifetime.end(i64 1024, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %0) ret i32 0 } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @foo3(i32*) ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/CodeGen/X86/unused_stackslots.ll b/llvm/test/CodeGen/X86/unused_stackslots.ll index 0bb904130f1..82fd3db1ccb 100644 --- a/llvm/test/CodeGen/X86/unused_stackslots.ll +++ b/llvm/test/CodeGen/X86/unused_stackslots.ll @@ -24,7 +24,7 @@ define i32 @fn() #0 { entry: %n = alloca [8 x [8 x i32]], align 16 %tmp = bitcast [8 x [8 x i32]]* %n to i8* - call void @llvm.lifetime.start(i64 256, i8* %tmp) #3 + call void @llvm.lifetime.start.p0i8(i64 256, i8* %tmp) #3 %tmp1 = bitcast [8 x [8 x i32]]* %n to i8* %arraydecay.1 = getelementptr inbounds [8 x [8 x i32]], [8 x [8 x i32]]* %n, i64 0, i64 1, i64 0 %tmp2 = bitcast i32* %arraydecay.1 to i8* @@ -222,12 +222,12 @@ for.inc73: ; preds = %for.body61.preheade for.end75: ; preds = %for.inc73 %m.4.lcssa = phi i32 [ %m.4, %for.inc73 ] - call void @llvm.lifetime.end(i64 256, i8* %tmp) #3 + call void @llvm.lifetime.end.p0i8(i64 256, i8* %tmp) #3 ret i32 %m.4.lcssa } ; 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 @LumaPrediction4x4(i32, i32, i32, i32, i32, i16 signext, i16 signext) #2 @@ -237,7 +237,7 @@ declare i32 @distortion4x4(i32*) #2 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #1 ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { argmemonly nounwind } diff --git a/llvm/test/CodeGen/X86/unwindraise.ll b/llvm/test/CodeGen/X86/unwindraise.ll index fb8319b63c2..db39f4ed455 100644 --- a/llvm/test/CodeGen/X86/unwindraise.ll +++ b/llvm/test/CodeGen/X86/unwindraise.ll @@ -123,7 +123,7 @@ while.end: ; preds = %if.then4 store i64 %16, i64* %private_2, align 8 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %3, i64 240, i32 8, i1 false) %17 = bitcast %struct._Unwind_FrameState* %fs.i to i8* - call void @llvm.lifetime.start(i64 -1, i8* %17) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %17) %personality.i = getelementptr inbounds %struct._Unwind_FrameState, %struct._Unwind_FrameState* %fs.i, i64 0, i32 6 %retaddr_column.i22 = getelementptr inbounds %struct._Unwind_FrameState, %struct._Unwind_FrameState* %fs.i, i64 0, i32 9 br label %while.body.i @@ -211,7 +211,7 @@ uw_update_context.exit44: ; preds = %if.then10.i.i.i40, br label %while.body.i do.body19: ; preds = %if.then3.i - call void @llvm.lifetime.end(i64 -1, i8* %17) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %17) %call20 = call fastcc i64 @uw_install_context_1(%struct._Unwind_Context* %this_context, %struct._Unwind_Context* %cur_context) %32 = load i8*, i8** %ra.i, align 8 call void @llvm.eh.return.i64(i64 %call20, i8* %32) @@ -242,6 +242,6 @@ declare void @llvm.eh.return.i64(i64, i8*) nounwind declare fastcc void @uw_update_context_1(%struct._Unwind_Context*, %struct._Unwind_FrameState* nocapture) uwtable -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/CodeGen/X86/x32-va_start.ll b/llvm/test/CodeGen/X86/x32-va_start.ll index a4846888050..7202a3fb4cd 100644 --- a/llvm/test/CodeGen/X86/x32-va_start.ll +++ b/llvm/test/CodeGen/X86/x32-va_start.ll @@ -24,7 +24,7 @@ define i32 @foo(float %a, i8* nocapture readnone %fmt, ...) nounwind { entry: %ap = alloca [1 x %struct.__va_list_tag], align 16 %0 = bitcast [1 x %struct.__va_list_tag]* %ap to i8* - call void @llvm.lifetime.start(i64 16, i8* %0) #2 + call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) #2 call void @llvm.va_start(i8* %0) ; SSE: subl $72, %esp ; SSE: testb %al, %al @@ -79,14 +79,14 @@ vaarg.end: ; preds = %vaarg.in_mem, %vaar %vaarg.addr = bitcast i8* %vaarg.addr.in to i32* %4 = load i32, i32* %vaarg.addr, align 4 call void @llvm.va_end(i8* %0) - call void @llvm.lifetime.end(i64 16, i8* %0) #2 + call void @llvm.lifetime.end.p0i8(i64 16, i8* %0) #2 ret i32 %4 ; SSE: movl ([[ADDR]]), %eax ; SSE: retq } ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind ; Function Attrs: nounwind declare void @llvm.va_start(i8*) nounwind @@ -95,5 +95,5 @@ declare void @llvm.va_start(i8*) nounwind declare void @llvm.va_end(i8*) nounwind ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/Instrumentation/AddressSanitizer/lifetime-throw.ll b/llvm/test/Instrumentation/AddressSanitizer/lifetime-throw.ll index 6d0cbd9ad5a..ff03d10c7c5 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/lifetime-throw.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/lifetime-throw.ll @@ -23,7 +23,7 @@ entry: ; Poison memory in prologue: F1F1F1F1F8F3F3F3 ; CHECK: store i64 -868082052615769615, i64* %{{[0-9]+}} - call void @llvm.lifetime.start(i64 4, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) ; CHECK: store i8 4, i8* %{{[0-9]+}} ; CHECK-NEXT: @llvm.lifetime.start @@ -37,7 +37,7 @@ lpad: %1 = landingpad { i8*, i32 } cleanup call void @_ZN3ABCD2Ev(%struct.ABC* nonnull %x) - call void @llvm.lifetime.end(i64 4, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: @llvm.lifetime.end @@ -77,7 +77,7 @@ entry: ; Poison memory in prologue: F1F1F1F1F8F304F2 ; CHECK: store i64 -935355671561244175, i64* %{{[0-9]+}} - call void @llvm.lifetime.start(i64 4, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) ; CHECK: store i8 4, i8* %{{[0-9]+}} ; CHECK-NEXT: @llvm.lifetime.start @@ -90,7 +90,7 @@ entry: ehcleanup: %2 = cleanuppad within none [] call void @"\01??1ABC@@QEAA@XZ"(%struct.ABC* nonnull %x) [ "funclet"(token %2) ] - call void @llvm.lifetime.end(i64 4, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %0) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: @llvm.lifetime.end @@ -104,8 +104,8 @@ unreachable: declare i32 @__gxx_personality_v0(...) -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 @__cxa_throw(i8*, i8*, i8*) local_unnamed_addr declare i8* @__cxa_allocate_exception(i64) local_unnamed_addr declare void @_ZN3ABCD2Ev(%struct.ABC* %this) unnamed_addr diff --git a/llvm/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll b/llvm/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll index 93708e350fa..437b6a94185 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll @@ -6,8 +6,8 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind define i32 @basic_test() sanitize_address { ; CHECK-LABEL: define i32 @basic_test() @@ -19,14 +19,14 @@ entry: ; Memory is poisoned in prologue: F1F1F1F104F3F8F2 ; CHECK-UAS: store i64 -866676825215864335, i64* %{{[0-9]+}} - call void @llvm.lifetime.start(i64 1, i8* %c) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %c) ; Memory is unpoisoned at llvm.lifetime.start: 01 ; CHECK-UAS: store i8 1, i8* %{{[0-9]+}} store volatile i32 0, i32* %retval store volatile i8 0, i8* %c, align 1 - call void @llvm.lifetime.end(i64 1, i8* %c) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %c) ; Memory is poisoned at llvm.lifetime.end: F8 ; CHECK-UAS: store i8 -8, i8* %{{[0-9]+}} diff --git a/llvm/test/Instrumentation/AddressSanitizer/lifetime.ll b/llvm/test/Instrumentation/AddressSanitizer/lifetime.ll index be72124f3ab..b951afdc670 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/lifetime.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/lifetime.ll @@ -5,8 +5,8 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind define void @lifetime_no_size() sanitize_address { ; CHECK-LABEL: define void @lifetime_no_size() @@ -17,7 +17,7 @@ entry: ; Poison memory in prologue: F1F1F1F104F3F3F3 ; CHECK: store i64 -868083100587789839, i64* %{{[0-9]+}} - call void @llvm.lifetime.start(i64 -1, i8* %i.ptr) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %i.ptr) ; Check that lifetime with no size are ignored. ; CHECK-NOT: store ; CHECK: call void @llvm.lifetime.start @@ -25,7 +25,7 @@ entry: store volatile i8 0, i8* %i.ptr ; CHECK: store volatile - call void @llvm.lifetime.end(i64 -1, i8* %i.ptr) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %i.ptr) ; Check that lifetime with no size are ignored. ; CHECK-NOT: store ; CHECK: call void @llvm.lifetime.end @@ -48,19 +48,19 @@ define void @lifetime() sanitize_address { ; CHECK: store i64 -868082052615769615, i64* %{{[0-9]+}} ; Memory is unpoisoned at llvm.lifetime.start - call void @llvm.lifetime.start(i64 3, i8* %i.ptr) + call void @llvm.lifetime.start.p0i8(i64 3, i8* %i.ptr) ; CHECK: store i8 4, i8* %{{[0-9]+}} ; CHECK-NEXT: llvm.lifetime.start store volatile i8 0, i8* %i.ptr ; CHECK: store volatile - call void @llvm.lifetime.end(i64 4, i8* %i.ptr) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %i.ptr) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: call void @llvm.lifetime.end ; Memory is poisoned at every call to llvm.lifetime.end - call void @llvm.lifetime.end(i64 2, i8* %i.ptr) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %i.ptr) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: call void @llvm.lifetime.end @@ -68,26 +68,26 @@ define void @lifetime() sanitize_address { %arr = alloca [10 x i32], align 16 %arr.ptr = bitcast [10 x i32]* %arr to i8* - call void @llvm.lifetime.start(i64 40, i8* %arr.ptr) + call void @llvm.lifetime.start.p0i8(i64 40, i8* %arr.ptr) ; CHECK-DEFAULT: call void @__asan_unpoison_stack_memory(i64 %{{[^ ]+}}, i64 40) ; CHECK-NO-DYNAMIC-NOT: call void @__asan_unpoison_stack_memory(i64 %{{[^ ]+}}, i64 40) store volatile i8 0, i8* %arr.ptr ; CHECK: store volatile - call void @llvm.lifetime.end(i64 40, i8* %arr.ptr) + call void @llvm.lifetime.end.p0i8(i64 40, i8* %arr.ptr) ; CHECK-DEFAULT: call void @__asan_poison_stack_memory(i64 %{{[^ ]+}}, i64 40) ; CHECK-NO-DYNAMIC-NOT: call void @__asan_poison_stack_memory(i64 %{{[^ ]+}}, i64 40) ; One more lifetime start/end for the same variable %i. - call void @llvm.lifetime.start(i64 2, i8* %i.ptr) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %i.ptr) ; CHECK: store i8 4, i8* %{{[0-9]+}} ; CHECK-NEXT: llvm.lifetime.start store volatile i8 0, i8* %i.ptr ; CHECK: store volatile - call void @llvm.lifetime.end(i64 4, i8* %i.ptr) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %i.ptr) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: llvm.lifetime.end @@ -108,7 +108,7 @@ entry: ; Poison memory in prologue: F1F1F1F1F8F3F3F3 ; CHECK: store i64 -868082052615769615, i64* %{{[0-9]+}} - call void @llvm.lifetime.start(i64 8, i8* %i.ptr) + call void @llvm.lifetime.start.p0i8(i64 8, i8* %i.ptr) ; CHECK: store i8 0, i8* %{{[0-9]+}} ; CHECK-NEXT: llvm.lifetime.start @@ -123,7 +123,7 @@ bb0: bb1: %i.phi = phi i8* [ %i.ptr, %entry ], [ %i.ptr2, %bb0 ] - call void @llvm.lifetime.end(i64 8, i8* %i.phi) + call void @llvm.lifetime.end.p0i8(i64 8, i8* %i.phi) ; CHECK: store i8 -8, i8* %{{[0-9]+}} ; CHECK-NEXT: llvm.lifetime.end @@ -147,14 +147,14 @@ entry: ; CHECK: store i64 -868082074056920077, i64* %{{[0-9]+}} %0 = getelementptr inbounds [1024 x i8], [1024 x i8]* %x, i64 0, i64 0 - call void @llvm.lifetime.start(i64 1024, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1024, i8* %0) ; CHECK: call void @__asan_set_shadow_00(i64 %{{[0-9]+}}, i64 128) ; CHECK-NEXT: call void @llvm.lifetime.start store i8* %0, i8** %d, align 8 ; CHECK: store i8 - call void @llvm.lifetime.end(i64 1024, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1024, i8* %0) ; CHECK: call void @__asan_set_shadow_f8(i64 %{{[0-9]+}}, i64 128) ; CHECK-NEXT: call void @llvm.lifetime.end @@ -172,12 +172,12 @@ entry: store i64 %a, i64* %a.addr, align 8 %0 = bitcast [0 x i8]* %b to i8* - call void @llvm.lifetime.start(i64 0, i8* %0) #2 + call void @llvm.lifetime.start.p0i8(i64 0, i8* %0) #2 ; CHECK: %{{[0-9]+}} = bitcast ; CHECK-NEXT: call void @llvm.lifetime.start %1 = bitcast [0 x i8]* %b to i8* - call void @llvm.lifetime.end(i64 0, i8* %1) #2 + call void @llvm.lifetime.end.p0i8(i64 0, i8* %1) #2 ; CHECK-NEXT: %{{[0-9]+}} = bitcast ; CHECK-NEXT: call void @llvm.lifetime.end diff --git a/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime-be.ll b/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime-be.ll index 059c49a3457..569a67d6d35 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime-be.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime-be.ll @@ -91,7 +91,7 @@ entry: ; CHECK-NEXT: %zz = getelementptr inbounds - call void @llvm.lifetime.start(i64 650, i8* %xx) + call void @llvm.lifetime.start.p0i8(i64 650, i8* %xx) ; 0000... ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 4 ; ENTRY-UAS-NEXT: call void @__asan_set_shadow_00(i64 [[OFFSET]], i64 81) @@ -100,39 +100,39 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 2, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 650, i8* %xx) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 650, i8* %xx) call void @Foo(i8* %xx) ; CHECK-NEXT: call void @Foo(i8* %xx) - call void @llvm.lifetime.end(i64 650, i8* %xx) + call void @llvm.lifetime.end.p0i8(i64 650, i8* %xx) ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 4 ; ENTRY-UAS-NEXT: call void @__asan_set_shadow_f8(i64 [[OFFSET]], i64 82) - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 650, i8* %xx) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 650, i8* %xx) - call void @llvm.lifetime.start(i64 13, i8* %yy) + call void @llvm.lifetime.start.p0i8(i64 13, i8* %yy) ; 0005 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 102 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i16]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 5, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 13, i8* %yy) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 13, i8* %yy) call void @Foo(i8* %yy) ; CHECK-NEXT: call void @Foo(i8* %yy) - call void @llvm.lifetime.end(i64 13, i8* %yy) + call void @llvm.lifetime.end.p0i8(i64 13, i8* %yy) ; F8F8 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 102 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i16]]* ; ENTRY-UAS-NEXT: store [[TYPE]] -1800, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 13, i8* %yy) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 13, i8* %yy) - call void @llvm.lifetime.start(i64 40, i8* %zz) + call void @llvm.lifetime.start.p0i8(i64 40, i8* %zz) ; 00000000 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 106 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i32]]* @@ -142,12 +142,12 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 0, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 40, i8* %zz) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 40, i8* %zz) call void @Foo(i8* %zz) ; CHECK-NEXT: call void @Foo(i8* %zz) - call void @llvm.lifetime.end(i64 40, i8* %zz) + call void @llvm.lifetime.end.p0i8(i64 40, i8* %zz) ; F8F8F8F8 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 106 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i32]]* @@ -157,7 +157,7 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] -8, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 40, i8* %zz) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 40, i8* %zz) ; CHECK-LABEL: <label> @@ -209,8 +209,8 @@ entry: ; CHECK: 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) ; CHECK-ON: declare void @__asan_set_shadow_00(i64, i64) ; CHECK-ON: declare void @__asan_set_shadow_f1(i64, i64) diff --git a/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime.ll b/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime.ll index 48d3b0e53cc..0799b03e455 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning-and-lifetime.ll @@ -91,7 +91,7 @@ entry: ; CHECK-NEXT: %zz = getelementptr inbounds - call void @llvm.lifetime.start(i64 650, i8* %xx) + call void @llvm.lifetime.start.p0i8(i64 650, i8* %xx) ; 0000... ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 4 ; ENTRY-UAS-NEXT: call void @__asan_set_shadow_00(i64 [[OFFSET]], i64 81) @@ -100,39 +100,39 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 2, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 650, i8* %xx) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 650, i8* %xx) call void @Foo(i8* %xx) ; CHECK-NEXT: call void @Foo(i8* %xx) - call void @llvm.lifetime.end(i64 650, i8* %xx) + call void @llvm.lifetime.end.p0i8(i64 650, i8* %xx) ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 4 ; ENTRY-UAS-NEXT: call void @__asan_set_shadow_f8(i64 [[OFFSET]], i64 82) - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 650, i8* %xx) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 650, i8* %xx) - call void @llvm.lifetime.start(i64 13, i8* %yy) + call void @llvm.lifetime.start.p0i8(i64 13, i8* %yy) ; 0005 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 102 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i16]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 1280, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 13, i8* %yy) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 13, i8* %yy) call void @Foo(i8* %yy) ; CHECK-NEXT: call void @Foo(i8* %yy) - call void @llvm.lifetime.end(i64 13, i8* %yy) + call void @llvm.lifetime.end.p0i8(i64 13, i8* %yy) ; F8F8 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 102 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i16]]* ; ENTRY-UAS-NEXT: store [[TYPE]] -1800, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 13, i8* %yy) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 13, i8* %yy) - call void @llvm.lifetime.start(i64 40, i8* %zz) + call void @llvm.lifetime.start.p0i8(i64 40, i8* %zz) ; 00000000 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 106 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i32]]* @@ -142,12 +142,12 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] 0, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.start(i64 40, i8* %zz) + ; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 40, i8* %zz) call void @Foo(i8* %zz) ; CHECK-NEXT: call void @Foo(i8* %zz) - call void @llvm.lifetime.end(i64 40, i8* %zz) + call void @llvm.lifetime.end.p0i8(i64 40, i8* %zz) ; F8F8F8F8 ; ENTRY-UAS-NEXT: [[OFFSET:%[0-9]+]] = add i64 [[SHADOW_BASE]], 106 ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i32]]* @@ -157,7 +157,7 @@ entry: ; ENTRY-UAS-NEXT: [[PTR:%[0-9]+]] = inttoptr i64 [[OFFSET]] to [[TYPE:i8]]* ; ENTRY-UAS-NEXT: store [[TYPE]] -8, [[TYPE]]* [[PTR]], align 1 - ; CHECK-NEXT: call void @llvm.lifetime.end(i64 40, i8* %zz) + ; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 40, i8* %zz) ; CHECK-LABEL: <label> @@ -209,8 +209,8 @@ entry: ; CHECK: 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) ; CHECK-ON: declare void @__asan_set_shadow_00(i64, i64) ; CHECK-ON: declare void @__asan_set_shadow_f1(i64, i64) diff --git a/llvm/test/Instrumentation/AddressSanitizer/stack_layout.ll b/llvm/test/Instrumentation/AddressSanitizer/stack_layout.ll index 96706f70c83..4e756f9ab2f 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/stack_layout.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/stack_layout.ll @@ -9,8 +9,8 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 target triple = "x86_64-unknown-linux-gnu" declare void @Use(i8*) -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind ; CHECK: private unnamed_addr constant{{.*}}3 32 10 3 XXX 64 20 3 YYY 128 30 3 ZZZ\0 ; CHECK: private unnamed_addr constant{{.*}}3 32 5 3 AAA 64 55 3 BBB 160 555 3 CCC\0 @@ -87,13 +87,13 @@ define void @Func5() sanitize_address #0 !dbg !11 { %AAA = alloca i32, align 4 ; File is not the same as !11 %BBB = alloca i32, align 4 ; File is the same as !11 %BBB.ptr = bitcast i32* %BBB to i8* - call void @llvm.lifetime.start(i64 4, i8* nonnull %BBB.ptr), !dbg !12 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %BBB.ptr), !dbg !12 store volatile i32 5, i32* %BBB, align 4 %AAA.ptr = bitcast i32* %AAA to i8* - call void @llvm.lifetime.start(i64 4, i8* nonnull %AAA.ptr), !dbg !14 + call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %AAA.ptr), !dbg !14 store volatile i32 3, i32* %AAA, align 4 - call void @llvm.lifetime.end(i64 4, i8* nonnull %AAA.ptr), !dbg !17 - call void @llvm.lifetime.end(i64 4, i8* nonnull %BBB.ptr), !dbg !18 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %AAA.ptr), !dbg !17 + call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %BBB.ptr), !dbg !18 ret void } diff --git a/llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll b/llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll index 99b46045623..18d2c3bfe4d 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll @@ -8,10 +8,10 @@ target triple = "aarch64-unknown-linux-gnu" define i32 @foo(i32 %guard, ...) { %vl = alloca %struct.__va_list, align 8 %1 = bitcast %struct.__va_list* %vl to i8* - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_start(i8* %1) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) ret i32 0 } @@ -46,10 +46,10 @@ define i32 @foo(i32 %guard, ...) { ; CHECK: [[STACK:%.*]] = getelementptr inbounds i8, i8* {{%.*}}, i32 192 ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{%.*}}, i8* [[STACK]], i64 {{%.*}}, i32 16, i1 false) -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.va_start(i8*) #2 declare void @llvm.va_end(i8*) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @bar() { %1 = call i32 (i32, ...) @foo(i32 0, i32 1, i32 2, double 3.000000e+00, diff --git a/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll b/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll index 71397f1db5a..46e840c607f 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll @@ -6,10 +6,10 @@ target triple = "mips64--linux" define i32 @foo(i32 %guard, ...) { %vl = alloca i8*, align 8 %1 = bitcast i8** %vl to i8* - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_start(i8* %1) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) ret i32 0 } @@ -23,10 +23,10 @@ define i32 @foo(i32 %guard, ...) { ; CHECK: [[STACK:%.*]] = bitcast {{.*}} @__msan_va_arg_tls to i8* ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[C]], i8* [[STACK]], i64 [[B]], i32 8, i1 false) -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.va_start(i8*) #2 declare void @llvm.va_end(i8*) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @bar() { %1 = call i32 (i32, ...) @foo(i32 0, i32 1, i64 2, double 3.000000e+00) diff --git a/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll b/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll index 9931b13baac..e0177b63d68 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll @@ -6,10 +6,10 @@ target triple = "mips64el--linux" define i32 @foo(i32 %guard, ...) { %vl = alloca i8*, align 8 %1 = bitcast i8** %vl to i8* - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_start(i8* %1) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) ret i32 0 } @@ -23,10 +23,10 @@ define i32 @foo(i32 %guard, ...) { ; CHECK: [[STACK:%.*]] = bitcast {{.*}} @__msan_va_arg_tls to i8* ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[C]], i8* [[STACK]], i64 [[B]], i32 8, i1 false) -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.va_start(i8*) #2 declare void @llvm.va_end(i8*) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @bar() { %1 = call i32 (i32, ...) @foo(i32 0, i32 1, i64 2, double 3.000000e+00) diff --git a/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll b/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll index 71f4b346659..afc4b775de3 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll @@ -6,10 +6,10 @@ target triple = "powerpc64--linux" define i32 @foo(i32 %guard, ...) { %vl = alloca i8*, align 8 %1 = bitcast i8** %vl to i8* - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_start(i8* %1) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) ret i32 0 } @@ -23,10 +23,10 @@ define i32 @foo(i32 %guard, ...) { ; CHECK: [[STACK:%.*]] = bitcast {{.*}} @__msan_va_arg_tls to i8* ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[C]], i8* [[STACK]], i64 [[B]], i32 8, i1 false) -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.va_start(i8*) #2 declare void @llvm.va_end(i8*) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @bar() { %1 = call i32 (i32, ...) @foo(i32 0, i32 1, i64 2, double 3.000000e+00) diff --git a/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll b/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll index 6e844dce549..1afe778ad79 100644 --- a/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll +++ b/llvm/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll @@ -6,10 +6,10 @@ target triple = "powerpc64le--linux" define i32 @foo(i32 %guard, ...) { %vl = alloca i8*, align 8 %1 = bitcast i8** %vl to i8* - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_start(i8* %1) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) ret i32 0 } @@ -23,10 +23,10 @@ define i32 @foo(i32 %guard, ...) { ; CHECK: [[STACK:%.*]] = bitcast {{.*}} @__msan_va_arg_tls to i8* ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[C]], i8* [[STACK]], i64 [[B]], i32 8, i1 false) -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.va_start(i8*) #2 declare void @llvm.va_end(i8*) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define i32 @bar() { %1 = call i32 (i32, ...) @foo(i32 0, i32 1, i64 2, double 3.000000e+00) diff --git a/llvm/test/Transforms/AddDiscriminators/call.ll b/llvm/test/Transforms/AddDiscriminators/call.ll index 5365d68eb09..49aca5a488f 100644 --- a/llvm/test/Transforms/AddDiscriminators/call.ll +++ b/llvm/test/Transforms/AddDiscriminators/call.ll @@ -14,8 +14,8 @@ define void @_Z3foov() #0 !dbg !4 { ; CHECK: call void @_Z3barv(), !dbg ![[CALL0:[0-9]+]] %a = alloca [100 x i8], align 16 %b = bitcast [100 x i8]* %a to i8* - call void @llvm.lifetime.start(i64 100, i8* %b), !dbg !11 - call void @llvm.lifetime.end(i64 100, i8* %b), !dbg !11 + call void @llvm.lifetime.start.p0i8(i64 100, i8* %b), !dbg !11 + call void @llvm.lifetime.end.p0i8(i64 100, i8* %b), !dbg !11 call void @_Z3barv(), !dbg !11 ; CHECK: call void @_Z3barv(), !dbg ![[CALL1:[0-9]+]] call void @_Z3barv(), !dbg !12 @@ -24,8 +24,8 @@ define void @_Z3foov() #0 !dbg !4 { } declare void @_Z3barv() #1 -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 attributes #0 = { uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } diff --git a/llvm/test/Transforms/AtomicExpand/SPARC/libcalls.ll b/llvm/test/Transforms/AtomicExpand/SPARC/libcalls.ll index afab7a39b27..fc6aade8708 100644 --- a/llvm/test/Transforms/AtomicExpand/SPARC/libcalls.ll +++ b/llvm/test/Transforms/AtomicExpand/SPARC/libcalls.ll @@ -43,11 +43,11 @@ define i16 @test_exchange_i16(i16* %arg, i16 %val) { ; CHECK: %1 = bitcast i16* %arg to i8* ; CHECK: %2 = alloca i16, align 2 ; CHECK: %3 = bitcast i16* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 2, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 2, i8* %3) ; CHECK: store i16 %old, i16* %2, align 2 ; CHECK: %4 = call zeroext i1 @__atomic_compare_exchange_2(i8* %1, i8* %3, i16 %new, i32 5, i32 0) ; CHECK: %5 = load i16, i16* %2, align 2 -; CHECK: call void @llvm.lifetime.end(i64 2, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 2, i8* %3) ; CHECK: %6 = insertvalue { i16, i1 } undef, i16 %5, 0 ; CHECK: %7 = insertvalue { i16, i1 } %6, i1 %4, 1 ; CHECK: %ret = extractvalue { i16, i1 } %7, 0 @@ -76,10 +76,10 @@ define i16 @test_add_i16(i16* %arg, i16 %val) { ; CHECK: %1 = bitcast i128* %arg to i8* ; CHECK: %2 = alloca i128, align 8 ; CHECK: %3 = bitcast i128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) ; CHECK: call void @__atomic_load(i32 16, i8* %1, i8* %3, i32 5) ; CHECK: %4 = load i128, i128* %2, align 8 -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) ; CHECK: ret i128 %4 define i128 @test_load_i128(i128* %arg) { %ret = load atomic i128, i128* %arg seq_cst, align 16 @@ -90,10 +90,10 @@ define i128 @test_load_i128(i128* %arg) { ; CHECK: %1 = bitcast i128* %arg to i8* ; CHECK: %2 = alloca i128, align 8 ; CHECK: %3 = bitcast i128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) ; CHECK: store i128 %val, i128* %2, align 8 ; CHECK: call void @__atomic_store(i32 16, i8* %1, i8* %3, i32 5) -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) ; CHECK: ret void define void @test_store_i128(i128* %arg, i128 %val) { store atomic i128 %val, i128* %arg seq_cst, align 16 @@ -104,15 +104,15 @@ define void @test_store_i128(i128* %arg, i128 %val) { ; CHECK: %1 = bitcast i128* %arg to i8* ; CHECK: %2 = alloca i128, align 8 ; CHECK: %3 = bitcast i128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) ; CHECK: store i128 %val, i128* %2, align 8 ; CHECK: %4 = alloca i128, align 8 ; CHECK: %5 = bitcast i128* %4 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %5) ; CHECK: call void @__atomic_exchange(i32 16, i8* %1, i8* %3, i8* %5, i32 5) -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) ; CHECK: %6 = load i128, i128* %4, align 8 -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %5) ; CHECK: ret i128 %6 define i128 @test_exchange_i128(i128* %arg, i128 %val) { %ret = atomicrmw xchg i128* %arg, i128 %val seq_cst @@ -123,16 +123,16 @@ define i128 @test_exchange_i128(i128* %arg, i128 %val) { ; CHECK: %1 = bitcast i128* %arg to i8* ; CHECK: %2 = alloca i128, align 8 ; CHECK: %3 = bitcast i128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) ; CHECK: store i128 %old, i128* %2, align 8 ; CHECK: %4 = alloca i128, align 8 ; CHECK: %5 = bitcast i128* %4 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %5) ; CHECK: store i128 %new, i128* %4, align 8 ; CHECK: %6 = call zeroext i1 @__atomic_compare_exchange(i32 16, i8* %1, i8* %3, i8* %5, i32 5, i32 0) -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %5) ; CHECK: %7 = load i128, i128* %2, align 8 -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) ; CHECK: %8 = insertvalue { i128, i1 } undef, i128 %7, 0 ; CHECK: %9 = insertvalue { i128, i1 } %8, i1 %6, 1 ; CHECK: %ret = extractvalue { i128, i1 } %9, 0 @@ -157,15 +157,15 @@ define i128 @test_cmpxchg_i128(i128* %arg, i128 %old, i128 %new) { ; CHECK: %new = add i128 %loaded, %val ; CHECK: %4 = bitcast i128* %arg to i8* ; CHECK: %5 = bitcast i128* %1 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %5) ; CHECK: store i128 %loaded, i128* %1, align 8 ; CHECK: %6 = bitcast i128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %6) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %6) ; CHECK: store i128 %new, i128* %2, align 8 ; CHECK: %7 = call zeroext i1 @__atomic_compare_exchange(i32 16, i8* %4, i8* %5, i8* %6, i32 5, i32 5) -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %6) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %6) ; CHECK: %8 = load i128, i128* %1, align 8 -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %5) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %5) ; CHECK: %9 = insertvalue { i128, i1 } undef, i128 %8, 0 ; CHECK: %10 = insertvalue { i128, i1 } %9, i1 %7, 1 ; CHECK: %success = extractvalue { i128, i1 } %10, 1 @@ -204,12 +204,12 @@ define void @test_store_double(double* %arg, double %val) { ; CHECK: %1 = bitcast i16** %arg to i8* ; CHECK: %2 = alloca i16*, align 4 ; CHECK: %3 = bitcast i16** %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 4, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) ; CHECK: store i16* %old, i16** %2, align 4 ; CHECK: %4 = ptrtoint i16* %new to i32 ; CHECK: %5 = call zeroext i1 @__atomic_compare_exchange_4(i8* %1, i8* %3, i32 %4, i32 5, i32 2) ; CHECK: %6 = load i16*, i16** %2, align 4 -; CHECK: call void @llvm.lifetime.end(i64 4, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 4, i8* %3) ; CHECK: %7 = insertvalue { i16*, i1 } undef, i16* %6, 0 ; CHECK: %8 = insertvalue { i16*, i1 } %7, i1 %5, 1 ; CHECK: %ret = extractvalue { i16*, i1 } %8, 0 @@ -227,10 +227,10 @@ define i16* @test_cmpxchg_ptr(i16** %arg, i16* %old, i16* %new) { ; CHECK: %1 = bitcast fp128* %arg to i8* ; CHECK: %2 = alloca fp128, align 8 ; CHECK: %3 = bitcast fp128* %2 to i8* -; CHECK: call void @llvm.lifetime.start(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 16, i8* %3) ; CHECK: store fp128 %val, fp128* %2, align 8 ; CHECK: call void @__atomic_store(i32 16, i8* %1, i8* %3, i32 5) -; CHECK: call void @llvm.lifetime.end(i64 16, i8* %3) +; CHECK: call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) ; CHECK: ret void define void @test_store_fp128(fp128* %arg, fp128 %val) { store atomic fp128 %val, fp128* %arg seq_cst, align 16 diff --git a/llvm/test/Transforms/BBVectorize/X86/wr-aliases.ll b/llvm/test/Transforms/BBVectorize/X86/wr-aliases.ll index a6ea27fc3ec..e34414988f3 100644 --- a/llvm/test/Transforms/BBVectorize/X86/wr-aliases.ll +++ b/llvm/test/Transforms/BBVectorize/X86/wr-aliases.ll @@ -14,7 +14,7 @@ declare fastcc void @_ZL12printQBezier7QBezier(%class.QBezier.15* byval nocaptur declare void @llvm.lifetime.start(i64, i8* nocapture) #0 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 define void @main_arrayctor.cont([10 x %class.QBezier.15]* %beziers, %class.QBezier.15* %agg.tmp.i, %class.QBezier.15* %agg.tmp55.i, %class.QBezier.15* %agg.tmp56.i) { newFuncRoot: @@ -134,9 +134,9 @@ arrayctor.cont: ; preds = %newFuncRoot call fastcc void @_ZL12printQBezier7QBezier(%class.QBezier.15* byval align 8 %agg.tmp55.i) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %v2, i8* %v3, i64 64, i32 8, i1 false) call fastcc void @_ZL12printQBezier7QBezier(%class.QBezier.15* byval align 8 %agg.tmp56.i) - call void @llvm.lifetime.end(i64 64, i8* %v0) - call void @llvm.lifetime.end(i64 64, i8* %v1) - call void @llvm.lifetime.end(i64 64, i8* %v2) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %v0) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %v1) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %v2) br label %arrayctor.cont.ret.exitStub } diff --git a/llvm/test/Transforms/CodeGenPrepare/builtin-condition.ll b/llvm/test/Transforms/CodeGenPrepare/builtin-condition.ll index 0d41e9e1edd..e42529a7b9a 100644 --- a/llvm/test/Transforms/CodeGenPrepare/builtin-condition.ll +++ b/llvm/test/Transforms/CodeGenPrepare/builtin-condition.ll @@ -74,39 +74,39 @@ entry: %chararray = alloca [30 x i8], align 16 %chararray2 = alloca [10 x i8], align 1 %0 = getelementptr inbounds [30 x i8], [30 x i8]* %chararray, i64 0, i64 0 - call void @llvm.lifetime.start(i64 30, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 30, i8* %0) %1 = getelementptr inbounds [10 x i8], [10 x i8]* %chararray2, i64 0, i64 0 - call void @llvm.lifetime.start(i64 10, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 10, i8* %1) %tobool = icmp eq i32 %flag, 0 %cptr.0 = select i1 %tobool, i8* %0, i8* %1 %2 = call i64 @llvm.objectsize.i64.p0i8(i8* %cptr.0, i1 true) - call void @llvm.lifetime.end(i64 10, i8* %1) - call void @llvm.lifetime.end(i64 30, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 10, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 30, i8* %0) ret i64 %2 ; CHECK-LABEL: foo1 ; CHECK: ret i64 10 } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) define i64 @foo2(i32 %n) { entry: %Small = alloca [10 x i8], align 1 %Large = alloca [20 x i8], align 16 %0 = getelementptr inbounds [10 x i8], [10 x i8]* %Small, i64 0, i64 0 - call void @llvm.lifetime.start(i64 10, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 10, i8* %0) %1 = getelementptr inbounds [20 x i8], [20 x i8]* %Large, i64 0, i64 0 - call void @llvm.lifetime.start(i64 20, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 20, i8* %1) %tobool = icmp ne i32 %n, 0 %add.ptr = getelementptr inbounds [20 x i8], [20 x i8]* %Large, i64 0, i64 19 %cond = select i1 %tobool, i8* %0, i8* %add.ptr %2 = call i64 @llvm.objectsize.i64.p0i8(i8* %cond, i1 false) - call void @llvm.lifetime.end(i64 20, i8* %1) - call void @llvm.lifetime.end(i64 10, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 20, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 10, i8* %0) ret i64 %2 ; CHECK-LABEL: foo2 ; CHECK: ret i64 10 diff --git a/llvm/test/Transforms/Coroutines/coro-split-dbg.ll b/llvm/test/Transforms/Coroutines/coro-split-dbg.ll index d214ce5b430..80f706879e5 100644 --- a/llvm/test/Transforms/Coroutines/coro-split-dbg.ll +++ b/llvm/test/Transforms/Coroutines/coro-split-dbg.ll @@ -43,7 +43,7 @@ coro_Suspend: ; preds = %for.cond, %if.then, } ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #4 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #4 ; Function Attrs: argmemonly nounwind readonly declare token @llvm.coro.id(i32, i8* readnone, i8* nocapture readonly, i8*) #5 @@ -54,7 +54,7 @@ declare i64 @llvm.coro.size.i64() #1 declare i8* @llvm.coro.begin(token, i8* writeonly) #7 declare token @llvm.coro.save(i8*) #7 declare i8 @llvm.coro.suspend(token, i1) #7 -declare void @llvm.lifetime.end(i64, i8* nocapture) #4 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #4 declare i8* @llvm.coro.free(token, i8* nocapture readonly) #5 declare void @free(i8* nocapture) local_unnamed_addr #6 declare i1 @llvm.coro.end(i8*, i1) #7 diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/alloca.ll b/llvm/test/Transforms/CorrelatedValuePropagation/alloca.ll index 0a6ba675a47..37b27b29445 100644 --- a/llvm/test/Transforms/CorrelatedValuePropagation/alloca.ll +++ b/llvm/test/Transforms/CorrelatedValuePropagation/alloca.ll @@ -13,14 +13,14 @@ target triple = "x86_64-unknown-linux-gnu" @.str = private unnamed_addr constant [8 x i8] c"a = %l\0A\00", align 1 ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare void @hoo(i64*) declare i32 @printf(i8* nocapture readonly, ...) ; Function Attrs: argmemonly nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) define void @goo(i32 %N, i64* %b) { entry: @@ -35,12 +35,12 @@ for.cond: ; preds = %for.body, %entry br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - call void @llvm.lifetime.start(i64 8, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 8, i8* %tmp) call void @hoo(i64* %a.i) call void @hoo(i64* %c) %tmp1 = load volatile i64, i64* %a.i, align 8 %call.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0), i64 %tmp1) - call void @llvm.lifetime.end(i64 8, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 8, i8* %tmp) %inc = add nsw i32 %i.0, 1 br label %for.cond diff --git a/llvm/test/Transforms/DeadStoreElimination/dominate.ll b/llvm/test/Transforms/DeadStoreElimination/dominate.ll index 638992bae72..24dd65e07bb 100644 --- a/llvm/test/Transforms/DeadStoreElimination/dominate.ll +++ b/llvm/test/Transforms/DeadStoreElimination/dominate.ll @@ -9,12 +9,12 @@ bb1: br label %bb3 bb2: - call void @llvm.lifetime.end(i64 -1, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) br label %bb3 bb3: call void @bar() - call void @llvm.lifetime.end(i64 -1, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) br label %bb4 bb4: @@ -22,4 +22,4 @@ bb4: } -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/Transforms/DeadStoreElimination/lifetime.ll b/llvm/test/Transforms/DeadStoreElimination/lifetime.ll index 305c916dc02..97f199b5e0f 100644 --- a/llvm/test/Transforms/DeadStoreElimination/lifetime.ll +++ b/llvm/test/Transforms/DeadStoreElimination/lifetime.ll @@ -2,8 +2,8 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128" -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind declare void @llvm.memset.p0i8.i8(i8* nocapture, i8, i8, i32, i1) nounwind define void @test1() { @@ -11,7 +11,7 @@ define void @test1() { %A = alloca i8 store i8 0, i8* %A ;; Written to by memset - call void @llvm.lifetime.end(i64 1, i8* %A) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %A) ; CHECK: lifetime.end call void @llvm.memset.p0i8.i8(i8* %A, i8 0, i8 -1, i32 0, i1 false) @@ -25,11 +25,11 @@ define void @test2(i32* %P) { ; CHECK: test2 %Q = getelementptr i32, i32* %P, i32 1 %R = bitcast i32* %Q to i8* - call void @llvm.lifetime.start(i64 4, i8* %R) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %R) ; CHECK: lifetime.start store i32 0, i32* %Q ;; This store is dead. ; CHECK-NOT: store - call void @llvm.lifetime.end(i64 4, i8* %R) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %R) ; CHECK: lifetime.end ret void } diff --git a/llvm/test/Transforms/GVN/cond_br2.ll b/llvm/test/Transforms/GVN/cond_br2.ll index baa282ec200..a3749510cb4 100644 --- a/llvm/test/Transforms/GVN/cond_br2.ll +++ b/llvm/test/Transforms/GVN/cond_br2.ll @@ -18,7 +18,7 @@ define void @_Z4testv() #0 personality i8* bitcast (i32 (...)* @__gxx_personalit entry: %sv = alloca %"class.llvm::SmallVector", align 16 %0 = bitcast %"class.llvm::SmallVector"* %sv to i8* - call void @llvm.lifetime.start(i64 64, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 64, i8* %0) #1 %BeginX.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SmallVector", %"class.llvm::SmallVector"* %sv, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0 %FirstEl.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SmallVector", %"class.llvm::SmallVector"* %sv, i64 0, i32 0, i32 0, i32 0, i32 0, i32 3 %1 = bitcast %"union.llvm::SmallVectorBase::U"* %FirstEl.i.i.i.i.i.i to i8* @@ -94,7 +94,7 @@ if.then.i.i.i20: ; preds = %invoke.cont3 br label %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit21 _ZN4llvm11SmallVectorIiLj8EED1Ev.exit21: ; preds = %invoke.cont3, %if.then.i.i.i20 - call void @llvm.lifetime.end(i64 64, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 64, i8* %0) #1 ret void lpad: ; preds = %if.end.i14, %if.end.i, %invoke.cont2 @@ -113,14 +113,14 @@ eh.resume: ; preds = %if.then.i.i.i, %lpa } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare i32 @__gxx_personality_v0(...) declare void @_Z1gRN4llvm11SmallVectorIiLj8EEE(%"class.llvm::SmallVector"*) #2 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 declare void @_ZN4llvm15SmallVectorBase8grow_podEmm(%"class.llvm::SmallVectorBase"*, i64, i64) #2 diff --git a/llvm/test/Transforms/GVN/lifetime-simple.ll b/llvm/test/Transforms/GVN/lifetime-simple.ll index d03b62c8158..8da3e4cbd30 100644 --- a/llvm/test/Transforms/GVN/lifetime-simple.ll +++ b/llvm/test/Transforms/GVN/lifetime-simple.ll @@ -8,13 +8,13 @@ define i8 @test(i8* %P) nounwind { ; CHECK-NOT: load ; CHECK: lifetime.end entry: - call void @llvm.lifetime.start(i64 32, i8* %P) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %P) %0 = load i8, i8* %P store i8 1, i8* %P - call void @llvm.lifetime.end(i64 32, i8* %P) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %P) %1 = load i8, i8* %P ret i8 %1 } -declare void @llvm.lifetime.start(i64 %S, i8* nocapture %P) readonly -declare void @llvm.lifetime.end(i64 %S, i8* nocapture %P) +declare void @llvm.lifetime.start.p0i8(i64 %S, i8* nocapture %P) readonly +declare void @llvm.lifetime.end.p0i8(i64 %S, i8* nocapture %P) diff --git a/llvm/test/Transforms/GVNHoist/pr29034.ll b/llvm/test/Transforms/GVNHoist/pr29034.ll index 5e725ad38c8..c0fcc3e741a 100644 --- a/llvm/test/Transforms/GVNHoist/pr29034.ll +++ b/llvm/test/Transforms/GVNHoist/pr29034.ll @@ -38,7 +38,7 @@ define void @music_task(i8* nocapture readnone %p) local_unnamed_addr { entry: %mapi = alloca %struct._MUSIC_OP_API_*, align 8 %0 = bitcast %struct._MUSIC_OP_API_** %mapi to i8* - call void @llvm.lifetime.start(i64 8, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) store %struct._MUSIC_OP_API_* null, %struct._MUSIC_OP_API_** %mapi, align 8, !tbaa !1 %call = call i32 @music_decoder_init(%struct._MUSIC_OP_API_** nonnull %mapi) br label %while.cond @@ -103,7 +103,7 @@ while.cond2.backedge: ; preds = %sw.default, %sw.bb1 br label %while.cond2 } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare i32 @music_decoder_init(%struct._MUSIC_OP_API_**) declare i32 @music_play_api(%struct._MUSIC_OP_API_*, i32, i32, i32, i8*) declare i32 @printf(i8* nocapture readonly, ...) diff --git a/llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll b/llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll index 24e3e95a891..ee641667506 100644 --- a/llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll +++ b/llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll @@ -8,14 +8,14 @@ ; CHECK-NOT: udiv declare void @_Z3mixRjj(i32* dereferenceable(4), i32) -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) define i32 @_Z3fooPKcjj(i8* nocapture readonly %s, i32 %len, i32 %c) { entry: %a = alloca i32, align 4 %tmp = bitcast i32* %a to i8* - call void @llvm.lifetime.start(i64 4, i8* %tmp) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %tmp) store i32 -1640531527, i32* %a, align 4 %cmp8 = icmp ugt i32 %len, 11 br i1 %cmp8, label %while.body.lr.ph, label %while.end @@ -47,6 +47,6 @@ while.end: ; preds = %while.cond.while.en %keylen.0.lcssa = phi i32 [ %sub.lcssa, %while.cond.while.end_crit_edge ], [ %len, %entry ] call void @_Z3mixRjj(i32* dereferenceable(4) %a, i32 %keylen.0.lcssa) %tmp4 = load i32, i32* %a, align 4 - call void @llvm.lifetime.end(i64 4, i8* %tmp) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %tmp) ret i32 %tmp4 } diff --git a/llvm/test/Transforms/Inline/alloca-bonus.ll b/llvm/test/Transforms/Inline/alloca-bonus.ll index 542dcee0fcb..c5c2ce11cc5 100644 --- a/llvm/test/Transforms/Inline/alloca-bonus.ll +++ b/llvm/test/Transforms/Inline/alloca-bonus.ll @@ -3,7 +3,7 @@ target datalayout = "p:32:32" -declare void @llvm.lifetime.start(i64 %size, i8* nocapture %ptr) +declare void @llvm.lifetime.start.p0i8(i64 %size, i8* nocapture %ptr) @glbl = external global i32 @@ -22,7 +22,7 @@ define void @inner1(i32 *%ptr) { %D = getelementptr inbounds i32, i32* %ptr, i32 1 %E = bitcast i32* %ptr to i8* %F = select i1 false, i32* %ptr, i32* @glbl - call void @llvm.lifetime.start(i64 0, i8* %E) + call void @llvm.lifetime.start.p0i8(i64 0, i8* %E) call void @extern() ret void } @@ -43,7 +43,7 @@ define void @inner2(i32 *%ptr) { %D = getelementptr inbounds i32, i32* %ptr, i32 %A %E = bitcast i32* %ptr to i8* %F = select i1 false, i32* %ptr, i32* @glbl - call void @llvm.lifetime.start(i64 0, i8* %E) + call void @llvm.lifetime.start.p0i8(i64 0, i8* %E) call void @extern() ret void } @@ -152,7 +152,7 @@ if.then: %D = getelementptr inbounds i32, i32* %ptr, i32 %A %E = bitcast i32* %ptr to i8* %F = select i1 false, i32* %ptr, i32* @glbl - call void @llvm.lifetime.start(i64 0, i8* %E) + call void @llvm.lifetime.start.p0i8(i64 0, i8* %E) ret void exit: diff --git a/llvm/test/Transforms/Inline/crash-lifetime-marker.ll b/llvm/test/Transforms/Inline/crash-lifetime-marker.ll index e7a594cdb5e..7196616521e 100644 --- a/llvm/test/Transforms/Inline/crash-lifetime-marker.ll +++ b/llvm/test/Transforms/Inline/crash-lifetime-marker.ll @@ -15,9 +15,9 @@ define i32 @callee1(i32 %count) { ; CHECK-LABEL: define i32 @caller1( ; CHECK: [[ALLOCA:%[a-z0-9\.]+]] = alloca i8 -; CHECK-NOT: call void @llvm.lifetime.start( +; CHECK-NOT: call void @llvm.lifetime.start.p0i8( ; CHECK: call i32 @callee2(i8* [[ALLOCA]]) -; CHECK-NOT: call void @llvm.lifetime.end( +; CHECK-NOT: call void @llvm.lifetime.end.p0i8( define i32 @caller1(i32 %count) { %call0 = call i32 @callee1(i32 0) diff --git a/llvm/test/Transforms/Inline/lifetime-no-datalayout.ll b/llvm/test/Transforms/Inline/lifetime-no-datalayout.ll index 0212e69d624..5d1872c6a24 100644 --- a/llvm/test/Transforms/Inline/lifetime-no-datalayout.ll +++ b/llvm/test/Transforms/Inline/lifetime-no-datalayout.ll @@ -13,9 +13,9 @@ define void @helper() { define void @test() { ; CHECK-LABEL: @test( ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 1 +; CHECK: llvm.lifetime.start.p0i8(i64 1 ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 1 +; CHECK: llvm.lifetime.end.p0i8(i64 1 call void @helper() ; CHECK-NOT: lifetime ; CHECK: ret void diff --git a/llvm/test/Transforms/Inline/lifetime.ll b/llvm/test/Transforms/Inline/lifetime.ll index 4f415e58f1b..c47091395fc 100644 --- a/llvm/test/Transforms/Inline/lifetime.ll +++ b/llvm/test/Transforms/Inline/lifetime.ll @@ -2,25 +2,25 @@ ; RUN: opt -passes='cgscc(inline)' -S < %s | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) define void @helper_both_markers() { %a = alloca i8 ; Size in llvm.lifetime.start / llvm.lifetime.end differs from ; allocation size. We should use the former. - call void @llvm.lifetime.start(i64 2, i8* %a) - call void @llvm.lifetime.end(i64 2, i8* %a) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %a) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %a) ret void } define void @test_both_markers() { ; CHECK-LABEL: @test_both_markers( -; CHECK: llvm.lifetime.start(i64 2 -; CHECK-NEXT: llvm.lifetime.end(i64 2 +; CHECK: llvm.lifetime.start.p0i8(i64 2 +; CHECK-NEXT: llvm.lifetime.end.p0i8(i64 2 call void @helper_both_markers() -; CHECK-NEXT: llvm.lifetime.start(i64 2 -; CHECK-NEXT: llvm.lifetime.end(i64 2 +; CHECK-NEXT: llvm.lifetime.start.p0i8(i64 2 +; CHECK-NEXT: llvm.lifetime.end.p0i8(i64 2 call void @helper_both_markers() ; CHECK-NEXT: ret void ret void @@ -41,14 +41,14 @@ define void @helper_no_markers() { define void @test_no_marker() { ; CHECK-LABEL: @test_no_marker( ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 1 +; CHECK: llvm.lifetime.start.p0i8(i64 1 ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 1 +; CHECK: llvm.lifetime.end.p0i8(i64 1 call void @helper_no_markers() ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 1 +; CHECK: llvm.lifetime.start.p0i8(i64 1 ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 1 +; CHECK: llvm.lifetime.end.p0i8(i64 1 call void @helper_no_markers() ; CHECK-NOT: lifetime ; CHECK: ret void @@ -58,23 +58,23 @@ define void @test_no_marker() { define void @helper_two_casts() { %a = alloca i32 %b = bitcast i32* %a to i8* - call void @llvm.lifetime.start(i64 4, i8* %b) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %b) %c = bitcast i32* %a to i8* - call void @llvm.lifetime.end(i64 4, i8* %c) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %c) ret void } define void @test_two_casts() { ; CHECK-LABEL: @test_two_casts( ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 4 +; CHECK: llvm.lifetime.start.p0i8(i64 4 ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 4 +; CHECK: llvm.lifetime.end.p0i8(i64 4 call void @helper_two_casts() ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 4 +; CHECK: llvm.lifetime.start.p0i8(i64 4 ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 4 +; CHECK: llvm.lifetime.end.p0i8(i64 4 call void @helper_two_casts() ; CHECK-NOT: lifetime ; CHECK: ret void @@ -91,9 +91,9 @@ define void @helper_arrays_alloca() { define void @test_arrays_alloca() { ; CHECK-LABEL: @test_arrays_alloca( ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.start(i64 40, +; CHECK: llvm.lifetime.start.p0i8(i64 40, ; CHECK-NOT: lifetime -; CHECK: llvm.lifetime.end(i64 40, +; CHECK: llvm.lifetime.end.p0i8(i64 40, call void @helper_arrays_alloca() ; CHECK-NOT: lifetime ; CHECK: ret void diff --git a/llvm/test/Transforms/InstCombine/builtin-object-size-offset.ll b/llvm/test/Transforms/InstCombine/builtin-object-size-offset.ll index 7ab24a9acd9..248cf644df8 100644 --- a/llvm/test/Transforms/InstCombine/builtin-object-size-offset.ll +++ b/llvm/test/Transforms/InstCombine/builtin-object-size-offset.ll @@ -26,25 +26,25 @@ entry: %Big = alloca [20 x i8], align 16 %Small = alloca [10 x i8], align 1 %0 = getelementptr inbounds [20 x i8], [20 x i8]* %Big, i64 0, i64 0 - call void @llvm.lifetime.start(i64 20, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 20, i8* %0) %1 = getelementptr inbounds [10 x i8], [10 x i8]* %Small, i64 0, i64 0 - call void @llvm.lifetime.start(i64 10, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 10, i8* %1) %tobool = icmp ne i32 %N, 0 %add.ptr = getelementptr inbounds [20 x i8], [20 x i8]* %Big, i64 0, i64 10 %cond = select i1 %tobool, i8* %add.ptr, i8* %1 %2 = call i64 @llvm.objectsize.i64.p0i8(i8* %cond, i1 false) %conv = trunc i64 %2 to i32 - call void @llvm.lifetime.end(i64 10, i8* %1) - call void @llvm.lifetime.end(i64 20, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 10, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 20, i8* %0) ret i32 %conv ; CHECK: ret i32 10 } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) define void @foo() { entry: diff --git a/llvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll b/llvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll index b38513999dc..ada3fc16702 100644 --- a/llvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll +++ b/llvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll @@ -16,19 +16,19 @@ define i32 @foo() #0 { entry: %var = alloca %struct.V, align 4 %0 = bitcast %struct.V* %var to i8* - call void @llvm.lifetime.start(i64 28, i8* %0) #3 + call void @llvm.lifetime.start.p0i8(i64 28, i8* %0) #3 %buf1 = getelementptr inbounds %struct.V, %struct.V* %var, i32 0, i32 0 %arrayidx = getelementptr inbounds [10 x i8], [10 x i8]* %buf1, i64 0, i64 1 %1 = call i64 @llvm.objectsize.i64.p0i8(i8* %arrayidx, i1 false) %conv = trunc i64 %1 to i32 - call void @llvm.lifetime.end(i64 28, i8* %0) #3 + call void @llvm.lifetime.end.p0i8(i64 28, i8* %0) #3 ret i32 %conv ; CHECK: ret i32 27 ; CHECK-NOT: ret i32 -1 } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare i64 @llvm.objectsize.i64.p0i8(i8*, i1) #2 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 diff --git a/llvm/test/Transforms/InstCombine/compare-alloca.ll b/llvm/test/Transforms/InstCombine/compare-alloca.ll index ca24da19177..414a07825f2 100644 --- a/llvm/test/Transforms/InstCombine/compare-alloca.ll +++ b/llvm/test/Transforms/InstCombine/compare-alloca.ll @@ -72,15 +72,15 @@ define i1 @alloca_argument_compare_escaped_through_store(i64* %arg, i64** %ptr) ; CHECK: ret i1 %cmp } -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) define i1 @alloca_argument_compare_benign_instrs(i8* %arg) { %alloc = alloca i8 - call void @llvm.lifetime.start(i64 1, i8* %alloc) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %alloc) %cmp = icmp eq i8* %arg, %alloc %x = load i8, i8* %arg store i8 %x, i8* %alloc - call void @llvm.lifetime.end(i64 1, i8* %alloc) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %alloc) ret i1 %cmp ; CHECK-LABEL: alloca_argument_compare_benign_instrs ; CHECK: ret i1 false diff --git a/llvm/test/Transforms/InstCombine/deadcode.ll b/llvm/test/Transforms/InstCombine/deadcode.ll index 8fe673d8c9c..c5fa58babdb 100644 --- a/llvm/test/Transforms/InstCombine/deadcode.ll +++ b/llvm/test/Transforms/InstCombine/deadcode.ll @@ -22,12 +22,12 @@ define i32* @test2(i32 %width) { declare i8* @llvm.stacksave() -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) define void @test3() { - call void @llvm.lifetime.start(i64 -1, i8* undef) - call void @llvm.lifetime.end(i64 -1, i8* undef) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* undef) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* undef) ret void } diff --git a/llvm/test/Transforms/InstCombine/lifetime-asan.ll b/llvm/test/Transforms/InstCombine/lifetime-asan.ll index f52c0202b77..7fdc1fcbc3b 100644 --- a/llvm/test/Transforms/InstCombine/lifetime-asan.ll +++ b/llvm/test/Transforms/InstCombine/lifetime-asan.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -instcombine -S | FileCheck %s -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 @foo(i8* nocapture) define void @asan() sanitize_address { @@ -9,8 +9,8 @@ entry: ; CHECK-LABEL: @asan( %text = alloca i8, align 1 - call void @llvm.lifetime.start(i64 1, i8* %text) - call void @llvm.lifetime.end(i64 1, i8* %text) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %text) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %text) ; CHECK: call void @llvm.lifetime.start ; CHECK-NEXT: call void @llvm.lifetime.end @@ -25,8 +25,8 @@ entry: ; CHECK-LABEL: @no_asan( %text = alloca i8, align 1 - call void @llvm.lifetime.start(i64 1, i8* %text) - call void @llvm.lifetime.end(i64 1, i8* %text) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %text) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %text) ; CHECK-NO: call void @llvm.lifetime call void @foo(i8* %text) ; Keep alloca alive diff --git a/llvm/test/Transforms/InstCombine/lifetime.ll b/llvm/test/Transforms/InstCombine/lifetime.ll index c296d29b99b..71c676233b0 100644 --- a/llvm/test/Transforms/InstCombine/lifetime.ll +++ b/llvm/test/Transforms/InstCombine/lifetime.ll @@ -1,8 +1,8 @@ ; RUN: opt < %s -instcombine -S | FileCheck %s declare void @llvm.dbg.declare(metadata, metadata, metadata) -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 @foo(i8* nocapture, i8* nocapture) define void @bar(i1 %flag) !dbg !4 { @@ -17,11 +17,11 @@ entry: ; CHECK: bb3: ; CHECK-NEXT: call void @llvm.dbg.declare ; CHECK-NEXT: br label %fin -; CHECK: call void @llvm.lifetime.start(i64 1, i8* %[[T]]) -; CHECK-NEXT: call void @llvm.lifetime.start(i64 1, i8* %[[B]]) +; CHECK: call void @llvm.lifetime.start.p0i8(i64 1, i8* %[[T]]) +; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 1, i8* %[[B]]) ; CHECK-NEXT: call void @foo(i8* %[[B]], i8* %[[T]]) -; CHECK-NEXT: call void @llvm.lifetime.end(i64 1, i8* %[[B]]) -; CHECK-NEXT: call void @llvm.lifetime.end(i64 1, i8* %[[T]]) +; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 1, i8* %[[B]]) +; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 1, i8* %[[T]]) %text = alloca [1 x i8], align 1 %buff = alloca [1 x i8], align 1 %0 = getelementptr inbounds [1 x i8], [1 x i8]* %text, i64 0, i64 0 @@ -29,31 +29,31 @@ entry: br i1 %flag, label %if, label %else if: - call void @llvm.lifetime.start(i64 1, i8* %0) - call void @llvm.lifetime.start(i64 1, i8* %1) - call void @llvm.lifetime.end(i64 1, i8* %1) - call void @llvm.lifetime.end(i64 1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %0) br label %bb2 bb2: - call void @llvm.lifetime.start(i64 1, i8* %0) - call void @llvm.lifetime.start(i64 1, i8* %1) - call void @llvm.lifetime.end(i64 1, i8* %0) - call void @llvm.lifetime.end(i64 1, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %1) br label %bb3 bb3: - call void @llvm.lifetime.start(i64 1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) call void @llvm.dbg.declare(metadata [1 x i8]* %text, metadata !14, metadata !25), !dbg !26 - call void @llvm.lifetime.end(i64 1, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 1, i8* %0) br label %fin else: - call void @llvm.lifetime.start(i64 1, i8* %0) - call void @llvm.lifetime.start(i64 1, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 1, i8* %1) call void @foo(i8* %1, i8* %0) - 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) br label %fin fin: diff --git a/llvm/test/Transforms/InstCombine/malloc-free-delete.ll b/llvm/test/Transforms/InstCombine/malloc-free-delete.ll index 8fcb8214360..7a5c7457e36 100644 --- a/llvm/test/Transforms/InstCombine/malloc-free-delete.ll +++ b/llvm/test/Transforms/InstCombine/malloc-free-delete.ll @@ -24,8 +24,8 @@ define i1 @foo() { ret i1 %z } -declare void @llvm.lifetime.start(i64, i8*) -declare void @llvm.lifetime.end(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) +declare void @llvm.lifetime.end.p0i8(i64, i8*) declare i64 @llvm.objectsize.i64(i8*, i1) declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind @@ -35,8 +35,8 @@ define void @test3(i8* %src) { ; CHECK-LABEL: @test3( ; CHECK-NEXT: ret void %a = call noalias i8* @malloc(i32 10) - call void @llvm.lifetime.start(i64 10, i8* %a) - call void @llvm.lifetime.end(i64 10, i8* %a) + call void @llvm.lifetime.start.p0i8(i64 10, i8* %a) + call void @llvm.lifetime.end.p0i8(i64 10, i8* %a) %size = call i64 @llvm.objectsize.i64(i8* %a, i1 true) store i8 42, i8* %a call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a, i8* %src, i32 32, i32 1, i1 false) diff --git a/llvm/test/Transforms/InstCombine/memcpy-from-global.ll b/llvm/test/Transforms/InstCombine/memcpy-from-global.ll index da38087d739..7c9384d89ba 100644 --- a/llvm/test/Transforms/InstCombine/memcpy-from-global.ll +++ b/llvm/test/Transforms/InstCombine/memcpy-from-global.ll @@ -126,11 +126,11 @@ define void @test4() { ret void } -declare void @llvm.lifetime.start(i64, i8*) +declare void @llvm.lifetime.start.p0i8(i64, i8*) define void @test5() { %A = alloca %T %a = bitcast %T* %A to i8* - call void @llvm.lifetime.start(i64 -1, i8* %a) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %a, i8* bitcast (%T* @G to i8*), i64 124, i32 4, i1 false) call void @baz(i8* byval %a) ; CHECK-LABEL: @test5( diff --git a/llvm/test/Transforms/InstCombine/vararg.ll b/llvm/test/Transforms/InstCombine/vararg.ll index 263a7425a07..111cb4de7bc 100644 --- a/llvm/test/Transforms/InstCombine/vararg.ll +++ b/llvm/test/Transforms/InstCombine/vararg.ll @@ -2,8 +2,8 @@ %struct.__va_list = type { i8*, i8*, i8*, i32, i32 } -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 @llvm.va_start(i8*) declare void @llvm.va_end(i8*) declare void @llvm.va_copy(i8*, i8*) @@ -17,14 +17,14 @@ entry: %va1 = alloca %struct.__va_list, align 8 %0 = bitcast %struct.__va_list* %va0 to i8* %1 = bitcast %struct.__va_list* %va1 to i8* - call void @llvm.lifetime.start(i64 32, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %0) call void @llvm.va_start(i8* %0) - call void @llvm.lifetime.start(i64 32, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %1) call void @llvm.va_copy(i8* %1, i8* %0) call void @llvm.va_end(i8* %1) - call void @llvm.lifetime.end(i64 32, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %1) call void @llvm.va_end(i8* %0) - call void @llvm.lifetime.end(i64 32, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %0) ret i32 0 } diff --git a/llvm/test/Transforms/LoopVectorize/lifetime.ll b/llvm/test/Transforms/LoopVectorize/lifetime.ll index 6e525ca1d82..860fe2d983c 100644 --- a/llvm/test/Transforms/LoopVectorize/lifetime.ll +++ b/llvm/test/Transforms/LoopVectorize/lifetime.ll @@ -13,23 +13,23 @@ define void @test(i32 *%d) { entry: %arr = alloca [1024 x i32], align 16 %0 = bitcast [1024 x i32]* %arr to i8* - call void @llvm.lifetime.start(i64 4096, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %0) #1 br label %for.body for.body: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] - call void @llvm.lifetime.end(i64 4096, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %0) #1 %arrayidx = getelementptr inbounds i32, i32* %d, i64 %indvars.iv %1 = load i32, i32* %arrayidx, align 8 store i32 100, i32* %arrayidx, align 8 - call void @llvm.lifetime.start(i64 4096, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %0) #1 %indvars.iv.next = add i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp ne i32 %lftr.wideiv, 128 br i1 %exitcond, label %for.body, label %for.end for.end: - call void @llvm.lifetime.end(i64 4096, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %0) #1 ret void } @@ -42,24 +42,24 @@ define void @testbitcast(i32 *%d) { entry: %arr = alloca [1024 x i32], align 16 %0 = bitcast [1024 x i32]* %arr to i8* - call void @llvm.lifetime.start(i64 4096, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %0) #1 br label %for.body for.body: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %1 = bitcast [1024 x i32]* %arr to i8* - call void @llvm.lifetime.end(i64 4096, i8* %1) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %1) #1 %arrayidx = getelementptr inbounds i32, i32* %d, i64 %indvars.iv %2 = load i32, i32* %arrayidx, align 8 store i32 100, i32* %arrayidx, align 8 - call void @llvm.lifetime.start(i64 4096, i8* %1) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %1) #1 %indvars.iv.next = add i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp ne i32 %lftr.wideiv, 128 br i1 %exitcond, label %for.body, label %for.end for.end: - call void @llvm.lifetime.end(i64 4096, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %0) #1 ret void } @@ -77,11 +77,11 @@ for.body: %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ] %0 = getelementptr [1024 x i32], [1024 x i32]* %arr, i32 0, i64 %indvars.iv %1 = bitcast [1024 x i32]* %arr to i8* - call void @llvm.lifetime.end(i64 4096, i8* %1) #1 + call void @llvm.lifetime.end.p0i8(i64 4096, i8* %1) #1 %arrayidx = getelementptr inbounds i32, i32* %d, i64 %indvars.iv %2 = load i32, i32* %arrayidx, align 8 store i32 100, i32* %arrayidx, align 8 - call void @llvm.lifetime.start(i64 4096, i8* %1) #1 + call void @llvm.lifetime.start.p0i8(i64 4096, i8* %1) #1 %indvars.iv.next = add i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp ne i32 %lftr.wideiv, 128 @@ -91,6 +91,6 @@ for.end: ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 diff --git a/llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll b/llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll index 12adaffc771..b996a659237 100644 --- a/llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll +++ b/llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll @@ -1,16 +1,16 @@ ; RUN: opt -mem2reg -S -o - < %s | FileCheck %s -declare void @llvm.lifetime.start(i64 %size, i8* nocapture %ptr) -declare void @llvm.lifetime.end(i64 %size, i8* nocapture %ptr) +declare void @llvm.lifetime.start.p0i8(i64 %size, i8* nocapture %ptr) +declare void @llvm.lifetime.end.p0i8(i64 %size, i8* nocapture %ptr) define void @test1() { ; CHECK: test1 ; CHECK-NOT: alloca %A = alloca i32 %B = bitcast i32* %A to i8* - call void @llvm.lifetime.start(i64 2, i8* %B) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %B) store i32 1, i32* %A - call void @llvm.lifetime.end(i64 2, i8* %B) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %B) ret void } @@ -19,8 +19,8 @@ define void @test2() { ; CHECK-NOT: alloca %A = alloca {i8, i16} %B = getelementptr {i8, i16}, {i8, i16}* %A, i32 0, i32 0 - call void @llvm.lifetime.start(i64 2, i8* %B) + call void @llvm.lifetime.start.p0i8(i64 2, i8* %B) store {i8, i16} zeroinitializer, {i8, i16}* %A - call void @llvm.lifetime.end(i64 2, i8* %B) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %B) ret void } diff --git a/llvm/test/Transforms/MemCpyOpt/lifetime.ll b/llvm/test/Transforms/MemCpyOpt/lifetime.ll index 6a7e44692da..77b495f2b58 100644 --- a/llvm/test/Transforms/MemCpyOpt/lifetime.ll +++ b/llvm/test/Transforms/MemCpyOpt/lifetime.ll @@ -4,8 +4,8 @@ ; @llvm.lifetime.start and @llvm.memcpy. declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #1 -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 define void @_ZN4CordC2EOS_(i8* nocapture dereferenceable(16) %arg1) { bb: @@ -14,11 +14,11 @@ bb: ; CHECK: ret void %tmp = alloca [8 x i8], align 8 %tmp5 = bitcast [8 x i8]* %tmp to i8* - call void @llvm.lifetime.start(i64 16, i8* %tmp5) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %tmp5) %tmp10 = getelementptr inbounds i8, i8* %tmp5, i64 7 store i8 0, i8* %tmp10, align 1 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arg1, i8* %tmp5, i64 16, i32 8, i1 false) - call void @llvm.lifetime.end(i64 16, i8* %tmp5) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %tmp5) ret void } diff --git a/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll b/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll index e3e57f09d88..e21dc87cb6a 100644 --- a/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll +++ b/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll @@ -7,11 +7,11 @@ define void @foo([8 x i64]* noalias nocapture sret dereferenceable(64) %sret) { entry-block: %a = alloca [8 x i64], align 8 %a.cast = bitcast [8 x i64]* %a to i8* - call void @llvm.lifetime.start(i64 64, i8* %a.cast) + call void @llvm.lifetime.start.p0i8(i64 64, i8* %a.cast) call void @llvm.memset.p0i8.i64(i8* %a.cast, i8 0, i64 64, i32 8, i1 false) %sret.cast = bitcast [8 x i64]* %sret to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret.cast, i8* %a.cast, i64 64, i32 8, i1 false) - call void @llvm.lifetime.end(i64 64, i8* %a.cast) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %a.cast) ret void ; CHECK-LABEL: @foo( @@ -25,14 +25,14 @@ define void @bar([8 x i64]* noalias nocapture sret dereferenceable(64) %sret, [8 entry-block: %a = alloca [8 x i64], align 8 %a.cast = bitcast [8 x i64]* %a to i8* - call void @llvm.lifetime.start(i64 64, i8* %a.cast) + call void @llvm.lifetime.start.p0i8(i64 64, i8* %a.cast) call void @llvm.memset.p0i8.i64(i8* %a.cast, i8 0, i64 64, i32 8, i1 false) %sret.cast = bitcast [8 x i64]* %sret to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %sret.cast, i8* %a.cast, i64 64, i32 8, i1 false) call void @llvm.memset.p0i8.i64(i8* %a.cast, i8 42, i64 32, i32 8, i1 false) %out.cast = bitcast [8 x i64]* %out to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %out.cast, i8* %a.cast, i64 64, i32 8, i1 false) - call void @llvm.lifetime.end(i64 64, i8* %a.cast) + call void @llvm.lifetime.end.p0i8(i64 64, i8* %a.cast) ret void ; CHECK-LABEL: @bar( @@ -48,8 +48,8 @@ entry-block: ; CHECK: ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) nounwind declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind diff --git a/llvm/test/Transforms/MemCpyOpt/memcpy-undef.ll b/llvm/test/Transforms/MemCpyOpt/memcpy-undef.ll index c75d020c078..06a41829a4e 100644 --- a/llvm/test/Transforms/MemCpyOpt/memcpy-undef.ll +++ b/llvm/test/Transforms/MemCpyOpt/memcpy-undef.ll @@ -22,7 +22,7 @@ define i32 @test1(%struct.foo* nocapture %foobie) nounwind noinline ssp uwtable } define void @test2(i8* sret noalias nocapture %out, i8* %in) nounwind noinline ssp uwtable { - call void @llvm.lifetime.start(i64 8, i8* %in) + call void @llvm.lifetime.start.p0i8(i64 8, i8* %in) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %out, i8* %in, i64 8, i32 1, i1 false) ret void @@ -32,7 +32,7 @@ define void @test2(i8* sret noalias nocapture %out, i8* %in) nounwind noinline s } define void @test3(i8* sret noalias nocapture %out, i8* %in) nounwind noinline ssp uwtable { - call void @llvm.lifetime.start(i64 4, i8* %in) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %in) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %out, i8* %in, i64 8, i32 1, i1 false) ret void @@ -43,4 +43,4 @@ define void @test3(i8* sret noalias nocapture %out, i8* %in) nounwind noinline s declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/Transforms/MemCpyOpt/pr29105.ll b/llvm/test/Transforms/MemCpyOpt/pr29105.ll index 0d377837226..03b176c4d24 100644 --- a/llvm/test/Transforms/MemCpyOpt/pr29105.ll +++ b/llvm/test/Transforms/MemCpyOpt/pr29105.ll @@ -11,25 +11,25 @@ entry-block: %0 = bitcast [2048 x i64]* %tmp0 to i8* %tmp2 = alloca %Foo, align 8 %x.sroa.0.0..sroa_cast6 = bitcast [2048 x i64]* %x.sroa.0 to i8* - call void @llvm.lifetime.start(i64 16384, i8* %x.sroa.0.0..sroa_cast6) - call void @llvm.lifetime.start(i64 16384, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 16384, i8* %x.sroa.0.0..sroa_cast6) + call void @llvm.lifetime.start.p0i8(i64 16384, i8* %0) call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 16384, i32 8, i1 false) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %x.sroa.0.0..sroa_cast6, i8* %0, i64 16384, i32 8, i1 false) - call void @llvm.lifetime.end(i64 16384, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 16384, i8* %0) %1 = bitcast %Foo* %tmp2 to i8* - call void @llvm.lifetime.start(i64 16384, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 16384, i8* %1) call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %x.sroa.0.0..sroa_cast6, i64 16384, i32 8, i1 false) call void @bar(%Foo* noalias nocapture nonnull dereferenceable(16384) %tmp2) - call void @llvm.lifetime.end(i64 16384, i8* %1) - call void @llvm.lifetime.end(i64 16384, i8* %x.sroa.0.0..sroa_cast6) + call void @llvm.lifetime.end.p0i8(i64 16384, i8* %1) + call void @llvm.lifetime.end.p0i8(i64 16384, i8* %x.sroa.0.0..sroa_cast6) ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1 -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 declare void @bar(%Foo* noalias nocapture readonly dereferenceable(16384)) unnamed_addr #0 diff --git a/llvm/test/Transforms/NewGVN/cond_br2.ll b/llvm/test/Transforms/NewGVN/cond_br2.ll index e511ff7ed51..ff7a76d1469 100644 --- a/llvm/test/Transforms/NewGVN/cond_br2.ll +++ b/llvm/test/Transforms/NewGVN/cond_br2.ll @@ -19,7 +19,7 @@ define void @_Z4testv() #0 personality i8* bitcast (i32 (...)* @__gxx_personalit entry: %sv = alloca %"class.llvm::SmallVector", align 16 %0 = bitcast %"class.llvm::SmallVector"* %sv to i8* - call void @llvm.lifetime.start(i64 64, i8* %0) #1 + call void @llvm.lifetime.start.p0i8(i64 64, i8* %0) #1 %BeginX.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SmallVector", %"class.llvm::SmallVector"* %sv, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0 %FirstEl.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SmallVector", %"class.llvm::SmallVector"* %sv, i64 0, i32 0, i32 0, i32 0, i32 0, i32 3 %1 = bitcast %"union.llvm::SmallVectorBase::U"* %FirstEl.i.i.i.i.i.i to i8* @@ -95,7 +95,7 @@ if.then.i.i.i20: ; preds = %invoke.cont3 br label %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit21 _ZN4llvm11SmallVectorIiLj8EED1Ev.exit21: ; preds = %invoke.cont3, %if.then.i.i.i20 - call void @llvm.lifetime.end(i64 64, i8* %0) #1 + call void @llvm.lifetime.end.p0i8(i64 64, i8* %0) #1 ret void lpad: ; preds = %if.end.i14, %if.end.i, %invoke.cont2 @@ -114,14 +114,14 @@ eh.resume: ; preds = %if.then.i.i.i, %lpa } ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 declare i32 @__gxx_personality_v0(...) declare void @_Z1gRN4llvm11SmallVectorIiLj8EEE(%"class.llvm::SmallVector"*) #2 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 declare void @_ZN4llvm15SmallVectorBase8grow_podEmm(%"class.llvm::SmallVectorBase"*, i64, i64) #2 diff --git a/llvm/test/Transforms/NewGVN/lifetime-simple.ll b/llvm/test/Transforms/NewGVN/lifetime-simple.ll index 63e361c49eb..382c7da2b3f 100644 --- a/llvm/test/Transforms/NewGVN/lifetime-simple.ll +++ b/llvm/test/Transforms/NewGVN/lifetime-simple.ll @@ -8,13 +8,13 @@ define i8 @test(i8* %P) nounwind { ; CHECK-NOT: load ; CHECK: lifetime.end entry: - call void @llvm.lifetime.start(i64 32, i8* %P) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %P) %0 = load i8, i8* %P store i8 1, i8* %P - call void @llvm.lifetime.end(i64 32, i8* %P) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %P) %1 = load i8, i8* %P ret i8 %1 } -declare void @llvm.lifetime.start(i64 %S, i8* nocapture %P) readonly -declare void @llvm.lifetime.end(i64 %S, i8* nocapture %P) +declare void @llvm.lifetime.start.p0i8(i64 %S, i8* nocapture %P) readonly +declare void @llvm.lifetime.end.p0i8(i64 %S, i8* nocapture %P) diff --git a/llvm/test/Transforms/SROA/basictest.ll b/llvm/test/Transforms/SROA/basictest.ll index 70096f37be0..aa00e89ea04 100644 --- a/llvm/test/Transforms/SROA/basictest.ll +++ b/llvm/test/Transforms/SROA/basictest.ll @@ -3,8 +3,8 @@ target datalayout = "e-p:64:64:64-p1:16:16:16-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n8:16:32:64" -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) define i32 @test0() { ; CHECK-LABEL: @test0( @@ -16,22 +16,22 @@ entry: %a2 = alloca float %a1.i8 = bitcast i32* %a1 to i8* - call void @llvm.lifetime.start(i64 4, i8* %a1.i8) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %a1.i8) store i32 0, i32* %a1 %v1 = load i32, i32* %a1 - call void @llvm.lifetime.end(i64 4, i8* %a1.i8) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %a1.i8) %a2.i8 = bitcast float* %a2 to i8* - call void @llvm.lifetime.start(i64 4, i8* %a2.i8) + call void @llvm.lifetime.start.p0i8(i64 4, i8* %a2.i8) store float 0.0, float* %a2 %v2 = load float , float * %a2 %v2.int = bitcast float %v2 to i32 %sum1 = add i32 %v1, %v2.int - call void @llvm.lifetime.end(i64 4, i8* %a2.i8) + call void @llvm.lifetime.end.p0i8(i64 4, i8* %a2.i8) ret i32 %sum1 } @@ -1057,7 +1057,7 @@ define void @PR14059.1(double* %d) { entry: %X.sroa.0.i = alloca double, align 8 %0 = bitcast double* %X.sroa.0.i to i8* - call void @llvm.lifetime.start(i64 -1, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %0) ; Store to the low 32-bits... %X.sroa.0.0.cast2.i = bitcast double* %X.sroa.0.i to i32* @@ -1084,7 +1084,7 @@ entry: %accum.real.i = load double, double* %d, align 8 %add.r.i = fadd double %accum.real.i, %X.sroa.0.0.load1.i store double %add.r.i, double* %d, align 8 - call void @llvm.lifetime.end(i64 -1, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %0) ret void } @@ -1652,7 +1652,7 @@ define void @PR25873(%struct.STest* %outData) { entry: %tmpData = alloca %struct.STest, align 8 %0 = bitcast %struct.STest* %tmpData to i8* - call void @llvm.lifetime.start(i64 16, i8* %0) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) %x = getelementptr inbounds %struct.STest, %struct.STest* %tmpData, i64 0, i32 0, i32 0 store float 1.230000e+02, float* %x, align 8 %y = getelementptr inbounds %struct.STest, %struct.STest* %tmpData, i64 0, i32 0, i32 1 @@ -1664,7 +1664,7 @@ entry: store i64 %3, i64* %2, align 8 %4 = bitcast %struct.STest* %outData to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %0, i64 16, i32 4, i1 false) - call void @llvm.lifetime.end(i64 16, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %0) ret void } @@ -1677,10 +1677,10 @@ define void @PR27999() unnamed_addr { entry-block: %0 = alloca [2 x i64], align 8 %1 = bitcast [2 x i64]* %0 to i8* - call void @llvm.lifetime.start(i64 16, i8* %1) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) %2 = getelementptr inbounds [2 x i64], [2 x i64]* %0, i32 0, i32 1 %3 = bitcast i64* %2 to i8* - call void @llvm.lifetime.end(i64 8, i8* %3) + call void @llvm.lifetime.end.p0i8(i64 8, i8* %3) ret void } @@ -1692,6 +1692,6 @@ bb1: %e.7.sroa.6.i = alloca i32, align 1 %e.7.sroa.6.0.load81.i = load i32, i32* %e.7.sroa.6.i, align 1 %0 = bitcast i32* %e.7.sroa.6.i to i8* - call void @llvm.lifetime.end(i64 2, i8* %0) + call void @llvm.lifetime.end.p0i8(i64 2, i8* %0) ret void } diff --git a/llvm/test/Transforms/SROA/pr26972.ll b/llvm/test/Transforms/SROA/pr26972.ll index a71058c05b9..3140a805fc4 100644 --- a/llvm/test/Transforms/SROA/pr26972.ll +++ b/llvm/test/Transforms/SROA/pr26972.ll @@ -10,8 +10,8 @@ target triple = "x86_64-pc-linux" define void @fn1() { %a = alloca [1073741825 x i32], align 16 %t0 = bitcast [1073741825 x i32]* %a to i8* - call void @llvm.lifetime.end(i64 4294967300, i8* %t0) + call void @llvm.lifetime.end.p0i8(i64 4294967300, i8* %t0) ret void } -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) diff --git a/llvm/test/Transforms/SROA/vector-lifetime-intrinsic.ll b/llvm/test/Transforms/SROA/vector-lifetime-intrinsic.ll index 37cf394382a..abb5cb2ea33 100644 --- a/llvm/test/Transforms/SROA/vector-lifetime-intrinsic.ll +++ b/llvm/test/Transforms/SROA/vector-lifetime-intrinsic.ll @@ -3,10 +3,10 @@ target datalayout = "e-p:64:32-i64:32-v32:32-n32-S64" ; Function Attrs: nounwind -declare void @llvm.lifetime.start(i64, i8* nocapture) #0 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0 ; Function Attrs: nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) #0 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #0 ; CHECK: @wombat ; CHECK-NOT: alloca @@ -15,12 +15,12 @@ define void @wombat(<4 x float> %arg1) { bb: %tmp = alloca <4 x float>, align 16 %tmp8 = bitcast <4 x float>* %tmp to i8* - call void @llvm.lifetime.start(i64 16, i8* %tmp8) + call void @llvm.lifetime.start.p0i8(i64 16, i8* %tmp8) store <4 x float> %arg1, <4 x float>* %tmp, align 16 %tmp17 = bitcast <4 x float>* %tmp to <3 x float>* %tmp18 = load <3 x float>, <3 x float>* %tmp17 %tmp20 = bitcast <4 x float>* %tmp to i8* - call void @llvm.lifetime.end(i64 16, i8* %tmp20) + call void @llvm.lifetime.end.p0i8(i64 16, i8* %tmp20) call void @wombat3(<3 x float> %tmp18) ret void } diff --git a/llvm/test/Transforms/SafeStack/X86/call.ll b/llvm/test/Transforms/SafeStack/X86/call.ll index cbac4ce1bb0..2d78bb1a689 100644 --- a/llvm/test/Transforms/SafeStack/X86/call.ll +++ b/llvm/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/llvm/test/Transforms/SafeStack/X86/coloring-ssp.ll b/llvm/test/Transforms/SafeStack/X86/coloring-ssp.ll index d71babe200d..3b04fdf13fb 100644 --- a/llvm/test/Transforms/SafeStack/X86/coloring-ssp.ll +++ b/llvm/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/llvm/test/Transforms/SafeStack/X86/coloring.ll b/llvm/test/Transforms/SafeStack/X86/coloring.ll index 3ed9ccb43f3..76bdf37dbf4 100644 --- a/llvm/test/Transforms/SafeStack/X86/coloring.ll +++ b/llvm/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/llvm/test/Transforms/SafeStack/X86/coloring2.ll b/llvm/test/Transforms/SafeStack/X86/coloring2.ll index f3ac6d735c9..2a8f871945f 100644 --- a/llvm/test/Transforms/SafeStack/X86/coloring2.ll +++ b/llvm/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/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll b/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll index 35e9b7711d2..8059a722fd4 100644 --- a/llvm/test/Transforms/SafeStack/X86/debug-loc2.ll +++ b/llvm/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/llvm/test/Transforms/SafeStack/X86/layout-frag.ll b/llvm/test/Transforms/SafeStack/X86/layout-frag.ll index 125eb0f8be9..b127defc2c5 100644 --- a/llvm/test/Transforms/SafeStack/X86/layout-frag.ll +++ b/llvm/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*) diff --git a/llvm/test/Transforms/SampleProfile/remarks.ll b/llvm/test/Transforms/SampleProfile/remarks.ll index 908e4f8b10b..4be043e8268 100644 --- a/llvm/test/Transforms/SampleProfile/remarks.ll +++ b/llvm/test/Transforms/SampleProfile/remarks.ll @@ -33,11 +33,11 @@ entry: %sum = alloca i64, align 8 %i = alloca i32, align 4 %0 = bitcast i64* %sum to i8*, !dbg !19 - call void @llvm.lifetime.start(i64 8, i8* %0) #4, !dbg !19 + call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #4, !dbg !19 call void @llvm.dbg.declare(metadata i64* %sum, metadata !9, metadata !20), !dbg !21 store i64 0, i64* %sum, align 8, !dbg !21, !tbaa !22 %1 = bitcast i32* %i to i8*, !dbg !26 - call void @llvm.lifetime.start(i64 4, i8* %1) #4, !dbg !26 + call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #4, !dbg !26 call void @llvm.dbg.declare(metadata i32* %i, metadata !10, metadata !20), !dbg !27 store i32 0, i32* %i, align 4, !dbg !27, !tbaa !28 br label %for.cond, !dbg !26 @@ -49,7 +49,7 @@ for.cond: ; preds = %for.inc, %entry for.cond.cleanup: ; preds = %for.cond %3 = bitcast i32* %i to i8*, !dbg !36 - call void @llvm.lifetime.end(i64 4, i8* %3) #4, !dbg !36 + call void @llvm.lifetime.end.p0i8(i64 4, i8* %3) #4, !dbg !36 br label %for.end for.body: ; preds = %for.cond @@ -88,12 +88,12 @@ for.inc: ; preds = %if.end for.end: ; preds = %for.cond.cleanup %10 = load i64, i64* %sum, align 8, !dbg !53, !tbaa !22 %11 = bitcast i64* %sum to i8*, !dbg !54 - call void @llvm.lifetime.end(i64 8, i8* %11) #4, !dbg !54 + call void @llvm.lifetime.end.p0i8(i64 8, i8* %11) #4, !dbg !54 ret i64 %10, !dbg !55 } ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.start(i64, i8* nocapture) #1 +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind readnone declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 @@ -102,7 +102,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #2 declare i32 @rand() #3 ; Function Attrs: nounwind argmemonly -declare void @llvm.lifetime.end(i64, i8* nocapture) #1 +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1 ; Function Attrs: nounwind uwtable define i32 @main() #0 !dbg !13 { diff --git a/llvm/test/Transforms/SimplifyCFG/critedge-assume.ll b/llvm/test/Transforms/SimplifyCFG/critedge-assume.ll index db24685a37b..bfeb65769de 100644 --- a/llvm/test/Transforms/SimplifyCFG/critedge-assume.ll +++ b/llvm/test/Transforms/SimplifyCFG/critedge-assume.ll @@ -58,7 +58,7 @@ while.end: ret void } -declare void @llvm.lifetime.start(i64, i8* nocapture) +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) declare i32 @_ZNK1F5beginEv(%class.F*) @@ -70,7 +70,7 @@ declare noalias nonnull i8* @_Znwm(i64) declare void @_ZN1B6appendEv(%class.B*) -declare void @llvm.lifetime.end(i64, i8* nocapture) +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) declare i1 @llvm.type.test(i8*, metadata) diff --git a/llvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll b/llvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll index 9f657a81a05..f2e0114a2a3 100644 --- a/llvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll +++ b/llvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll @@ -413,14 +413,14 @@ return: ; preds = %invoke.cont, %catch define i32 @f9() personality i32 (...)* @__CxxFrameHandler3 { entry: %s = alloca i8, align 1 - call void @llvm.lifetime.start(i64 1, i8* nonnull %s) + call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %s) %bc = bitcast i8* %s to %struct.S2* invoke void @"\01??1S2@@QEAA@XZ"(%struct.S2* %bc) to label %try.cont unwind label %ehcleanup ehcleanup: %cleanup.pad = cleanuppad within none [] - call void @llvm.lifetime.end(i64 1, i8* nonnull %s) + call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %s) cleanupret from %cleanup.pad unwind label %catch.dispatch catch.dispatch: @@ -466,5 +466,5 @@ declare void @use_x(i32 %x) declare i32 @__CxxFrameHandler3(...) -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) diff --git a/llvm/test/Transforms/SimplifyCFG/lifetime.ll b/llvm/test/Transforms/SimplifyCFG/lifetime.ll index 7c66be52950..270fe4d5442 100644 --- a/llvm/test/Transforms/SimplifyCFG/lifetime.ll +++ b/llvm/test/Transforms/SimplifyCFG/lifetime.ll @@ -10,11 +10,11 @@ define void @foo(i1 %x) { entry: %a = alloca i8 - call void @llvm.lifetime.start(i64 -1, i8* %a) nounwind + call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a) nounwind br i1 %x, label %bb0, label %bb1 bb0: - call void @llvm.lifetime.end(i64 -1, i8* %a) nounwind + call void @llvm.lifetime.end.p0i8(i64 -1, i8* %a) nounwind br label %bb1 bb1: @@ -24,6 +24,6 @@ bb1: declare void @f() -declare void @llvm.lifetime.start(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind -declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind +declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind diff --git a/llvm/test/Transforms/Util/MemorySSA/lifetime-simple.ll b/llvm/test/Transforms/Util/MemorySSA/lifetime-simple.ll index 99406b21048..f1db15cc577 100644 --- a/llvm/test/Transforms/Util/MemorySSA/lifetime-simple.ll +++ b/llvm/test/Transforms/Util/MemorySSA/lifetime-simple.ll @@ -7,8 +7,8 @@ define i8 @test(i8* %P, i8* %Q) { entry: ; CHECK: 1 = MemoryDef(liveOnEntry) -; CHECK-NEXT: call void @llvm.lifetime.start(i64 32, i8* %P) - call void @llvm.lifetime.start(i64 32, i8* %P) +; CHECK-NEXT: call void @llvm.lifetime.start.p0i8(i64 32, i8* %P) + call void @llvm.lifetime.start.p0i8(i64 32, i8* %P) ; CHECK: MemoryUse(1) ; CHECK-NEXT: %0 = load i8, i8* %P %0 = load i8, i8* %P @@ -16,8 +16,8 @@ entry: ; CHECK-NEXT: store i8 1, i8* %P store i8 1, i8* %P ; CHECK: 3 = MemoryDef(2) -; CHECK-NEXT: call void @llvm.lifetime.end(i64 32, i8* %P) - call void @llvm.lifetime.end(i64 32, i8* %P) +; CHECK-NEXT: call void @llvm.lifetime.end.p0i8(i64 32, i8* %P) + call void @llvm.lifetime.end.p0i8(i64 32, i8* %P) ; CHECK: MemoryUse(liveOnEntry) ; CHECK-NEXT: %1 = load i8, i8* %P %1 = load i8, i8* %P @@ -26,5 +26,5 @@ entry: %2 = load i8, i8* %Q ret i8 %1 } -declare void @llvm.lifetime.start(i64 %S, i8* nocapture %P) readonly -declare void @llvm.lifetime.end(i64 %S, i8* nocapture %P) +declare void @llvm.lifetime.start.p0i8(i64 %S, i8* nocapture %P) readonly +declare void @llvm.lifetime.end.p0i8(i64 %S, i8* nocapture %P) |