[llvm] fc1270d - SanitizerCoverage: Convert tests to opaque pointers

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 27 19:36:06 PST 2022


Author: Fangrui Song
Date: 2022-11-27T19:36:00-08:00
New Revision: fc1270dd2972b5302ff8717d7dcf754c22bbddc3

URL: https://github.com/llvm/llvm-project/commit/fc1270dd2972b5302ff8717d7dcf754c22bbddc3
DIFF: https://github.com/llvm/llvm-project/commit/fc1270dd2972b5302ff8717d7dcf754c22bbddc3.diff

LOG: SanitizerCoverage: Convert tests to opaque pointers

Added: 
    

Modified: 
    llvm/test/Instrumentation/SanitizerCoverage/backedge-pruning.ll
    llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll
    llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll
    llvm/test/Instrumentation/SanitizerCoverage/coverage.ll
    llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll
    llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
    llvm/test/Instrumentation/SanitizerCoverage/opaque-ptr.ll
    llvm/test/Instrumentation/SanitizerCoverage/pc-table.ll
    llvm/test/Instrumentation/SanitizerCoverage/seh.ll
    llvm/test/Instrumentation/SanitizerCoverage/stack-depth.ll
    llvm/test/Instrumentation/SanitizerCoverage/trace-loads-stores.ll
    llvm/test/Instrumentation/SanitizerCoverage/trace-pc-guard.ll
    llvm/test/Instrumentation/SanitizerCoverage/tracing.ll
    llvm/test/Instrumentation/SanitizerCoverage/wineh.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/backedge-pruning.ll b/llvm/test/Instrumentation/SanitizerCoverage/backedge-pruning.ll
index 07c9b60ae68ed..9e5cb5e6ff2fe 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/backedge-pruning.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/backedge-pruning.ll
@@ -5,7 +5,7 @@
 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"
 target triple = "x86_64-unknown-linux-gnu"
 
-define dso_local void @foo(i32* nocapture readnone %a, i32 %n) local_unnamed_addr {
+define dso_local void @foo(ptr nocapture readnone %a, i32 %n) local_unnamed_addr {
 entry:
   br label %do.body
 

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll b/llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll
index 809c826c2bb0a..a9e55572b44ac 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/control-flow.ll
@@ -5,12 +5,12 @@ 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"
 define void @foo(ptr %a) sanitize_address {
 entry:
-  %tobool = icmp eq i32* %a, null
+  %tobool = icmp eq ptr %a, null
   br i1 %tobool, label %if.end, label %if.then
 
   if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4
-  call void @foo(i32* %a)
+  store i32 0, ptr %a, align 4
+  call void @foo(ptr %a)
   br label %if.end
 
   if.end:                                           ; preds = %entry, %if.then

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll b/llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll
index 60287b97f0ec6..af2f586bf6f9c 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll
@@ -15,7 +15,7 @@
 ; and add sanitize_address to @_ZN1A1fEv
 
 ; Test that __sanitizer_cov_trace_pc_guard call has !dbg pointing to the opening { of A::f().
-; CHECK: call void @__sanitizer_cov_trace_pc_guard(i32*{{.*}}) #{{.*}}, !dbg [[A:!.*]]
+; CHECK: call void @__sanitizer_cov_trace_pc_guard(ptr{{.*}}) #{{.*}}, !dbg [[A:!.*]]
 ; CHECK: [[A]] = !DILocation(line: 6, scope: !{{.*}})
 
 
@@ -25,11 +25,10 @@ target triple = "x86_64-unknown-linux-gnu"
 %struct.A = type { i32 }
 
 ; Function Attrs: nounwind readonly uwtable
-define i32 @_ZN1A1fEv(%struct.A* nocapture readonly %this) #0 align 2 !dbg !13 {
+define i32 @_ZN1A1fEv(ptr nocapture readonly %this) #0 align 2 !dbg !13 {
 entry:
-  tail call void @llvm.dbg.value(metadata %struct.A* %this, i64 0, metadata !15, metadata !DIExpression()), !dbg !20
-  %x = getelementptr inbounds %struct.A, %struct.A* %this, i64 0, i32 0, !dbg !21
-  %0 = load i32, i32* %x, align 4, !dbg !21
+  tail call void @llvm.dbg.value(metadata ptr %this, i64 0, metadata !15, metadata !DIExpression()), !dbg !20
+  %0 = load i32, ptr %this, align 4, !dbg !21
   ret i32 %0, !dbg !21
 }
 

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/coverage.ll b/llvm/test/Instrumentation/SanitizerCoverage/coverage.ll
index 7aef2f2821b16..9d74291438e7f 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/coverage.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/coverage.ll
@@ -4,31 +4,31 @@
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
-define void @foo(i32* %a) sanitize_address {
+define void @foo(ptr %a) sanitize_address {
 entry:
-  %tobool = icmp eq i32* %a, null
+  %tobool = icmp eq ptr %a, null
   br i1 %tobool, label %if.end, label %if.then
 
   if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4
+  store i32 0, ptr %a, align 4
   br label %if.end
 
   if.end:                                           ; preds = %entry, %if.then
   ret void
 }
 
-; CHECK0-NOT: @llvm.global_ctors = {{.*}}{ i32 2, void ()* @sancov.module_ctor }
-; CHECK1: @llvm.global_ctors = {{.*}}{ i32 2, void ()* @sancov.module_ctor, i8* null }
-; CHECK2: @llvm.global_ctors = {{.*}}{ i32 2, void ()* @sancov.module_ctor, i8* null }
+; CHECK0-NOT: @llvm.global_ctors = {{.*}}{ i32 2, ptr @sancov.module_ctor }
+; CHECK1: @llvm.global_ctors = {{.*}}{ i32 2, ptr @sancov.module_ctor, ptr null }
+; CHECK2: @llvm.global_ctors = {{.*}}{ i32 2, ptr @sancov.module_ctor, ptr null }
 
 ; CHECK0-NOT: call void @__sanitizer_cov(
 ; CHECK0-NOT: call void @__sanitizer_cov_module_init(
 
 ; CHECK1-LABEL: define void @foo
-; CHECK1: %0 = load atomic i32, i32* {{.*}} monotonic, align 4, !nosanitize
+; CHECK1: %0 = load atomic i32, ptr {{.*}} monotonic, align 4, !nosanitize
 ; CHECK1: %1 = icmp sge i32 0, %0
 ; CHECK1: br i1 %1, label %2, label %3
-; CHECK1: call void @__sanitizer_cov(i32*{{.*}})
+; CHECK1: call void @__sanitizer_cov(ptr{{.*}})
 ; CHECK1: call void asm sideeffect "", ""()
 ; CHECK1-NOT: call void @__sanitizer_cov
 ; CHECK1: ret void
@@ -68,15 +68,14 @@ entry:
 ; CHECK3-NOT: call void @__sanitizer_cov
 ; CHECK3: ret void
 
-%struct.StructWithVptr = type { i32 (...)** }
+%struct.StructWithVptr = type { ptr }
 
-define void @CallViaVptr(%struct.StructWithVptr* %foo) uwtable sanitize_address {
+define void @CallViaVptr(ptr %foo) uwtable sanitize_address {
 entry:
-  %0 = bitcast %struct.StructWithVptr* %foo to void (%struct.StructWithVptr*)***
-  %vtable = load void (%struct.StructWithVptr*)**, void (%struct.StructWithVptr*)*** %0, align 8
-  %1 = load void (%struct.StructWithVptr*)*, void (%struct.StructWithVptr*)** %vtable, align 8
-  tail call void %1(%struct.StructWithVptr* %foo)
-  tail call void %1(%struct.StructWithVptr* %foo)
+  %vtable = load ptr, ptr %foo, align 8
+  %0 = load ptr, ptr %vtable, align 8
+  tail call void %0(ptr %foo)
+  tail call void %0(ptr %foo)
   tail call void asm sideeffect "", ""()
   ret void
 }

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll b/llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll
index 76d7775159ad4..e4278d56a6e20 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll
@@ -17,20 +17,20 @@ target triple = "x86_64-unknown-linux-gnu"
 ; Check that __sanitizer_cov call has !dgb pointing to the beginning
 ; of appropriate basic blocks.
 ; CHECK-LABEL:_Z3fooPi
-; CHECK: call void @__sanitizer_cov{{.*}}(i32*{{.*}}) #{{.*}}, !dbg [[A:!.*]]
-; CHECK: call void @__sanitizer_cov{{.*}}(i32*{{.*}}) #{{.*}}, !dbg [[B:!.*]]
+; CHECK: call void @__sanitizer_cov{{.*}}(ptr{{.*}}) #{{.*}}, !dbg [[A:!.*]]
+; CHECK: call void @__sanitizer_cov{{.*}}(ptr{{.*}}) #{{.*}}, !dbg [[B:!.*]]
 ; CHECK: ret void
 ; CHECK: [[A]] = !DILocation(line: 1, scope: !{{.*}})
 ; CHECK: [[B]] = !DILocation(line: 3, column: 5, scope: !{{.*}})
 
-define void @_Z3fooPi(i32* %a) #0 !dbg !4 {
+define void @_Z3fooPi(ptr %a) #0 !dbg !4 {
 entry:
-  tail call void @llvm.dbg.value(metadata i32* %a, i64 0, metadata !11, metadata !DIExpression()), !dbg !15
-  %tobool = icmp eq i32* %a, null, !dbg !16
+  tail call void @llvm.dbg.value(metadata ptr %a, i64 0, metadata !11, metadata !DIExpression()), !dbg !15
+  %tobool = icmp eq ptr %a, null, !dbg !16
   br i1 %tobool, label %if.end, label %if.then, !dbg !16
 
 if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4, !dbg !18, !tbaa !19
+  store i32 0, ptr %a, align 4, !dbg !18, !tbaa !19
   br label %if.end, !dbg !18
 
 if.end:                                           ; preds = %entry, %if.then

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll b/llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
index 09450ffd3be41..17bed67fdcfc7 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/gep-tracing.ll
@@ -4,37 +4,37 @@
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
-define void @gep_1(i32* nocapture %a, i32 %i)  {
+define void @gep_1(ptr nocapture %a, i32 %i)  {
 entry:
   %idxprom = sext i32 %i to i64
-  %arrayidx = getelementptr inbounds i32, i32* %a, i64 %idxprom
-  store i32 0, i32* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds i32, ptr %a, i64 %idxprom
+  store i32 0, ptr %arrayidx, align 4
   ret void
 }
 
-; CHECK-LABEL: define void @gep_1(i32* nocapture %a, i32 %i)
+; CHECK-LABEL: define void @gep_1(ptr nocapture %a, i32 %i)
 ; CHECK:   call void @__sanitizer_cov_trace_gep(i64 %idxprom)
 ; CHECK: ret void
 
 
-define void @gep_2([1000 x i32]* nocapture %a, i32 %i, i32 %j) {
+define void @gep_2(ptr nocapture %a, i32 %i, i32 %j) {
 entry:
   %idxprom = sext i32 %j to i64
   %idxprom1 = sext i32 %i to i64
-  %arrayidx2 = getelementptr inbounds [1000 x i32], [1000 x i32]* %a, i64 %idxprom1, i64 %idxprom
-  store i32 0, i32* %arrayidx2, align 4
+  %arrayidx2 = getelementptr inbounds [1000 x i32], ptr %a, i64 %idxprom1, i64 %idxprom
+  store i32 0, ptr %arrayidx2, align 4
   ret void
 }
 
-; CHECK-LABEL: define void @gep_2([1000 x i32]* nocapture %a, i32 %i, i32 %j)
+; CHECK-LABEL: define void @gep_2(ptr nocapture %a, i32 %i, i32 %j)
 ; CHECK: call void @__sanitizer_cov_trace_gep(i64 %idxprom1)
 ; CHECK: call void @__sanitizer_cov_trace_gep(i64 %idxprom)
 ; CHECK: ret void
 
 ; Just make sure we don't insturment this one and don't crash
-define void @gep_3(<2 x i8*> %a, i32 %i, i32 %j) {
+define void @gep_3(<2 x ptr> %a, i32 %i, i32 %j) {
 entry:
-  %0 = getelementptr i8, <2 x i8*> %a, <2 x i64> <i64 8, i64 8>
+  %0 = getelementptr i8, <2 x ptr> %a, <2 x i64> <i64 8, i64 8>
   ret void
 }
 

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/opaque-ptr.ll b/llvm/test/Instrumentation/SanitizerCoverage/opaque-ptr.ll
index 93ffaa640124e..97d9b9b8ac266 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/opaque-ptr.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/opaque-ptr.ll
@@ -9,7 +9,7 @@
 ; CHECK: @[[LLVM_GLOBAL_CTORS:[a-zA-Z0-9_$"\\.-]+]] = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 2, ptr @sancov.module_ctor_trace_pc_guard, ptr @sancov.module_ctor_trace_pc_guard }]
 ; CHECK: @[[LLVM_COMPILER_USED:[a-zA-Z0-9_$"\\.-]+]] = appending global [1 x ptr] [ptr @__sancov_gen_], section "llvm.metadata"
 ;.
-define void @foo(i32* %a) {
+define void @foo(ptr %a) {
 ; CHECK-LABEL: @foo(
 ; CHECK-NEXT:    call void @__sanitizer_cov_trace_pc_guard(ptr @__sancov_gen_) #[[ATTR1:[0-9]+]]
 ; CHECK-NEXT:    ret void

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/pc-table.ll b/llvm/test/Instrumentation/SanitizerCoverage/pc-table.ll
index dc7c81e68740f..ae51171638db0 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/pc-table.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/pc-table.ll
@@ -5,20 +5,20 @@
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
-define void @foo(i32* %a) sanitize_address {
+define void @foo(ptr %a) sanitize_address {
 entry:
-  %tobool = icmp eq i32* %a, null
+  %tobool = icmp eq ptr %a, null
   br i1 %tobool, label %if.end, label %if.then
 
   if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4
+  store i32 0, ptr %a, align 4
   br label %if.end
 
   if.end:                                           ; preds = %entry, %if.then
   ret void
 }
 
-; CHECK: private constant [6 x i64*] [i64* bitcast (void (i32*)* @foo to i64*), i64* inttoptr (i64 1 to i64*), i64* bitcast (i8* blockaddress(@foo, %entry.if.end_crit_edge) to i64*), i64* null, i64* bitcast (i8* blockaddress(@foo, %if.then) to i64*), i64* null], section "__sancov_pcs", comdat($foo), align 8
+; CHECK: private constant [6 x ptr] [ptr @foo, ptr inttoptr (i64 1 to ptr), ptr blockaddress(@foo, %entry.if.end_crit_edge), ptr null, ptr blockaddress(@foo, %if.then), ptr null], section "__sancov_pcs", comdat($foo), align 8
 ; CHECK:      @__start___sancov_pcs = extern_weak hidden global i64
 ; CHECK-NEXT: @__stop___sancov_pcs = extern_weak hidden global i64
 ; CHECK: define internal void @sancov.module_ctor

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/seh.ll b/llvm/test/Instrumentation/SanitizerCoverage/seh.ll
index b1b82313ef771..02de0e47a9f99 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/seh.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/seh.ll
@@ -5,77 +5,74 @@
 target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
 target triple = "i686-pc-windows-msvc18.0.0"
 
-declare i32 @llvm.eh.typeid.for(i8*) #2
-declare i8* @llvm.frameaddress(i32)
-declare i8* @llvm.eh.recoverfp(i8*, i8*)
-declare i8* @llvm.localrecover(i8*, i8*, i32)
+declare i32 @llvm.eh.typeid.for(ptr) #2
+declare ptr @llvm.frameaddress(i32)
+declare ptr @llvm.eh.recoverfp(ptr, ptr)
+declare ptr @llvm.localrecover(ptr, ptr, i32)
 declare void @llvm.localescape(...) #1
 
 declare i32 @_except_handler3(...)
-declare void @may_throw(i32* %r)
+declare void @may_throw(ptr %r)
 
-define i32 @main() sanitize_address personality i8* bitcast (i32 (...)* @_except_handler3 to i8*) {
+define i32 @main() sanitize_address personality ptr @_except_handler3 {
 entry:
   %r = alloca i32, align 4
   %__exception_code = alloca i32, align 4
-  call void (...) @llvm.localescape(i32* nonnull %__exception_code)
-  %0 = bitcast i32* %r to i8*
-  store i32 0, i32* %r, align 4
-  invoke void @may_throw(i32* nonnull %r) #4
+  call void (...) @llvm.localescape(ptr nonnull %__exception_code)
+  store i32 0, ptr %r, align 4
+  invoke void @may_throw(ptr nonnull %r) #4
           to label %__try.cont unwind label %lpad
 
 lpad:                                             ; preds = %entry
-  %1 = landingpad { i8*, i32 }
-          catch i8* bitcast (i32 ()* @"\01?filt$0 at 0@main@@" to i8*)
-  %2 = extractvalue { i8*, i32 } %1, 1
-  %3 = call i32 @llvm.eh.typeid.for(i8* bitcast (i32 ()* @"\01?filt$0 at 0@main@@" to i8*)) #1
-  %matches = icmp eq i32 %2, %3
+  %0 = landingpad { ptr, i32 }
+          catch ptr @"\01?filt$0 at 0@main@@"
+  %1 = extractvalue { ptr, i32 } %0, 1
+  %2 = call i32 @llvm.eh.typeid.for(ptr @"\01?filt$0 at 0@main@@") #1
+  %matches = icmp eq i32 %1, %2
   br i1 %matches, label %__except, label %eh.resume
 
 __except:                                         ; preds = %lpad
-  store i32 1, i32* %r, align 4
+  store i32 1, ptr %r, align 4
   br label %__try.cont
 
 __try.cont:                                       ; preds = %entry, %__except
-  %4 = load i32, i32* %r, align 4
-  ret i32 %4
+  %3 = load i32, ptr %r, align 4
+  ret i32 %3
 
 eh.resume:                                        ; preds = %lpad
-  resume { i8*, i32 } %1
+  resume { ptr, i32 } %0
 }
 
 ; Check that we don't do any instrumentation.
 
 ; CHECK-LABEL: define i32 @main()
-; CHECK-NOT: load atomic i32, i32* {{.*}} monotonic, align 4, !nosanitize
+; CHECK-NOT: load atomic i32, ptr {{.*}} monotonic, align 4, !nosanitize
 ; CHECK-NOT: call void @__sanitizer_cov
 ; CHECK: ret i32
 
 ; Function Attrs: nounwind
 define internal i32 @"\01?filt$0 at 0@main@@"() #1 {
 entry:
-  %0 = tail call i8* @llvm.frameaddress(i32 1)
-  %1 = tail call i8* @llvm.eh.recoverfp(i8* bitcast (i32 ()* @main to i8*), i8* %0)
-  %2 = tail call i8* @llvm.localrecover(i8* bitcast (i32 ()* @main to i8*), i8* %1, i32 0)
-  %__exception_code = bitcast i8* %2 to i32*
-  %3 = getelementptr inbounds i8, i8* %0, i32 -20
-  %4 = bitcast i8* %3 to { i32*, i8* }**
-  %5 = load { i32*, i8* }*, { i32*, i8* }** %4, align 4
-  %6 = getelementptr inbounds { i32*, i8* }, { i32*, i8* }* %5, i32 0, i32 0
-  %7 = load i32*, i32** %6, align 4
-  %8 = load i32, i32* %7, align 4
-  store i32 %8, i32* %__exception_code, align 4
+  %0 = tail call ptr @llvm.frameaddress(i32 1)
+  %1 = tail call ptr @llvm.eh.recoverfp(ptr @main, ptr %0)
+  %2 = tail call ptr @llvm.localrecover(ptr @main, ptr %1, i32 0)
+  %3 = getelementptr inbounds i8, ptr %0, i32 -20
+  %4 = load ptr, ptr %3, align 4
+  %5 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0
+  %6 = load ptr, ptr %5, align 4
+  %7 = load i32, ptr %6, align 4
+  store i32 %7, ptr %2, align 4
   ret i32 1
 }
 
 ; CHECK-LABEL: define internal i32 @"\01?filt$0 at 0@main@@"()
-; CHECK: tail call i8* @llvm.localrecover(i8* bitcast (i32 ()* @main to i8*), i8* {{.*}}, i32 0)
+; CHECK: tail call ptr @llvm.localrecover(ptr @main, ptr {{.*}}, i32 0)
 
-define void @ScaleFilterCols_SSSE3(i8* %dst_ptr, i8* %src_ptr, i32 %dst_width, i32 %x, i32 %dx) sanitize_address {
+define void @ScaleFilterCols_SSSE3(ptr %dst_ptr, ptr %src_ptr, i32 %dst_width, i32 %x, i32 %dx) sanitize_address {
 entry:
   %dst_width.addr = alloca i32, align 4
-  store i32 %dst_width, i32* %dst_width.addr, align 4
-  %0 = call { i8*, i8*, i32, i32, i32 } asm sideeffect "", "=r,=r,={ax},=r,=r,=*rm,rm,rm,0,1,2,3,4,5,~{memory},~{cc},~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{dirflag},~{fpsr},~{flags}"(i32* elementtype(i32) nonnull %dst_width.addr, i32 %x, i32 %dx, i8* %dst_ptr, i8* %src_ptr, i32 0, i32 0, i32 0, i32 %dst_width)
+  store i32 %dst_width, ptr %dst_width.addr, align 4
+  %0 = call { ptr, ptr, i32, i32, i32 } asm sideeffect "", "=r,=r,={ax},=r,=r,=*rm,rm,rm,0,1,2,3,4,5,~{memory},~{cc},~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i32) nonnull %dst_width.addr, i32 %x, i32 %dx, ptr %dst_ptr, ptr %src_ptr, i32 0, i32 0, i32 0, i32 %dst_width)
   ret void
 }
 

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/stack-depth.ll b/llvm/test/Instrumentation/SanitizerCoverage/stack-depth.ll
index 695c638c06642..0e5eaae96d731 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/stack-depth.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/stack-depth.ll
@@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu"
 define i32 @foo() {
 entry:
 ; CHECK-LABEL: define i32 @foo
-; CHECK-NOT: call i8* @llvm.frameaddress.p0i8(i32 0)
+; CHECK-NOT: call ptr @llvm.frameaddress.p0(i32 0)
 ; CHECK-NOT: @__sancov_lowest_stack
 ; CHECK: ret i32 7
 
@@ -24,13 +24,13 @@ entry:
 define i32 @bar() {
 entry:
 ; CHECK-LABEL: define i32 @bar
-; CHECK: [[framePtr:%[^ \t]+]] = call i8* @llvm.frameaddress.p0i8(i32 0)
-; CHECK: [[frameInt:%[^ \t]+]] = ptrtoint i8* [[framePtr]] to [[intType:i[0-9]+]]
-; CHECK: [[lowest:%[^ \t]+]] = load [[intType]], [[intType]]* @__sancov_lowest_stack
+; CHECK: [[framePtr:%[^ \t]+]] = call ptr @llvm.frameaddress.p0(i32 0)
+; CHECK: [[frameInt:%[^ \t]+]] = ptrtoint ptr [[framePtr]] to [[intType:i[0-9]+]]
+; CHECK: [[lowest:%[^ \t]+]] = load [[intType]], ptr @__sancov_lowest_stack
 ; CHECK: [[cmp:%[^ \t]+]] = icmp ult [[intType]] [[frameInt]], [[lowest]]
 ; CHECK: br i1 [[cmp]], label %[[ifLabel:[^ \t]+]], label
 ; CHECK: [[ifLabel]]:
-; CHECK: store [[intType]] [[frameInt]], [[intType]]* @__sancov_lowest_stack
+; CHECK: store [[intType]] [[frameInt]], ptr @__sancov_lowest_stack
 ; CHECK: %call = call i32 @foo()
 ; CHECK: ret i32 %call
 
@@ -38,6 +38,6 @@ entry:
   ret i32 %call
 }
 
-define weak_odr hidden i64* @_ZTW21__sancov_lowest_stack() {
-  ret i64* @__sancov_lowest_stack
+define weak_odr hidden ptr @_ZTW21__sancov_lowest_stack() {
+  ret ptr @__sancov_lowest_stack
 }

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/trace-loads-stores.ll b/llvm/test/Instrumentation/SanitizerCoverage/trace-loads-stores.ll
index 69519006e6997..3566da34c9c0c 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/trace-loads-stores.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/trace-loads-stores.ll
@@ -4,30 +4,30 @@
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
-define void @foo(i8* %p1, i16* %p2, i32* %p4, i64* %p8, i128* %p16) {
+define void @foo(ptr %p1, ptr %p2, ptr %p4, ptr %p8, ptr %p16) {
 ; =================== loads
-  %1 = load i8, i8* %p1
-  %2 = load i16, i16* %p2
-  %3 = load i32, i32* %p4
-  %4 = load i64, i64* %p8
-  %5 = load i128, i128* %p16
-; LOADS: call void @__sanitizer_cov_load1(i8* %p1)
-; LOADS: call void @__sanitizer_cov_load2(i16* %p2)
-; LOADS: call void @__sanitizer_cov_load4(i32* %p4)
-; LOADS: call void @__sanitizer_cov_load8(i64* %p8)
-; LOADS: call void @__sanitizer_cov_load16(i128* %p16)
+  %1 = load i8, ptr %p1
+  %2 = load i16, ptr %p2
+  %3 = load i32, ptr %p4
+  %4 = load i64, ptr %p8
+  %5 = load i128, ptr %p16
+; LOADS: call void @__sanitizer_cov_load1(ptr %p1)
+; LOADS: call void @__sanitizer_cov_load2(ptr %p2)
+; LOADS: call void @__sanitizer_cov_load4(ptr %p4)
+; LOADS: call void @__sanitizer_cov_load8(ptr %p8)
+; LOADS: call void @__sanitizer_cov_load16(ptr %p16)
 
 ; =================== stores
-  store i8   %1, i8*   %p1
-  store i16  %2, i16*  %p2
-  store i32  %3, i32*  %p4
-  store i64  %4, i64*  %p8
-  store i128 %5, i128* %p16
-; STORES: call void @__sanitizer_cov_store1(i8* %p1)
-; STORES: call void @__sanitizer_cov_store2(i16* %p2)
-; STORES: call void @__sanitizer_cov_store4(i32* %p4)
-; STORES: call void @__sanitizer_cov_store8(i64* %p8)
-; STORES: call void @__sanitizer_cov_store16(i128* %p16)
+  store i8   %1, ptr   %p1
+  store i16  %2, ptr  %p2
+  store i32  %3, ptr  %p4
+  store i64  %4, ptr  %p8
+  store i128 %5, ptr %p16
+; STORES: call void @__sanitizer_cov_store1(ptr %p1)
+; STORES: call void @__sanitizer_cov_store2(ptr %p2)
+; STORES: call void @__sanitizer_cov_store4(ptr %p4)
+; STORES: call void @__sanitizer_cov_store8(ptr %p8)
+; STORES: call void @__sanitizer_cov_store16(ptr %p16)
 
   ret void
 }

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/trace-pc-guard.ll b/llvm/test/Instrumentation/SanitizerCoverage/trace-pc-guard.ll
index b36b8c785a821..5deb74eb8c6aa 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/trace-pc-guard.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/trace-pc-guard.ll
@@ -20,24 +20,24 @@
 ; WIN-NEXT:   @__sancov_gen_.1 = private global [1 x i32] zeroinitializer, section ".SCOV$GM", comdat($CallViaVptr), align 4{{$}}
 ; WIN-NEXT:   @__sancov_gen_.2 = private global [1 x i32] zeroinitializer, section ".SCOV$GM", comdat($DirectBitcastCall), align 4{{$}}
 
-; ELF:        @llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @sancov.module_ctor_trace_pc_guard to i8*)]
-; ELF:        @llvm.compiler.used = appending global [3 x i8*] [i8* bitcast ([3 x i32]* @__sancov_gen_ to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.1 to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.2 to i8*)], section "llvm.metadata"
-; MACHO:      @llvm.used = appending global [4 x i8*] [i8* bitcast (void ()* @sancov.module_ctor_trace_pc_guard to i8*), i8* bitcast ([3 x i32]* @__sancov_gen_ to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.1 to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.2 to i8*)]
+; ELF:        @llvm.used = appending global [1 x ptr] [ptr @sancov.module_ctor_trace_pc_guard]
+; ELF:        @llvm.compiler.used = appending global [3 x ptr] [ptr @__sancov_gen_, ptr @__sancov_gen_.1, ptr @__sancov_gen_.2], section "llvm.metadata"
+; MACHO:      @llvm.used = appending global [4 x ptr] [ptr @sancov.module_ctor_trace_pc_guard, ptr @__sancov_gen_, ptr @__sancov_gen_.1, ptr @__sancov_gen_.2]
 ; MACHO-NOT:  @llvm.compiler.used =
-; WIN:        @llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @sancov.module_ctor_trace_pc_guard to i8*)], section "llvm.metadata"
-; WIN-NEXT:   @llvm.compiler.used = appending global [3 x i8*] [i8* bitcast ([3 x i32]* @__sancov_gen_ to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.1 to i8*), i8* bitcast ([1 x i32]* @__sancov_gen_.2 to i8*)], section "llvm.metadata"
+; WIN:        @llvm.used = appending global [1 x ptr] [ptr @sancov.module_ctor_trace_pc_guard], section "llvm.metadata"
+; WIN-NEXT:   @llvm.compiler.used = appending global [3 x ptr] [ptr @__sancov_gen_, ptr @__sancov_gen_.1, ptr @__sancov_gen_.2], section "llvm.metadata"
 
 ; CHECK-LABEL: define void @foo
 ; CHECK:         call void @__sanitizer_cov_trace_pc
 ; CHECK:         ret void
 
-define void @foo(i32* %a) sanitize_address {
+define void @foo(ptr %a) sanitize_address {
 entry:
-  %tobool = icmp eq i32* %a, null
+  %tobool = icmp eq ptr %a, null
   br i1 %tobool, label %if.end, label %if.then
 
   if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4
+  store i32 0, ptr %a, align 4
   br label %if.end
 
   if.end:                                           ; preds = %entry, %if.then
@@ -49,28 +49,27 @@ entry:
 ; CHECK:         call void @__sanitizer_cov_trace_pc_indir
 ; CHECK:         ret void
 
-%struct.StructWithVptr = type { i32 (...)** }
+%struct.StructWithVptr = type { ptr }
 
-define void @CallViaVptr(%struct.StructWithVptr* %foo) uwtable sanitize_address {
+define void @CallViaVptr(ptr %foo) uwtable sanitize_address {
 entry:
-  %0 = bitcast %struct.StructWithVptr* %foo to void (%struct.StructWithVptr*)***
-  %vtable = load void (%struct.StructWithVptr*)**, void (%struct.StructWithVptr*)*** %0, align 8
-  %1 = load void (%struct.StructWithVptr*)*, void (%struct.StructWithVptr*)** %vtable, align 8
-  tail call void %1(%struct.StructWithVptr* %foo)
-  tail call void %1(%struct.StructWithVptr* %foo)
+  %vtable = load ptr, ptr %foo, align 8
+  %0 = load ptr, ptr %vtable, align 8
+  tail call void %0(ptr %foo)
+  tail call void %0(ptr %foo)
   tail call void asm sideeffect "", ""()
   ret void
 }
 
 ; CHECK-LABEL: define void @DirectBitcastCall
 ; CHECK-NEXT:    call void @__sanitizer_cov_trace_pc_guard
-; CHECK-NEXT:    call void bitcast (i32 ()* @direct_callee to void ()*)()
+; CHECK-NEXT:    call void @direct_callee()
 ; CHECK-NEXT:    ret void
 
 declare i32 @direct_callee()
 
 define void @DirectBitcastCall() sanitize_address {
-  call void bitcast (i32 ()* @direct_callee to void ()*)()
+  call void @direct_callee()
   ret void
 }
 

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/tracing.ll b/llvm/test/Instrumentation/SanitizerCoverage/tracing.ll
index f17fe93b4ad59..776541c47fb0e 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/tracing.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/tracing.ll
@@ -6,34 +6,34 @@
 
 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"
 target triple = "x86_64-unknown-linux-gnu"
-define void @foo(i32* %a) sanitize_address {
+define void @foo(ptr %a) sanitize_address {
 entry:
-  %tobool = icmp eq i32* %a, null
+  %tobool = icmp eq ptr %a, null
   br i1 %tobool, label %if.end, label %if.then
 
   if.then:                                          ; preds = %entry
-  store i32 0, i32* %a, align 4
+  store i32 0, ptr %a, align 4
   br label %if.end
 
   if.end:                                           ; preds = %entry, %if.then
   ret void
 }
 
-define available_externally void @external_bar(i32* %a) sanitize_address {
+define available_externally void @external_bar(ptr %a) sanitize_address {
 entry:
   ret void
 }
 
-declare void @longjmp(i8*) noreturn
+declare void @longjmp(ptr) noreturn
 
 ; We expect three coverage points here for each BB.
-define void @cond_longjmp(i1 %cond, i8* %jmp_buf) sanitize_address {
+define void @cond_longjmp(i1 %cond, ptr %jmp_buf) sanitize_address {
 entry:
   br i1 %cond, label %lj, label %done
 done:
   ret void
 lj:
-  call void @longjmp(i8* %jmp_buf)
+  call void @longjmp(ptr %jmp_buf)
   unreachable
 }
 
@@ -71,7 +71,7 @@ lj:
 ; CHECK_PC_GUARD: call void @longjmp
 ; CHECK_PC_GUARD: unreachable
 
-; CHECK_PC_GUARD: call void @__sanitizer_cov_trace_pc_guard_init(i32* @__start___sancov_guards, i32* @__stop___sancov_guards)
+; CHECK_PC_GUARD: call void @__sanitizer_cov_trace_pc_guard_init(ptr @__start___sancov_guards, ptr @__stop___sancov_guards)
 
 ; CHECK_PC_GUARD_DARWIN-LABEL: define void @foo
 ; CHECK_PC_GUARD_DARWIN: call void @__sanitizer_cov_trace_pc_guard
@@ -79,4 +79,4 @@ lj:
 ; CHECK_PC_GUARD_DARWIN: call void @__sanitizer_cov_trace_pc_guard
 ; CHECK_PC_GUARD_DARWIN-NOT: call void @__sanitizer_cov_trace_pc
 ; CHECK_PC_GUARD_DARWIN: ret void
-; CHECK_PC_GUARD_DARWIN: call void @__sanitizer_cov_trace_pc_guard_init(i32* @"\01section$start$__DATA$__sancov_guards", i32* @"\01section$end$__DATA$__sancov_guards")
+; CHECK_PC_GUARD_DARWIN: call void @__sanitizer_cov_trace_pc_guard_init(ptr @"\01section$start$__DATA$__sancov_guards", ptr @"\01section$end$__DATA$__sancov_guards")

diff  --git a/llvm/test/Instrumentation/SanitizerCoverage/wineh.ll b/llvm/test/Instrumentation/SanitizerCoverage/wineh.ll
index d86d61e3b7547..82ce3ad1a2ec3 100644
--- a/llvm/test/Instrumentation/SanitizerCoverage/wineh.ll
+++ b/llvm/test/Instrumentation/SanitizerCoverage/wineh.ll
@@ -29,22 +29,21 @@ source_filename = "t.cpp"
 target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-pc-windows-msvc19.10.24728"
 
-%rtti.TypeDescriptor2 = type { i8**, i8*, [3 x i8] }
+%rtti.TypeDescriptor2 = type { ptr, ptr, [3 x i8] }
 %struct.Foo = type { i8 }
 
 $"\01??_R0H at 8" = comdat any
 
-@"\01??_7type_info@@6B@" = external constant i8*
-@"\01??_R0H at 8" = linkonce_odr global %rtti.TypeDescriptor2 { i8** @"\01??_7type_info@@6B@", i8* null, [3 x i8] c".H\00" }, comdat
+@"\01??_7type_info@@6B@" = external constant ptr
+@"\01??_R0H at 8" = linkonce_odr global %rtti.TypeDescriptor2 { ptr @"\01??_7type_info@@6B@", ptr null, [3 x i8] c".H\00" }, comdat
 
 ; Function Attrs: uwtable
-define i32 @"\01?f@@YAHXZ"() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
+define i32 @"\01?f@@YAHXZ"() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 {
 entry:
   %v = alloca %struct.Foo, align 1
   %e = alloca i32, align 4
-  %0 = getelementptr inbounds %struct.Foo, %struct.Foo* %v, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* nonnull %0) #4
-  %call = call %struct.Foo* @"\01??0Foo@@QEAA at XZ"(%struct.Foo* nonnull %v)
+  call void @llvm.lifetime.start(i64 1, ptr nonnull %v) #4
+  %call = call ptr @"\01??0Foo@@QEAA at XZ"(ptr nonnull %v)
   invoke void @"\01?g@@YAXXZ"()
           to label %invoke.cont unwind label %ehcleanup
 
@@ -53,50 +52,50 @@ invoke.cont:                                      ; preds = %entry
           to label %try.cont unwind label %catch.dispatch
 
 catch.dispatch:                                   ; preds = %invoke.cont
-  %1 = catchswitch within none [label %catch3, label %catch] unwind label %ehcleanup
+  %0 = catchswitch within none [label %catch3, label %catch] unwind label %ehcleanup
 
 catch3:                                           ; preds = %catch.dispatch
-  %2 = catchpad within %1 [%rtti.TypeDescriptor2* @"\01??_R0H at 8", i32 0, i32* %e]
-  invoke void @"\01?g@@YAXXZ"() [ "funclet"(token %2) ]
+  %1 = catchpad within %0 [ptr @"\01??_R0H at 8", i32 0, ptr %e]
+  invoke void @"\01?g@@YAXXZ"() [ "funclet"(token %1) ]
           to label %invoke.cont4 unwind label %ehcleanup
 
 invoke.cont4:                                     ; preds = %catch3
-  catchret from %2 to label %try.cont
+  catchret from %1 to label %try.cont
 
 try.cont:                                         ; preds = %invoke.cont, %invoke.cont2, %invoke.cont4
-  call void @"\01??1Foo@@QEAA at XZ"(%struct.Foo* nonnull %v) #4
-  call void @llvm.lifetime.end(i64 1, i8* nonnull %0) #4
+  call void @"\01??1Foo@@QEAA at XZ"(ptr nonnull %v) #4
+  call void @llvm.lifetime.end(i64 1, ptr nonnull %v) #4
   ret i32 0
 
 catch:                                            ; preds = %catch.dispatch
-  %3 = catchpad within %1 [i8* null, i32 64, i8* null]
-  invoke void @"\01?g@@YAXXZ"() [ "funclet"(token %3) ]
+  %2 = catchpad within %0 [ptr null, i32 64, ptr null]
+  invoke void @"\01?g@@YAXXZ"() [ "funclet"(token %2) ]
           to label %invoke.cont2 unwind label %ehcleanup
 
 invoke.cont2:                                     ; preds = %catch
-  catchret from %3 to label %try.cont
+  catchret from %2 to label %try.cont
 
 ehcleanup:                                        ; preds = %catch3, %catch, %catch.dispatch, %entry
-  %4 = cleanuppad within none []
-  call void @"\01??1Foo@@QEAA at XZ"(%struct.Foo* nonnull %v) #4 [ "funclet"(token %4) ]
-  call void @llvm.lifetime.end(i64 1, i8* nonnull %0) #4
-  cleanupret from %4 unwind to caller
+  %3 = cleanuppad within none []
+  call void @"\01??1Foo@@QEAA at XZ"(ptr nonnull %v) #4 [ "funclet"(token %3) ]
+  call void @llvm.lifetime.end(i64 1, ptr nonnull %v) #4
+  cleanupret from %3 unwind to caller
 }
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start(i64, ptr nocapture) #1
 
-declare %struct.Foo* @"\01??0Foo@@QEAA at XZ"(%struct.Foo* returned) unnamed_addr #2
+declare ptr @"\01??0Foo@@QEAA at XZ"(ptr returned) unnamed_addr #2
 
 declare void @"\01?g@@YAXXZ"() local_unnamed_addr #2
 
 declare i32 @__CxxFrameHandler3(...)
 
 ; Function Attrs: nounwind
-declare void @"\01??1Foo@@QEAA at XZ"(%struct.Foo*) unnamed_addr #3
+declare void @"\01??1Foo@@QEAA at XZ"(ptr) unnamed_addr #3
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end(i64, ptr nocapture) #1
 
 attributes #0 = { uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
 attributes #1 = { argmemonly nounwind }


        


More information about the llvm-commits mailing list