%class.A = type { [16 x i8] }
-define void @bar(%class.A*) {
+define void @bar(ptr) {
ret void
}
define void @main() {
entry:
- call i8* @lwt_fun()
+ call ptr @lwt_fun()
ret void
}
-declare i8* @lwt_fun()
+declare ptr @lwt_fun()
@link = internal global i32 0, align 4
; Function Attrs: norecurse nounwind readnone uwtable
-define nonnull i32* @get_link() local_unnamed_addr {
- ret i32* @link
+define nonnull ptr @get_link() local_unnamed_addr {
+ ret ptr @link
}
@globalvar = global i32 1, align 4
define void @hot() {
- store i32 0, i32* @globalvar, align 4
+ store i32 0, ptr @globalvar, align 4
ret void
}
define void @critical() {
@myvar = internal constant i8 1, align 1
-@llvm.used = appending global [1 x i8*] [i8* @myvar], section "llvm.metadata"
+@llvm.used = appending global [1 x ptr] [ptr @myvar], section "llvm.metadata"
-define void @foo(i64* %v) #0 {
+define void @foo(ptr %v) #0 {
entry:
- %v.addr = alloca i64*, align 8
- store i64* %v, i64** %v.addr, align 8
- %0 = load i64*, i64** %v.addr, align 8
- call void asm sideeffect "movzbl myvar(%rip), %eax\0A\09movq %rax, $0\0A\09", "=*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i64* elementtype(i64) %0) #1
+ %v.addr = alloca ptr, align 8
+ store ptr %v, ptr %v.addr, align 8
+ %0 = load ptr, ptr %v.addr, align 8
+ call void asm sideeffect "movzbl myvar(%rip), %eax\0A\09movq %rax, $0\0A\09", "=*m,~{eax},~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i64) %0) #1
ret void
}
-define void @foo(i64* %v) #0 {
+define void @foo(ptr %v) #0 {
entry:
- %v.addr = alloca i64*, align 8
- store i64* %v, i64** %v.addr, align 8
+ %v.addr = alloca ptr, align 8
+ store ptr %v, ptr %v.addr, align 8
ret void
}
; CHECK: !0 = !{i32 1, !"EnableSplitLTOUnit", i32 0}
; CHECK-NEXT: !1 = !{i32 5, !"CG Profile", !2}
; CHECK-NEXT: !2 = distinct !{!3}
-; CHECK-NEXT: !3 = !{void ()* @foo, void (%class.A*)* bitcast (void (%class.A.0*)* @bar to void (%class.A*)*), i64 2753}
+; CHECK-NEXT: !3 = !{ptr @foo, ptr @bar, i64 2753}
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%class.A = type { i8 }
define void @foo() !prof !2 {
- call void @bar(%class.A* null)
+ call void @bar(ptr null)
ret void
}
-declare void @bar(%class.A*)
+declare void @bar(ptr)
!llvm.module.flags = !{!1}
$lwt = comdat any
; CHECK: @lwt_aliasee = private unnamed_addr global {{.*}}, comdat($lwt.llvm.[[HASH]])
-@lwt_aliasee = private unnamed_addr global [1 x i8*] [i8* null], comdat($lwt)
+@lwt_aliasee = private unnamed_addr global [1 x ptr] [ptr null], comdat($lwt)
; CHECK: @lwt.llvm.[[HASH]] = hidden unnamed_addr alias
-@lwt = internal unnamed_addr alias [1 x i8*], [1 x i8*]* @lwt_aliasee
+@lwt = internal unnamed_addr alias [1 x ptr], ptr @lwt_aliasee
; Below function should get imported into other module, resulting in @lwt being
; promoted and renamed.
-define i8* @lwt_fun() {
- %1 = getelementptr inbounds [1 x i8*], [1 x i8*]* @lwt, i32 0, i32 0
- %2 = load i8*, i8** %1
- ret i8* %2
+define ptr @lwt_fun() {
+ %1 = load ptr, ptr @lwt
+ ret ptr %1
}
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-define i32 @_Z4LinkPKcS0_(i8*, i8*) local_unnamed_addr {
- %3 = tail call i32 @link(i8* %0, i8* %1) #2
+define i32 @_Z4LinkPKcS0_(ptr, ptr) local_unnamed_addr {
+ %3 = tail call i32 @link(ptr %0, ptr %1) #2
ret i32 %3
}
; Function Attrs: nounwind
-declare i32 @link(i8*, i8*) local_unnamed_addr
+declare i32 @link(ptr, ptr) local_unnamed_addr
define i32 @main() #0 {
entry:
%f = alloca i64, align 8
- call void @foo(i64* %f)
+ call void @foo(ptr %f)
ret i32 0
}
-; CHECK: declare void @foo(i64*)
-declare void @foo(i64*) #1
+; CHECK: declare void @foo(ptr)
+declare void @foo(ptr) #1
define i32 @main() #0 {
entry:
%f = alloca i64, align 8
- call void @foo(i64* %f)
+ call void @foo(ptr %f)
ret i32 0
}
-; NOIMPORT: declare void @foo(i64*)
+; NOIMPORT: declare void @foo(ptr)
; IMPORT: define available_externally void @foo
-declare void @foo(i64*) #1
+declare void @foo(ptr) #1