Skip to content

Commit 54525b6

Browse files
author
Dmitry Sidorov
authored
[NFC] Modernize lifetime.[start/end] test (#3376)
1. Opacify pointers 2. Remove casts between allocas and lifetime intrinsics 3. Remove Size argument of the intrinsics Signed-off-by: Sidorov, Dmitry <[email protected]>
1 parent daba8b2 commit 54525b6

1 file changed

Lines changed: 23 additions & 24 deletions

File tree

test/llvm-intrinsics/lifetime.ll

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -57,64 +57,63 @@ target triple = "spir64-unknown-unknown"
5757
%class.anon = type { i8 }
5858

5959
; Function Attrs: nounwind
60-
define spir_kernel void @lifetime_simple(i32 addrspace(1)* captures(none) %res, i32 addrspace(1)* captures(none) %lhs, i32 addrspace(1)* captures(none) %rhs) #0 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !5 !kernel_arg_type_qual !4 {
60+
define spir_kernel void @lifetime_simple(ptr addrspace(1) captures(none) %res, ptr addrspace(1) captures(none) %lhs, ptr addrspace(1) captures(none) %rhs) #0 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !5 !kernel_arg_type_qual !4 {
6161
%1 = alloca i32
6262
%2 = call spir_func i64 @_Z13get_global_idj(i32 0) #1
6363
%3 = shl i64 %2, 32
6464
%4 = ashr exact i64 %3, 32
65-
%5 = getelementptr inbounds i32, i32 addrspace(1)* %lhs, i64 %4
66-
%6 = load i32, i32 addrspace(1)* %5, align 4
67-
%7 = getelementptr inbounds i32, i32 addrspace(1)* %rhs, i64 %4
65+
%5 = getelementptr inbounds i32, ptr addrspace(1) %lhs, i64 %4
66+
%6 = load i32, ptr addrspace(1) %5, align 4
67+
%7 = getelementptr inbounds i32, ptr addrspace(1) %rhs, i64 %4
6868
%8 = load i32, i32 addrspace(1)* %7, align 4
6969
%9 = sub i32 %6, %8
70-
%10 = bitcast i32* %1 to i8*
71-
call void @llvm.lifetime.start.p0i8(i64 -1, i8* %10)
72-
store i32 %9, i32* %1
73-
%11 = load i32, i32* %1
74-
call void @llvm.lifetime.end.p0i8(i64 -1, i8* %10)
75-
%12 = getelementptr inbounds i32, i32 addrspace(1)* %res, i64 %4
76-
store i32 %11, i32 addrspace(1)* %12, align 4
70+
call void @llvm.lifetime.start.p0(ptr %1)
71+
store i32 %9, ptr %1
72+
%11 = load i32, ptr %1
73+
call void @llvm.lifetime.end.p0(ptr %1)
74+
%12 = getelementptr inbounds i32, ptr addrspace(1) %res, i64 %4
75+
store i32 %11, ptr addrspace(1) %12, align 4
7776
ret void
7877
}
7978

8079
define spir_kernel void @lifetime_sized() #0 !kernel_arg_addr_space !8 !kernel_arg_access_qual !8 !kernel_arg_type !8 !kernel_arg_base_type !8 !kernel_arg_type_qual !8 {
8180
entry:
8281
%0 = alloca i8, align 1
83-
call void @llvm.lifetime.start.p0i8(i64 1, i8* %0) #0
84-
call spir_func void @goo(i8* %0)
85-
call void @llvm.lifetime.end.p0i8(i64 1, i8* %0) #0
82+
call void @llvm.lifetime.start.p0(ptr %0) #0
83+
call spir_func void @goo(ptr %0)
84+
call void @llvm.lifetime.end.p0(ptr %0) #0
8685
ret void
8786
}
8887

89-
declare spir_func void @foo(%class.anon* %this) #0
88+
declare spir_func void @foo(ptr %this) #0
9089

91-
declare spir_func void @goo(i8* %this) #0
90+
declare spir_func void @goo(ptr %this) #0
9291

9392
; Function Attrs: nounwind
94-
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* captures(none)) #0
93+
declare void @llvm.lifetime.start.p0(ptr captures(none)) #0
9594

9695
; Function Attrs: nounwind
97-
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* captures(none)) #0
96+
declare void @llvm.lifetime.end.p0(ptr captures(none)) #0
9897

9998
; Function Attrs: nounwind readnone
10099
declare spir_func i64 @_Z13get_global_idj(i32) #1
101100

102101
define spir_kernel void @lifetime_generic() #0 !kernel_arg_addr_space !8 !kernel_arg_access_qual !8 !kernel_arg_type !8 !kernel_arg_base_type !8 !kernel_arg_type_qual !8 {
103102
entry:
104103
%0 = alloca %class.anon, align 1, addrspace(4)
105-
call void @llvm.lifetime.start.p4i8(i64 -1, i8 addrspace(4)* %0) #0
106-
call spir_func void @boo(%class.anon addrspace(4)* %0)
107-
call void @llvm.lifetime.end.p4i8(i64 -1, i8 addrspace(4)* %0) #0
104+
call void @llvm.lifetime.start.p4(ptr addrspace(4) %0) #0
105+
call spir_func void @boo(ptr addrspace(4) %0)
106+
call void @llvm.lifetime.end.p4(ptr addrspace(4) %0) #0
108107
ret void
109108
}
110109

111-
declare spir_func void @boo(%class.anon addrspace(4)* %this) #0
110+
declare spir_func void @boo(ptr addrspace(4) %this) #0
112111

113112
; Function Attrs: nounwind
114-
declare void @llvm.lifetime.start.p4i8(i64 immarg, i8 addrspace(4)* captures(none)) #0
113+
declare void @llvm.lifetime.start.p4(ptr addrspace(4) captures(none)) #0
115114

116115
; Function Attrs: nounwind
117-
declare void @llvm.lifetime.end.p4i8(i64 immarg, i8 addrspace(4)* captures(none)) #0
116+
declare void @llvm.lifetime.end.p4(ptr addrspace(4) captures(none)) #0
118117

119118

120119
attributes #0 = { nounwind }

0 commit comments

Comments
 (0)