From 47f0b6630c78ab52c2197ec5e1c2d13a6acffed1 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 16 Dec 2022 12:20:51 +0100 Subject: [PATCH] [GlobalAA] Convert tests to opaque pointers (NFC) --- .../GlobalsModRef/2008-09-03-ReadGlobals.ll | 6 +- llvm/test/Analysis/GlobalsModRef/addrspacecast.ll | 12 ++-- llvm/test/Analysis/GlobalsModRef/aliastest.ll | 14 ++-- llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll | 24 +++---- .../Analysis/GlobalsModRef/chaining-analysis.ll | 10 +-- llvm/test/Analysis/GlobalsModRef/comdat-ipo.ll | 10 +-- llvm/test/Analysis/GlobalsModRef/dead-uses.ll | 10 +-- .../Analysis/GlobalsModRef/func-memattributes.ll | 14 ++-- .../GlobalsModRef/functions_without_nosync.ll | 8 +-- .../GlobalsModRef/global-used-by-global.ll | 28 ++++---- .../Analysis/GlobalsModRef/inaccessiblememonly.ll | 14 ++-- .../test/Analysis/GlobalsModRef/indirect-global.ll | 81 +++++++++++----------- .../GlobalsModRef/intrinsic_addressnottaken1.ll | 16 ++--- .../GlobalsModRef/intrinsic_addressnottaken2.ll | 22 +++--- .../GlobalsModRef/intrinsic_addresstaken.ll | 28 ++++---- llvm/test/Analysis/GlobalsModRef/memset-escape.ll | 37 +++++----- llvm/test/Analysis/GlobalsModRef/modreftest.ll | 10 +-- llvm/test/Analysis/GlobalsModRef/no-escape.ll | 36 +++++----- .../Analysis/GlobalsModRef/nonescaping-noalias.ll | 78 ++++++++++----------- llvm/test/Analysis/GlobalsModRef/pr12351.ll | 26 +++---- llvm/test/Analysis/GlobalsModRef/pr25309.ll | 20 +++--- .../Analysis/GlobalsModRef/pr35899-dbg-value.ll | 6 +- llvm/test/Analysis/GlobalsModRef/purecse.ll | 6 +- .../test/Analysis/GlobalsModRef/volatile-instrs.ll | 16 ++--- .../Analysis/GlobalsModRef/weak-interposition.ll | 10 +-- 25 files changed, 269 insertions(+), 273 deletions(-) diff --git a/llvm/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll b/llvm/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll index 92daa43..9678de6 100644 --- a/llvm/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll +++ b/llvm/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll @@ -1,9 +1,9 @@ ; RUN: opt < %s -aa-pipeline=globals-aa -passes='require,gvn' -S | FileCheck %s -@g = internal global i32 0 ; [#uses=2] +@g = internal global i32 0 ; [#uses=2] define i32 @r() { - %tmp = load i32, i32* @g ; [#uses=1] + %tmp = load i32, ptr @g ; [#uses=1] ret i32 %tmp } @@ -12,7 +12,7 @@ define i32 @f() { ; CHECK: call i32 @e() entry: %tmp = call i32 @e( ) ; [#uses=1] - store i32 %tmp, i32* @g + store i32 %tmp, ptr @g %tmp2 = call i32 @e( ) ; [#uses=1] ret i32 %tmp2 } diff --git a/llvm/test/Analysis/GlobalsModRef/addrspacecast.ll b/llvm/test/Analysis/GlobalsModRef/addrspacecast.ll index 7bc8032..9432dc0 100644 --- a/llvm/test/Analysis/GlobalsModRef/addrspacecast.ll +++ b/llvm/test/Analysis/GlobalsModRef/addrspacecast.ll @@ -6,11 +6,11 @@ ; CHECK-DAG: NoAlias: i32* %gp, i32* %p ; CHECK-DAG: NoAlias: i32* %p, i32 addrspace(3)* @g0 ; CHECK-DAG: MustAlias: i32* %gp, i32 addrspace(3)* @g0 -define i32 @test1(i32* %p) { - load i32, i32 addrspace(3)* @g0 - %gp = addrspacecast i32 addrspace(3)* @g0 to i32* - store i32 0, i32* %gp - store i32 1, i32* %p - %v = load i32, i32* %gp +define i32 @test1(ptr %p) { + load i32, ptr addrspace(3) @g0 + %gp = addrspacecast ptr addrspace(3) @g0 to ptr + store i32 0, ptr %gp + store i32 1, ptr %p + %v = load i32, ptr %gp ret i32 %v } diff --git a/llvm/test/Analysis/GlobalsModRef/aliastest.ll b/llvm/test/Analysis/GlobalsModRef/aliastest.ll index 6b7154e..2836a7c 100644 --- a/llvm/test/Analysis/GlobalsModRef/aliastest.ll +++ b/llvm/test/Analysis/GlobalsModRef/aliastest.ll @@ -3,15 +3,15 @@ ; Note that this test relies on an unsafe feature of GlobalsModRef. While this ; test is correct and safe, GMR's technique for handling this isn't generally. -@X = internal global i32 4 ; [#uses=1] +@X = internal global i32 4 ; [#uses=1] -define i32 @test(i32* %P) { +define i32 @test(ptr %P) { ; CHECK: @test -; CHECK-NEXT: store i32 7, i32* %P -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 7, ptr %P +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: ret i32 7 - store i32 7, i32* %P - store i32 12, i32* @X - %V = load i32, i32* %P ; [#uses=1] + store i32 7, ptr %P + store i32 12, ptr @X + %V = load i32, ptr %P ; [#uses=1] ret i32 %V } diff --git a/llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll b/llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll index 4670330..a68facb 100644 --- a/llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll +++ b/llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll @@ -2,36 +2,36 @@ @X = internal global i32 4 -define i32 @test_cmpxchg(i32* %P) { +define i32 @test_cmpxchg(ptr %P) { ; CHECK-LABEL: @test_cmpxchg -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: call void @modrefX_cmpxchg() -; CHECK-NEXT: %V = load i32, i32* @X +; CHECK-NEXT: %V = load i32, ptr @X ; CHECK-NEXT: ret i32 %V - store i32 12, i32* @X + store i32 12, ptr @X call void @modrefX_cmpxchg() - %V = load i32, i32* @X + %V = load i32, ptr @X ret i32 %V } define void @modrefX_cmpxchg() { - %1 = cmpxchg i32* @X, i32 0, i32 -1 monotonic monotonic + %1 = cmpxchg ptr @X, i32 0, i32 -1 monotonic monotonic ret void } -define i32 @test_atomicrmw(i32* %P) { +define i32 @test_atomicrmw(ptr %P) { ; CHECK-LABEL: @test_atomicrmw -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: call void @modrefXatomicrmw() -; CHECK-NEXT: %V = load i32, i32* @X +; CHECK-NEXT: %V = load i32, ptr @X ; CHECK-NEXT: ret i32 %V - store i32 12, i32* @X + store i32 12, ptr @X call void @modrefXatomicrmw() - %V = load i32, i32* @X + %V = load i32, ptr @X ret i32 %V } define void @modrefXatomicrmw() { - %1 = atomicrmw add i32* @X, i32 1 acquire + %1 = atomicrmw add ptr @X, i32 1 acquire ret void } diff --git a/llvm/test/Analysis/GlobalsModRef/chaining-analysis.ll b/llvm/test/Analysis/GlobalsModRef/chaining-analysis.ll index 2f49898..da230b7 100644 --- a/llvm/test/Analysis/GlobalsModRef/chaining-analysis.ll +++ b/llvm/test/Analysis/GlobalsModRef/chaining-analysis.ll @@ -3,18 +3,18 @@ ; This test requires the use of previous analyses to determine that ; doesnotmodX does not modify X (because 'sin' doesn't). -@X = internal global i32 4 ; [#uses=2] +@X = internal global i32 4 ; [#uses=2] declare double @sin(double) readnone -define i32 @test(i32* %P) { +define i32 @test(ptr %P) { ; CHECK: @test -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: call double @doesnotmodX(double 1.000000e+00) ; CHECK-NEXT: ret i32 12 - store i32 12, i32* @X + store i32 12, ptr @X call double @doesnotmodX( double 1.000000e+00 ) ; :1 [#uses=0] - %V = load i32, i32* @X ; [#uses=1] + %V = load i32, ptr @X ; [#uses=1] ret i32 %V } diff --git a/llvm/test/Analysis/GlobalsModRef/comdat-ipo.ll b/llvm/test/Analysis/GlobalsModRef/comdat-ipo.ll index 35afcee..1eb4de1 100644 --- a/llvm/test/Analysis/GlobalsModRef/comdat-ipo.ll +++ b/llvm/test/Analysis/GlobalsModRef/comdat-ipo.ll @@ -4,15 +4,15 @@ @X = internal global i32 4 -define i32 @test(i32* %P) { +define i32 @test(ptr %P) { ; CHECK: @test -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: call void @doesnotmodX() -; CHECK-NEXT: %V = load i32, i32* @X +; CHECK-NEXT: %V = load i32, ptr @X ; CHECK-NEXT: ret i32 %V - store i32 12, i32* @X + store i32 12, ptr @X call void @doesnotmodX( ) - %V = load i32, i32* @X + %V = load i32, ptr @X ret i32 %V } diff --git a/llvm/test/Analysis/GlobalsModRef/dead-uses.ll b/llvm/test/Analysis/GlobalsModRef/dead-uses.ll index 0a16001..04d3011 100644 --- a/llvm/test/Analysis/GlobalsModRef/dead-uses.ll +++ b/llvm/test/Analysis/GlobalsModRef/dead-uses.ll @@ -10,7 +10,7 @@ define i32 @g() { ; Make sure the load of @a is hoisted. ; CHECK-LABEL: define i32 @g() ; CHECK: entry: -; CHECK-NEXT: load i32, i32* @a, align 4 +; CHECK-NEXT: load i32, ptr @a, align 4 ; CHECK-NEXT: br label %for.cond entry: br label %for.cond @@ -22,7 +22,7 @@ for.cond: ; preds = %for.inc, %entry br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %0 = load i32, i32* @a, align 4 + %0 = load i32, ptr @a, align 4 %add = add nsw i32 %sum.0, %0 call void @f() br label %for.inc @@ -42,13 +42,13 @@ entry: br i1 %tobool, label %if.then, label %if.end if.then: ; preds = %entry - store i32 ptrtoint (i32* @a to i32), i32* @c, align 4 + store i32 ptrtoint (ptr @a to i32), ptr @c, align 4 br label %if.end if.end: ; preds = %if.then, %entry - %0 = load i32, i32* @c, align 4 + %0 = load i32, ptr @c, align 4 %inc = add nsw i32 %0, 1 - store i32 %inc, i32* @c, align 4 + store i32 %inc, ptr @c, align 4 ret void } diff --git a/llvm/test/Analysis/GlobalsModRef/func-memattributes.ll b/llvm/test/Analysis/GlobalsModRef/func-memattributes.ll index 3c912b2..85fc02c 100644 --- a/llvm/test/Analysis/GlobalsModRef/func-memattributes.ll +++ b/llvm/test/Analysis/GlobalsModRef/func-memattributes.ll @@ -4,12 +4,12 @@ define i32 @test0() { ; CHECK-LABEL: @test0 -; CHECK: store i32 0, i32* @X +; CHECK: store i32 0, ptr @X ; CHECK-NEXT: call i32 @func_readonly() #0 -; CHECK-NEXT: store i32 1, i32* @X - store i32 0, i32* @X +; CHECK-NEXT: store i32 1, ptr @X + store i32 0, ptr @X %x = call i32 @func_readonly() #0 - store i32 1, i32* @X + store i32 1, ptr @X ret i32 %x } @@ -17,10 +17,10 @@ define i32 @test1() { ; CHECK-LABEL: @test1 ; CHECK-NOT: store ; CHECK: call i32 @func_read_argmem_only() #1 -; CHECK-NEXT: store i32 3, i32* @X - store i32 2, i32* @X +; CHECK-NEXT: store i32 3, ptr @X + store i32 2, ptr @X %x = call i32 @func_read_argmem_only() #1 - store i32 3, i32* @X + store i32 3, ptr @X ret i32 %x } diff --git a/llvm/test/Analysis/GlobalsModRef/functions_without_nosync.ll b/llvm/test/Analysis/GlobalsModRef/functions_without_nosync.ll index 1eb1aa1..e92a458 100644 --- a/llvm/test/Analysis/GlobalsModRef/functions_without_nosync.ll +++ b/llvm/test/Analysis/GlobalsModRef/functions_without_nosync.ll @@ -14,9 +14,9 @@ target triple = "nvptx64-nvidia-cuda" ; CHECK: tail call void @llvm.nvvm.bar.sync(i32 0) ; CHECK: load define dso_local i32 @bar_sync(i32 %0) local_unnamed_addr { - store i32 %0, i32* addrspacecast (i32 addrspace(3)* @s to i32*), align 4 + store i32 %0, ptr addrspacecast (ptr addrspace(3) @s to ptr), align 4 tail call void @llvm.nvvm.bar.sync(i32 0) - %2 = load i32, i32* addrspacecast (i32 addrspace(3)* @s to i32*), align 4 + %2 = load i32, ptr addrspacecast (ptr addrspace(3) @s to ptr), align 4 ret i32 %2 } @@ -27,9 +27,9 @@ declare void @llvm.nvvm.bar.sync(i32) #0 ; CHECK: tail call void @llvm.nvvm.barrier0() ; CHECK: load define dso_local i32 @barrier0(i32 %0) local_unnamed_addr { - store i32 %0, i32* addrspacecast (i32 addrspace(3)* @s to i32*), align 4 + store i32 %0, ptr addrspacecast (ptr addrspace(3) @s to ptr), align 4 tail call void @llvm.nvvm.barrier0() - %2 = load i32, i32* addrspacecast (i32 addrspace(3)* @s to i32*), align 4 + %2 = load i32, ptr addrspacecast (ptr addrspace(3) @s to ptr), align 4 ret i32 %2 } diff --git a/llvm/test/Analysis/GlobalsModRef/global-used-by-global.ll b/llvm/test/Analysis/GlobalsModRef/global-used-by-global.ll index 3265c65..d8fa4a1 100644 --- a/llvm/test/Analysis/GlobalsModRef/global-used-by-global.ll +++ b/llvm/test/Analysis/GlobalsModRef/global-used-by-global.ll @@ -2,9 +2,9 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" -@a = internal global i32* null, align 8 -@b = global i32** @a, align 8 -@c = global i32** @a, align 8 +@a = internal global ptr null, align 8 +@b = global ptr @a, align 8 +@c = global ptr @a, align 8 @d = common global i32 0, align 4 ; Make sure we globals-aa doesn't get confused and allow hoisting @@ -12,15 +12,15 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" ; CHECK-LABEL: define i32 @main() ; CHECK: for.body: -; CHECK-NEXT: %2 = load i32**, i32*** @b, align 8 -; CHECK-NEXT: store i32* @d, i32** %2, align 8 -; CHECK-NEXT: %3 = load i32*, i32** @a, align 8 -; CHECK-NEXT: %cmp1 = icmp ne i32* %3, @d +; CHECK-NEXT: %2 = load ptr, ptr @b, align 8 +; CHECK-NEXT: store ptr @d, ptr %2, align 8 +; CHECK-NEXT: %3 = load ptr, ptr @a, align 8 +; CHECK-NEXT: %cmp1 = icmp ne ptr %3, @d ; CHECK-NEXT: br i1 %cmp1, label %if.then, label %if.end define i32 @main() { entry: - %0 = load i32, i32* @d, align 4 + %0 = load i32, ptr @d, align 4 br label %for.cond for.cond: ; preds = %if.end, %entry @@ -29,19 +29,19 @@ for.cond: ; preds = %if.end, %entry br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %2 = load i32**, i32*** @b, align 8 - store i32* @d, i32** %2, align 8 - %3 = load i32*, i32** @a, align 8 - %cmp1 = icmp ne i32* %3, @d + %2 = load ptr, ptr @b, align 8 + store ptr @d, ptr %2, align 8 + %3 = load ptr, ptr @a, align 8 + %cmp1 = icmp ne ptr %3, @d br i1 %cmp1, label %if.then, label %if.end if.then: ; preds = %for.body br label %return if.end: ; preds = %for.body - %4 = load i32, i32* @d, align 4 + %4 = load i32, ptr @d, align 4 %inc = add nsw i32 %4, 1 - store i32 %inc, i32* @d, align 4 + store i32 %inc, ptr @d, align 4 br label %for.cond for.end: ; preds = %for.cond diff --git a/llvm/test/Analysis/GlobalsModRef/inaccessiblememonly.ll b/llvm/test/Analysis/GlobalsModRef/inaccessiblememonly.ll index d7a3cfc..f808a6e 100644 --- a/llvm/test/Analysis/GlobalsModRef/inaccessiblememonly.ll +++ b/llvm/test/Analysis/GlobalsModRef/inaccessiblememonly.ll @@ -5,17 +5,17 @@ target triple = "x86_64-unknown-linux-gnu" define void @donteliminate() { ; CHECK-LABEL: donteliminate -; CHECK-NEXT: tail call noalias i8* @allocmemory() -; CHECK-NEXT: tail call noalias i8* @allocmemory() -; CHECK-NEXT: tail call noalias i8* @allocmemory() +; CHECK-NEXT: tail call noalias ptr @allocmemory() +; CHECK-NEXT: tail call noalias ptr @allocmemory() +; CHECK-NEXT: tail call noalias ptr @allocmemory() ; CHECK-NEXT: ret void - %1 = tail call noalias i8* @allocmemory() - %2 = tail call noalias i8* @allocmemory() - %3 = tail call noalias i8* @allocmemory() + %1 = tail call noalias ptr @allocmemory() + %2 = tail call noalias ptr @allocmemory() + %3 = tail call noalias ptr @allocmemory() ret void } ; Function Attrs: inaccessiblememonly -declare noalias i8* @allocmemory() #0 +declare noalias ptr @allocmemory() #0 attributes #0 = { inaccessiblememonly } diff --git a/llvm/test/Analysis/GlobalsModRef/indirect-global.ll b/llvm/test/Analysis/GlobalsModRef/indirect-global.ll index 45fec10..fc7f2164 100644 --- a/llvm/test/Analysis/GlobalsModRef/indirect-global.ll +++ b/llvm/test/Analysis/GlobalsModRef/indirect-global.ll @@ -6,89 +6,86 @@ target datalayout = "p:32:32:32" -@G = internal global i32* null ; [#uses=3] +@G = internal global ptr null ; [#uses=3] -declare noalias i8* @malloc(i32) allockind("alloc,uninitialized") allocsize(0) inaccessiblememonly +declare noalias ptr @malloc(i32) allockind("alloc,uninitialized") allocsize(0) inaccessiblememonly define void @malloc_init() { ; CHECK-LABEL: @malloc_init( -; CHECK-NEXT: [[A:%.*]] = call dereferenceable_or_null(4) i8* @malloc(i32 4) -; CHECK-NEXT: store i8* [[A]], i8** bitcast (i32** @G to i8**), align 4 +; CHECK-NEXT: [[A:%.*]] = call dereferenceable_or_null(4) ptr @malloc(i32 4) +; CHECK-NEXT: store ptr [[A]], ptr @G, align 4 ; CHECK-NEXT: ret void ; - %a = call i8* @malloc(i32 4) - %A = bitcast i8* %a to i32* - store i32* %A, i32** @G + %a = call ptr @malloc(i32 4) + store ptr %a, ptr @G ret void } -define i32 @malloc_test(i32* %P) { +define i32 @malloc_test(ptr %P) { ; CHECK-LABEL: @malloc_test( -; CHECK-NEXT: store i32 123, i32* [[P:%.*]], align 4 +; CHECK-NEXT: store i32 123, ptr [[P:%.*]], align 4 ; CHECK-NEXT: ret i32 0 ; - %g1 = load i32*, i32** @G ; [#uses=2] - %h1 = load i32, i32* %g1 ; [#uses=1] - store i32 123, i32* %P - %g2 = load i32*, i32** @G ; [#uses=0] - %h2 = load i32, i32* %g1 ; [#uses=1] + %g1 = load ptr, ptr @G ; [#uses=2] + %h1 = load i32, ptr %g1 ; [#uses=1] + store i32 123, ptr %P + %g2 = load ptr, ptr @G ; [#uses=0] + %h2 = load i32, ptr %g1 ; [#uses=1] %X = sub i32 %h1, %h2 ; [#uses=1] ret i32 %X } -@G2 = internal global i32* null ; [#uses=3] +@G2 = internal global ptr null ; [#uses=3] -declare noalias i8* @calloc(i32, i32) allockind("alloc,zeroed") allocsize(0,1) inaccessiblememonly +declare noalias ptr @calloc(i32, i32) allockind("alloc,zeroed") allocsize(0,1) inaccessiblememonly define void @calloc_init() { ; CHECK-LABEL: @calloc_init( -; CHECK-NEXT: [[A:%.*]] = call dereferenceable_or_null(4) i8* @calloc(i32 4, i32 1) -; CHECK-NEXT: store i8* [[A]], i8** bitcast (i32** @G2 to i8**), align 4 +; CHECK-NEXT: [[A:%.*]] = call dereferenceable_or_null(4) ptr @calloc(i32 4, i32 1) +; CHECK-NEXT: store ptr [[A]], ptr @G2, align 4 ; CHECK-NEXT: ret void ; - %a = call i8* @calloc(i32 4, i32 1) - %A = bitcast i8* %a to i32* - store i32* %A, i32** @G2 + %a = call ptr @calloc(i32 4, i32 1) + store ptr %a, ptr @G2 ret void } -define i32 @calloc_test(i32* %P) { +define i32 @calloc_test(ptr %P) { ; CHECK-LABEL: @calloc_test( -; CHECK-NEXT: store i32 123, i32* [[P:%.*]], align 4 +; CHECK-NEXT: store i32 123, ptr [[P:%.*]], align 4 ; CHECK-NEXT: ret i32 0 ; - %g1 = load i32*, i32** @G2 ; [#uses=2] - %h1 = load i32, i32* %g1 ; [#uses=1] - store i32 123, i32* %P - %g2 = load i32*, i32** @G2 ; [#uses=0] - %h2 = load i32, i32* %g1 ; [#uses=1] + %g1 = load ptr, ptr @G2 ; [#uses=2] + %h1 = load i32, ptr %g1 ; [#uses=1] + store i32 123, ptr %P + %g2 = load ptr, ptr @G2 ; [#uses=0] + %h2 = load i32, ptr %g1 ; [#uses=1] %X = sub i32 %h1, %h2 ; [#uses=1] ret i32 %X } -@G3 = internal global i32* null ; [#uses=3] +@G3 = internal global ptr null ; [#uses=3] -declare noalias i8* @my_alloc(i32) +declare noalias ptr @my_alloc(i32) define void @my_alloc_init() { ; CHECK-LABEL: @my_alloc_init( -; CHECK-NEXT: [[A:%.*]] = call i8* @my_alloc(i32 4) -; CHECK-NEXT: store i8* [[A]], i8** bitcast (i32** @G3 to i8**), align 4 +; CHECK-NEXT: [[A:%.*]] = call ptr @my_alloc(i32 4) +; CHECK-NEXT: store ptr [[A]], ptr @G3, align 4 ; CHECK-NEXT: ret void ; - %a = call i8* @my_alloc(i32 4) - %A = bitcast i8* %a to i32* - store i32* %A, i32** @G3 + %a = call ptr @my_alloc(i32 4) + store ptr %a, ptr @G3 ret void } -define i32 @my_alloc_test(i32* %P) { +define i32 @my_alloc_test(ptr %P) { ; CHECK-LABEL: @my_alloc_test( -; CHECK-NEXT: store i32 123, i32* [[P:%.*]], align 4 +; CHECK-NEXT: store i32 123, ptr [[P:%.*]], align 4 ; CHECK-NEXT: ret i32 0 ; - %g1 = load i32*, i32** @G3 ; [#uses=2] - %h1 = load i32, i32* %g1 ; [#uses=1] - store i32 123, i32* %P - %g2 = load i32*, i32** @G3 ; [#uses=0] - %h2 = load i32, i32* %g1 ; [#uses=1] + %g1 = load ptr, ptr @G3 ; [#uses=2] + %h1 = load i32, ptr %g1 ; [#uses=1] + store i32 123, ptr %P + %g2 = load ptr, ptr @G3 ; [#uses=0] + %h2 = load i32, ptr %g1 ; [#uses=1] %X = sub i32 %h1, %h2 ; [#uses=1] ret i32 %X } diff --git a/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken1.ll b/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken1.ll index 399843d..84bae7f 100644 --- a/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken1.ll +++ b/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken1.ll @@ -8,8 +8,8 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK-LABEL: @main() define dso_local i32 @main() { entry: - %tmp0 = call i8* @llvm.stacksave() #1 - %tmp6 = load i8, i8* @deallocCalled, align 1 + %tmp0 = call ptr @llvm.stacksave() #1 + %tmp6 = load i8, ptr @deallocCalled, align 1 %tobool = icmp ne i8 %tmp6, 0 br i1 %tobool, label %if.else, label %if.end @@ -19,10 +19,10 @@ if.else: ; preds = %entry ; CHECK-LABEL: if.end: ; CHECK-NEXT: call void @llvm.stackrestore -; CHECK-NOT: load i8, i8* @deallocCalled +; CHECK-NOT: load i8, ptr @deallocCalled if.end: ; preds = %entry - call void @llvm.stackrestore(i8* %tmp0) - %tmp7 = load i8, i8* @deallocCalled, align 1 + call void @llvm.stackrestore(ptr %tmp0) + %tmp7 = load i8, ptr @deallocCalled, align 1 %tobool3 = icmp ne i8 %tmp7, 0 br i1 %tobool3, label %if.end6, label %if.else5 @@ -31,12 +31,12 @@ if.else5: ; preds = %if.end unreachable if.end6: ; preds = %if.end - store i8 0, i8* @deallocCalled, align 1 + store i8 0, ptr @deallocCalled, align 1 ret i32 0 } -declare i8* @llvm.stacksave() #1 -declare void @llvm.stackrestore(i8*) #1 +declare ptr @llvm.stacksave() #1 +declare void @llvm.stackrestore(ptr) #1 declare dso_local void @__assert_fail() #0 attributes #0 = { noreturn nosync nounwind } diff --git a/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken2.ll b/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken2.ll index ba4b650..503a513 100644 --- a/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken2.ll +++ b/llvm/test/Analysis/GlobalsModRef/intrinsic_addressnottaken2.ll @@ -5,17 +5,17 @@ target triple = "x86_64-unknown-linux-gnu" @deallocCalled = internal global i8 0, align 1 -define internal i8* @_i_Associated__dealloc() { +define internal ptr @_i_Associated__dealloc() { entry: - store i8 1, i8* @deallocCalled, align 1 - ret i8* null + store i8 1, ptr @deallocCalled, align 1 + ret ptr null } ; CHECK-LABEL: @main() define dso_local i32 @main() { entry: - %tmp0 = call i8* @llvm.stacksave() #1 - %tmp6 = load i8, i8* @deallocCalled, align 1 + %tmp0 = call ptr @llvm.stacksave() #1 + %tmp6 = load i8, ptr @deallocCalled, align 1 %tobool = icmp ne i8 %tmp6, 0 br i1 %tobool, label %if.else, label %if.end @@ -25,10 +25,10 @@ if.else: ; preds = %entry ; CHECK-LABEL: if.end: ; CHECK-NEXT: call void @llvm.stackrestore -; CHECK-NOT: load i8, i8* @deallocCalled +; CHECK-NOT: load i8, ptr @deallocCalled if.end: ; preds = %entry - call void @llvm.stackrestore(i8* %tmp0) - %tmp7 = load i8, i8* @deallocCalled, align 1 + call void @llvm.stackrestore(ptr %tmp0) + %tmp7 = load i8, ptr @deallocCalled, align 1 %tobool3 = icmp ne i8 %tmp7, 0 br i1 %tobool3, label %if.end6, label %if.else5 @@ -37,12 +37,12 @@ if.else5: ; preds = %if.end unreachable if.end6: ; preds = %if.end - store i8 0, i8* @deallocCalled, align 1 + store i8 0, ptr @deallocCalled, align 1 ret i32 0 } -declare i8* @llvm.stacksave() #1 -declare void @llvm.stackrestore(i8*) #1 +declare ptr @llvm.stacksave() #1 +declare void @llvm.stackrestore(ptr) #1 declare dso_local void @__assert_fail() #0 attributes #0 = { noreturn nosync nounwind } diff --git a/llvm/test/Analysis/GlobalsModRef/intrinsic_addresstaken.ll b/llvm/test/Analysis/GlobalsModRef/intrinsic_addresstaken.ll index 40ca37e..1a0b4c6 100644 --- a/llvm/test/Analysis/GlobalsModRef/intrinsic_addresstaken.ll +++ b/llvm/test/Analysis/GlobalsModRef/intrinsic_addresstaken.ll @@ -4,22 +4,22 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16 target triple = "x86_64-unknown-linux-gnu" @deallocCalled = internal global i8 0, align 1 -@.objc_method_list = internal global { i8* ()* } { i8* ()* @_i_Associated__dealloc }, align 8 -@._OBJC_CLASS_Associated = global { i8* } { i8* bitcast ({ i8* ()* }* @.objc_method_list to i8*) }, align 8 -@._OBJC_INIT_CLASS_Associated = global { i8* }* @._OBJC_CLASS_Associated -@llvm.used = appending global [1 x i8*] [i8* bitcast ({ i8* }** @._OBJC_INIT_CLASS_Associated to i8*)] +@.objc_method_list = internal global { ptr } { ptr @_i_Associated__dealloc }, align 8 +@._OBJC_CLASS_Associated = global { ptr } { ptr @.objc_method_list }, align 8 +@._OBJC_INIT_CLASS_Associated = global ptr @._OBJC_CLASS_Associated +@llvm.used = appending global [1 x ptr] [ptr @._OBJC_INIT_CLASS_Associated] -define internal i8* @_i_Associated__dealloc() { +define internal ptr @_i_Associated__dealloc() { entry: - store i8 1, i8* @deallocCalled, align 1 - ret i8* null + store i8 1, ptr @deallocCalled, align 1 + ret ptr null } ; CHECK-LABEL: @main() define dso_local i32 @main() { entry: - %tmp0 = call i8* @llvm.stacksave() #1 - %tmp6 = load i8, i8* @deallocCalled, align 1 + %tmp0 = call ptr @llvm.stacksave() #1 + %tmp6 = load i8, ptr @deallocCalled, align 1 %tobool = icmp ne i8 %tmp6, 0 br i1 %tobool, label %if.else, label %if.end @@ -30,8 +30,8 @@ if.else: ; preds = %entry ; CHECK-LABEL: if.end: ; CHECK-NEXT: call void @llvm.stackrestore if.end: ; preds = %entry - call void @llvm.stackrestore(i8* %tmp0) - %tmp7 = load i8, i8* @deallocCalled, align 1 + call void @llvm.stackrestore(ptr %tmp0) + %tmp7 = load i8, ptr @deallocCalled, align 1 %tobool3 = icmp ne i8 %tmp7, 0 br i1 %tobool3, label %if.end6, label %if.else5 @@ -40,12 +40,12 @@ if.else5: ; preds = %if.end unreachable if.end6: ; preds = %if.end - store i8 0, i8* @deallocCalled, align 1 + store i8 0, ptr @deallocCalled, align 1 ret i32 0 } -declare i8* @llvm.stacksave() #1 -declare void @llvm.stackrestore(i8*) #1 +declare ptr @llvm.stacksave() #1 +declare void @llvm.stackrestore(ptr) #1 declare dso_local void @__assert_fail() #0 attributes #0 = { noreturn nounwind } diff --git a/llvm/test/Analysis/GlobalsModRef/memset-escape.ll b/llvm/test/Analysis/GlobalsModRef/memset-escape.ll index b3b902b..a84987c 100644 --- a/llvm/test/Analysis/GlobalsModRef/memset-escape.ll +++ b/llvm/test/Analysis/GlobalsModRef/memset-escape.ll @@ -10,9 +10,9 @@ target triple = "x86_64-apple-macosx10.10.0" ; @a after the memset. ; CHECK-LABEL: @main -; CHECK: call void @llvm.memset.p0i8.i64{{.*}} @a +; CHECK: call void @llvm.memset.p0.i64{{.*}} @a ; CHECK: store i32 3 -; CHECK: load i32, i32* getelementptr {{.*}} @a +; CHECK: load i32, ptr getelementptr {{.*}} @a ; CHECK: icmp eq i32 ; CHECK: br i1 @@ -20,34 +20,33 @@ define i32 @main() { entry: %retval = alloca i32, align 4 %c = alloca [1 x i32], align 4 - store i32 0, i32* %retval, align 4 - %0 = bitcast [1 x i32]* %c to i8* - call void @llvm.memset.p0i8.i64(i8* align 4 %0, i8 0, i64 4, i1 false) - store i32 1, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @a, i64 0, i64 2), align 4 - store i32 0, i32* @b, align 4 + store i32 0, ptr %retval, align 4 + call void @llvm.memset.p0.i64(ptr align 4 %c, i8 0, i64 4, i1 false) + store i32 1, ptr getelementptr inbounds ([3 x i32], ptr @a, i64 0, i64 2), align 4 + store i32 0, ptr @b, align 4 br label %for.cond for.cond: ; preds = %for.inc, %entry - %1 = load i32, i32* @b, align 4 - %cmp = icmp slt i32 %1, 3 + %0 = load i32, ptr @b, align 4 + %cmp = icmp slt i32 %0, 3 br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %2 = load i32, i32* @b, align 4 - %idxprom = sext i32 %2 to i64 - %arrayidx = getelementptr inbounds [3 x i32], [3 x i32]* @a, i64 0, i64 %idxprom - store i32 0, i32* %arrayidx, align 4 + %1 = load i32, ptr @b, align 4 + %idxprom = sext i32 %1 to i64 + %arrayidx = getelementptr inbounds [3 x i32], ptr @a, i64 0, i64 %idxprom + store i32 0, ptr %arrayidx, align 4 br label %for.inc for.inc: ; preds = %for.body - %3 = load i32, i32* @b, align 4 - %inc = add nsw i32 %3, 1 - store i32 %inc, i32* @b, align 4 + %2 = load i32, ptr @b, align 4 + %inc = add nsw i32 %2, 1 + store i32 %inc, ptr @b, align 4 br label %for.cond for.end: ; preds = %for.cond - %4 = load i32, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @a, i64 0, i64 2), align 4 - %cmp1 = icmp ne i32 %4, 0 + %3 = load i32, ptr getelementptr inbounds ([3 x i32], ptr @a, i64 0, i64 2), align 4 + %cmp1 = icmp ne i32 %3, 0 br i1 %cmp1, label %if.then, label %if.end if.then: ; preds = %for.end @@ -59,7 +58,7 @@ if.end: ; preds = %for.end } ; Function Attrs: nounwind argmemonly -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind argmemonly +declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind argmemonly ; Function Attrs: noreturn nounwind declare void @abort() noreturn nounwind diff --git a/llvm/test/Analysis/GlobalsModRef/modreftest.ll b/llvm/test/Analysis/GlobalsModRef/modreftest.ll index e2eec172..908a6a0 100644 --- a/llvm/test/Analysis/GlobalsModRef/modreftest.ll +++ b/llvm/test/Analysis/GlobalsModRef/modreftest.ll @@ -1,15 +1,15 @@ ; RUN: opt < %s -aa-pipeline=basic-aa,globals-aa -passes='require,gvn' -S | FileCheck %s -@X = internal global i32 4 ; [#uses=2] +@X = internal global i32 4 ; [#uses=2] -define i32 @test(i32* %P) { +define i32 @test(ptr %P) { ; CHECK: @test -; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: store i32 12, ptr @X ; CHECK-NEXT: call void @doesnotmodX() ; CHECK-NEXT: ret i32 12 - store i32 12, i32* @X + store i32 12, ptr @X call void @doesnotmodX( ) - %V = load i32, i32* @X ; [#uses=1] + %V = load i32, ptr @X ; [#uses=1] ret i32 %V } diff --git a/llvm/test/Analysis/GlobalsModRef/no-escape.ll b/llvm/test/Analysis/GlobalsModRef/no-escape.ll index d129e9f..1b70acb 100644 --- a/llvm/test/Analysis/GlobalsModRef/no-escape.ll +++ b/llvm/test/Analysis/GlobalsModRef/no-escape.ll @@ -6,19 +6,19 @@ target triple = "x86_64-apple-macosx10.10.0" @b = common global i32 0, align 4 @c = internal global i32 0, align 4 @d = common global i32 0, align 4 -@e = common global i32* null, align 4 +@e = common global ptr null, align 4 -define void @foo(i32* %P) noinline { +define void @foo(ptr %P) noinline { ; CHECK: define void @foo - %loadp = load i32, i32* %P, align 4 - store i32 %loadp, i32* @d, align 4 + %loadp = load i32, ptr %P, align 4 + store i32 %loadp, ptr @d, align 4 ret void } define void @bar() noinline { ; CHECK: define void @bar - %loadp = load i32, i32* @d, align 4 - store i32 %loadp, i32* @c, align 4 + %loadp = load i32, ptr @d, align 4 + store i32 %loadp, ptr @c, align 4 ret void } @@ -26,32 +26,32 @@ define i32 @main() { entry: %retval = alloca i32, align 4 %c = alloca [1 x i32], align 4 - store i32 0, i32* %retval, align 4 + store i32 0, ptr %retval, align 4 call void @bar() - store i32 0, i32* @b, align 4 + store i32 0, ptr @b, align 4 br label %for.cond ;; Check that @c is LICM'ed out. -; CHECK: load i32, i32* @c +; CHECK: load i32, ptr @c for.cond: ; preds = %for.inc, %entry ; CHECK-LABEL: for.cond: -; CHECK: load i32, i32* @b - %a1 = load i32, i32* @b, align 4 - %aa2 = load i32, i32* @c, align 4 +; CHECK: load i32, ptr @b + %a1 = load i32, ptr @b, align 4 + %aa2 = load i32, ptr @c, align 4 %add = add nsw i32 %a1, %aa2 - %p1 = load i32*, i32** @e, align 4 - call void @foo(i32* %p1) + %p1 = load ptr, ptr @e, align 4 + call void @foo(ptr %p1) %cmp = icmp slt i32 %add, 3 br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %a2 = load i32, i32* @b, align 4 + %a2 = load i32, ptr @b, align 4 %idxprom = sext i32 %a2 to i64 br label %for.inc for.inc: ; preds = %for.body - %a3 = load i32, i32* @b, align 4 + %a3 = load i32, ptr @b, align 4 %inc = add nsw i32 %a3, 1 - store i32 %inc, i32* @b, align 4 + store i32 %inc, ptr @b, align 4 br label %for.cond for.end: ; preds = %for.cond @@ -59,7 +59,7 @@ for.end: ; preds = %for.cond } ; Function Attrs: nounwind argmemonly -declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) nounwind argmemonly +declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind argmemonly ; Function Attrs: noreturn nounwind declare void @abort() noreturn nounwind diff --git a/llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll b/llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll index fe0435a..d109b3b 100644 --- a/llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll +++ b/llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll @@ -7,22 +7,22 @@ @g1 = internal global i32 0 -define i32 @test1(i32* %param) { +define i32 @test1(ptr %param) { ; Ensure that we can fold a store to a load of a global across a store to ; a parameter when the global is non-escaping. ; ; CHECK-LABEL: @test1( -; CHECK: store i32 42, i32* @g1 +; CHECK: store i32 42, ptr @g1 ; CHECK-NOT: load i32 ; CHECK: ret i32 42 entry: - store i32 42, i32* @g1 - store i32 7, i32* %param - %v = load i32, i32* @g1 + store i32 42, ptr @g1 + store i32 7, ptr %param + %v = load i32, ptr @g1 ret i32 %v } -declare i32* @f() +declare ptr @f() define i32 @test2() { ; Ensure that we can fold a store to a load of a global across a store to @@ -30,18 +30,18 @@ define i32 @test2() { ; this function cannot be returning its address. ; ; CHECK-LABEL: @test2( -; CHECK: store i32 42, i32* @g1 +; CHECK: store i32 42, ptr @g1 ; CHECK-NOT: load i32 ; CHECK: ret i32 42 entry: - %ptr = call i32* @f() readnone - store i32 42, i32* @g1 - store i32 7, i32* %ptr - %v = load i32, i32* @g1 + %ptr = call ptr @f() readnone + store i32 42, ptr @g1 + store i32 7, ptr %ptr + %v = load i32, ptr @g1 ret i32 %v } -@g2 = external global i32* +@g2 = external global ptr define i32 @test3() { ; Ensure that we can fold a store to a load of a global across a store to @@ -49,22 +49,22 @@ define i32 @test3() { ; cannot alias a pointer loaded out of a global. ; ; CHECK-LABEL: @test3( -; CHECK: store i32 42, i32* @g1 -; CHECK: store i32 7, i32* +; CHECK: store i32 42, ptr @g1 +; CHECK: store i32 7, ptr ; CHECK-NOT: load i32 ; CHECK: ret i32 42 entry: - store i32 42, i32* @g1 - %ptr1 = load i32*, i32** @g2 - store i32 7, i32* %ptr1 - %v = load i32, i32* @g1 + store i32 42, ptr @g1 + %ptr1 = load ptr, ptr @g2 + store i32 7, ptr %ptr1 + %v = load i32, ptr @g1 ret i32 %v } @g3 = internal global i32 1 -@g4 = internal global [10 x i32*] zeroinitializer +@g4 = internal global [10 x ptr] zeroinitializer -define i32 @test4(i32* %param, i32 %n, i1 %c1, i1 %c2, i1 %c3) { +define i32 @test4(ptr %param, i32 %n, i1 %c1, i1 %c2, i1 %c3) { ; Ensure that we can fold a store to a load of a global across a store to ; the pointer loaded from that global even when the load is behind PHIs and ; selects, and there is a mixture of a load and another global or argument. @@ -72,45 +72,45 @@ define i32 @test4(i32* %param, i32 %n, i1 %c1, i1 %c2, i1 %c3) { ; GVN doesn't try to do real DCE. The store is still forwarded by GVN though. ; ; CHECK-LABEL: @test4( -; CHECK: store i32 42, i32* @g1 -; CHECK: store i32 7, i32* +; CHECK: store i32 42, ptr @g1 +; CHECK: store i32 7, ptr ; CHECK: ret i32 42 entry: - %call = call i32* @f() - store i32 42, i32* @g1 - %ptr1 = load i32*, i32** @g2 - %ptr2 = select i1 %c1, i32* %ptr1, i32* %param - %ptr3 = select i1 %c3, i32* %ptr2, i32* @g3 + %call = call ptr @f() + store i32 42, ptr @g1 + %ptr1 = load ptr, ptr @g2 + %ptr2 = select i1 %c1, ptr %ptr1, ptr %param + %ptr3 = select i1 %c3, ptr %ptr2, ptr @g3 br label %loop loop: %iv = phi i32 [ 0, %entry ], [ %inc, %loop ] - %ptr = phi i32* [ %ptr3, %entry ], [ %ptr5, %loop ] - store i32 7, i32* %ptr - %ptr4 = load i32*, i32** getelementptr ([10 x i32*], [10 x i32*]* @g4, i32 0, i32 1) - %ptr5 = select i1 %c2, i32* %ptr4, i32* %call + %ptr = phi ptr [ %ptr3, %entry ], [ %ptr5, %loop ] + store i32 7, ptr %ptr + %ptr4 = load ptr, ptr getelementptr ([10 x ptr], ptr @g4, i32 0, i32 1) + %ptr5 = select i1 %c2, ptr %ptr4, ptr %call %inc = add i32 %iv, 1 %test = icmp slt i32 %inc, %n br i1 %test, label %loop, label %exit exit: - %v = load i32, i32* @g1 + %v = load i32, ptr @g1 ret i32 %v } -define i32 @test5(i32** %param) { +define i32 @test5(ptr %param) { ; Ensure that we can fold a store to a load of a global across a store to ; a parameter that has been dereferenced when the global is non-escaping. ; ; CHECK-LABEL: @test5( -; CHECK: %p = load i32* -; CHECK: store i32 42, i32* @g1 +; CHECK: %p = load ptr +; CHECK: store i32 42, ptr @g1 ; CHECK-NOT: load i32 ; CHECK: ret i32 42 entry: - %p = load i32*, i32** %param - store i32 42, i32* @g1 - store i32 7, i32* %p - %v = load i32, i32* @g1 + %p = load ptr, ptr %param + store i32 42, ptr @g1 + store i32 7, ptr %p + %v = load i32, ptr @g1 ret i32 %v } diff --git a/llvm/test/Analysis/GlobalsModRef/pr12351.ll b/llvm/test/Analysis/GlobalsModRef/pr12351.ll index b1720b8..c76312d 100644 --- a/llvm/test/Analysis/GlobalsModRef/pr12351.ll +++ b/llvm/test/Analysis/GlobalsModRef/pr12351.ll @@ -1,31 +1,31 @@ ; RUN: opt < %s -aa-pipeline=basic-aa,globals-aa -passes=gvn -S -disable-verify | FileCheck %s -declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i1) -define void @foo(i8* %x, i8* %y) { - call void @llvm.memcpy.p0i8.p0i8.i32(i8* %x, i8* %y, i32 1, i1 false); +declare void @llvm.memcpy.p0.p0.i32(ptr, ptr, i32, i1) +define void @foo(ptr %x, ptr %y) { + call void @llvm.memcpy.p0.p0.i32(ptr %x, ptr %y, i32 1, i1 false); ret void } -define void @bar(i8* %y, i8* %z) { +define void @bar(ptr %y, ptr %z) { %x = alloca i8 - call void @foo(i8* %x, i8* %y) - %t = load i8, i8* %x - store i8 %t, i8* %y -; CHECK: store i8 %t, i8* %y + call void @foo(ptr %x, ptr %y) + %t = load i8, ptr %x + store i8 %t, ptr %y +; CHECK: store i8 %t, ptr %y ret void } define i32 @foo2() { %foo = alloca i32 - call void @bar2(i32* %foo) - %t0 = load i32, i32* %foo, align 4 -; CHECK: %t0 = load i32, i32* %foo, align 4 + call void @bar2(ptr %foo) + %t0 = load i32, ptr %foo, align 4 +; CHECK: %t0 = load i32, ptr %foo, align 4 ret i32 %t0 } -define void @bar2(i32* %foo) { - store i32 0, i32* %foo, align 4 +define void @bar2(ptr %foo) { + store i32 0, ptr %foo, align 4 tail call void @llvm.dbg.value(metadata !{}, i64 0, metadata !{}, metadata !{}) ret void } diff --git a/llvm/test/Analysis/GlobalsModRef/pr25309.ll b/llvm/test/Analysis/GlobalsModRef/pr25309.ll index c7f2f8c..ddd9999 100644 --- a/llvm/test/Analysis/GlobalsModRef/pr25309.ll +++ b/llvm/test/Analysis/GlobalsModRef/pr25309.ll @@ -5,21 +5,21 @@ target triple = "x86_64-unknown-linux-gnu" ; @o and @m are initialized to @i, so they should not be classed as ; indirect globals referring only to allocation functions. -@o = internal global i32* @i, align 8 -@m = internal global i32* @i, align 8 +@o = internal global ptr @i, align 8 +@m = internal global ptr @i, align 8 @i = internal global i32 0, align 4 ; CHECK-LABEL: @f define i1 @f() { entry: - %0 = load i32*, i32** @o, align 8 - store i32 0, i32* %0, align 4 - %1 = load volatile i32*, i32** @m, align 8 - store i32 1, i32* %1, align 4 - ; CHECK: %[[a:.*]] = load i32* - %2 = load i32*, i32** @o, align 8 - ; CHECK: %[[b:.*]] = load i32, i32* %[[a]] - %3 = load i32, i32* %2, align 4 + %0 = load ptr, ptr @o, align 8 + store i32 0, ptr %0, align 4 + %1 = load volatile ptr, ptr @m, align 8 + store i32 1, ptr %1, align 4 + ; CHECK: %[[a:.*]] = load ptr + %2 = load ptr, ptr @o, align 8 + ; CHECK: %[[b:.*]] = load i32, ptr %[[a]] + %3 = load i32, ptr %2, align 4 ; CHECK: %[[c:.*]] = icmp ne i32 %[[b]], 0 %tobool.i = icmp ne i32 %3, 0 ; CHECK: ret i1 %[[c]] diff --git a/llvm/test/Analysis/GlobalsModRef/pr35899-dbg-value.ll b/llvm/test/Analysis/GlobalsModRef/pr35899-dbg-value.ll index d9ce219..925a1df 100644 --- a/llvm/test/Analysis/GlobalsModRef/pr35899-dbg-value.ll +++ b/llvm/test/Analysis/GlobalsModRef/pr35899-dbg-value.ll @@ -13,9 +13,9 @@ define void @bar(i8 %p) { declare void @gaz(i8 %p) define void @foo() { - store i8 42, i8* @g, align 1 + store i8 42, ptr @g, align 1 call void @bar(i8 1) - %_tmp = load i8, i8* @g, align 1 + %_tmp = load i8, ptr @g, align 1 call void @gaz(i8 %_tmp) ret void } @@ -50,7 +50,7 @@ attributes #0 = { nounwind readnone speculatable } ; gaz regardless of the dbg.value in bar. ; CHECK: define void @foo() { -; CHECK-NEXT: store i8 42, i8* @g, align 1 +; CHECK-NEXT: store i8 42, ptr @g, align 1 ; CHECK-NEXT: call void @bar(i8 1) ; CHECK-NEXT: call void @gaz(i8 42) ; CHECK-NEXT: ret void diff --git a/llvm/test/Analysis/GlobalsModRef/purecse.ll b/llvm/test/Analysis/GlobalsModRef/purecse.ll index de30af8..78f7f16 100644 --- a/llvm/test/Analysis/GlobalsModRef/purecse.ll +++ b/llvm/test/Analysis/GlobalsModRef/purecse.ll @@ -15,12 +15,12 @@ define i32 @test1(i32 %X) { ret i32 %C } -define i32 @test2(i32 %X, i32* %P) { +define i32 @test2(i32 %X, ptr %P) { ; CHECK: %A = call i32 @pure(i32 %X) -; CHECK-NEXT: store i32 %X, i32* %P +; CHECK-NEXT: store i32 %X, ptr %P ; CHECK-NEXT: ret i32 0 %A = call i32 @pure( i32 %X ) ; [#uses=1] - store i32 %X, i32* %P ;; Does not invalidate 'pure' call. + store i32 %X, ptr %P ;; Does not invalidate 'pure' call. %B = call i32 @pure( i32 %X ) ; [#uses=1] %C = sub i32 %A, %B ; [#uses=1] ret i32 %C diff --git a/llvm/test/Analysis/GlobalsModRef/volatile-instrs.ll b/llvm/test/Analysis/GlobalsModRef/volatile-instrs.ll index 94ee17d..c502126 100644 --- a/llvm/test/Analysis/GlobalsModRef/volatile-instrs.ll +++ b/llvm/test/Analysis/GlobalsModRef/volatile-instrs.ll @@ -9,22 +9,22 @@ target triple = "x86_64-apple-macosx10.8.0" @a = common global %struct.anon zeroinitializer, align 4 @.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 -declare i32 @printf(i8* nocapture, ...) nounwind -declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1) nounwind +declare i32 @printf(ptr nocapture, ...) nounwind +declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind ; Make sure that the initial memcpy call does not go away ; because the volatile load is in the way. PR12899 ; CHECK: main_entry: -; CHECK-NEXT: tail call void @llvm.memcpy.p0i8.p0i8.i64 +; CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64 define i32 @main() nounwind uwtable ssp { main_entry: - tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 bitcast (%struct.anon* @b to i8*), i8* align 4 bitcast (%struct.anon* @a to i8*), i64 12, i1 false) - %0 = load volatile i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @b, i64 0, i32 0), align 4 - store i32 %0, i32* @c, align 4 - tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 bitcast (%struct.anon* @b to i8*), i8* align 4 bitcast (%struct.anon* @a to i8*), i64 12, i1 false) nounwind - %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %0) nounwind + tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 @b, ptr align 4 @a, i64 12, i1 false) + %0 = load volatile i32, ptr @b, align 4 + store i32 %0, ptr @c, align 4 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 @b, ptr align 4 @a, i64 12, i1 false) nounwind + %call = tail call i32 (ptr, ...) @printf(ptr @.str, i32 %0) nounwind ret i32 0 } diff --git a/llvm/test/Analysis/GlobalsModRef/weak-interposition.ll b/llvm/test/Analysis/GlobalsModRef/weak-interposition.ll index 8e94d2b..af52925 100644 --- a/llvm/test/Analysis/GlobalsModRef/weak-interposition.ll +++ b/llvm/test/Analysis/GlobalsModRef/weak-interposition.ll @@ -13,12 +13,12 @@ define weak i32 @hook_me() { ; Function Attrs: nounwind ssp uwtable define i32 @f() { %1 = alloca i32, align 4 - store i32 4, i32* @a, align 4 + store i32 4, ptr @a, align 4 %2 = call i32 @hook_me() - ; CHECK: load i32, i32* @a, align 4 - %3 = load i32, i32* @a, align 4 + ; CHECK: load i32, ptr @a, align 4 + %3 = load i32, ptr @a, align 4 %4 = add nsw i32 %3, %2 - store i32 %4, i32* @a, align 4 - %5 = load i32, i32* %1 + store i32 %4, ptr @a, align 4 + %5 = load i32, ptr %1 ret i32 %5 } -- 2.7.4