Skip to content

Commit 6022873

Browse files
committed
[BPF] Convert some tests to opaque pointers (NFC)
1 parent bed1c7f commit 6022873

File tree

170 files changed

+1444
-1603
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+1444
-1603
lines changed

llvm/test/CodeGen/BPF/32-bit-subreg-load-store.ll

+16-16
Original file line numberDiff line numberDiff line change
@@ -40,68 +40,68 @@
4040
; *p = v;
4141
; }
4242
; Function Attrs: norecurse nounwind readonly
43-
define dso_local zeroext i8 @loadu8(i8* nocapture readonly %p) local_unnamed_addr #0 {
43+
define dso_local zeroext i8 @loadu8(ptr nocapture readonly %p) local_unnamed_addr #0 {
4444
entry:
45-
%0 = load i8, i8* %p, align 1
45+
%0 = load i8, ptr %p, align 1
4646
; CHECK: w{{[0-9]+}} = *(u8 *)(r{{[0-9]+}} + 0)
4747
ret i8 %0
4848
}
4949

5050
; Function Attrs: norecurse nounwind readonly
51-
define dso_local zeroext i16 @loadu16(i16* nocapture readonly %p) local_unnamed_addr #0 {
51+
define dso_local zeroext i16 @loadu16(ptr nocapture readonly %p) local_unnamed_addr #0 {
5252
entry:
53-
%0 = load i16, i16* %p, align 2
53+
%0 = load i16, ptr %p, align 2
5454
; CHECK: w{{[0-9]+}} = *(u16 *)(r{{[0-9]+}} + 0)
5555
ret i16 %0
5656
}
5757

5858
; Function Attrs: norecurse nounwind readonly
59-
define dso_local i32 @loadu32(i32* nocapture readonly %p) local_unnamed_addr #0 {
59+
define dso_local i32 @loadu32(ptr nocapture readonly %p) local_unnamed_addr #0 {
6060
entry:
61-
%0 = load i32, i32* %p, align 4
61+
%0 = load i32, ptr %p, align 4
6262
; CHECK: w{{[0-9]+}} = *(u32 *)(r{{[0-9]+}} + 0)
6363
ret i32 %0
6464
}
6565

6666
; Function Attrs: norecurse nounwind readonly
67-
define dso_local i64 @loadu64(i64* nocapture readonly %p) local_unnamed_addr #0 {
67+
define dso_local i64 @loadu64(ptr nocapture readonly %p) local_unnamed_addr #0 {
6868
entry:
69-
%0 = load i64, i64* %p, align 8
69+
%0 = load i64, ptr %p, align 8
7070
; CHECK: r{{[0-9]+}} = *(u64 *)(r{{[0-9]+}} + 0)
7171
ret i64 %0
7272
}
7373

7474
; Function Attrs: norecurse nounwind
75-
define dso_local void @storeu8(i8* nocapture %p, i64 %v) local_unnamed_addr #1 {
75+
define dso_local void @storeu8(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {
7676
entry:
7777
%conv = trunc i64 %v to i8
78-
store i8 %conv, i8* %p, align 1
78+
store i8 %conv, ptr %p, align 1
7979
; CHECK: *(u8 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}
8080
ret void
8181
}
8282

8383
; Function Attrs: norecurse nounwind
84-
define dso_local void @storeu16(i16* nocapture %p, i64 %v) local_unnamed_addr #1 {
84+
define dso_local void @storeu16(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {
8585
entry:
8686
%conv = trunc i64 %v to i16
87-
store i16 %conv, i16* %p, align 2
87+
store i16 %conv, ptr %p, align 2
8888
; CHECK: *(u16 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}
8989
ret void
9090
}
9191

9292
; Function Attrs: norecurse nounwind
93-
define dso_local void @storeu32(i32* nocapture %p, i64 %v) local_unnamed_addr #1 {
93+
define dso_local void @storeu32(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {
9494
entry:
9595
%conv = trunc i64 %v to i32
96-
store i32 %conv, i32* %p, align 4
96+
store i32 %conv, ptr %p, align 4
9797
; CHECK: *(u32 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}
9898
ret void
9999
}
100100

101101
; Function Attrs: norecurse nounwind
102-
define dso_local void @storeu64(i64* nocapture %p, i64 %v) local_unnamed_addr #1 {
102+
define dso_local void @storeu64(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {
103103
entry:
104-
store i64 %v, i64* %p, align 8
104+
store i64 %v, ptr %p, align 8
105105
; CHECK: *(u64 *)(r{{[0-9]+}} + 0) = r{{[0-9]+}}
106106
ret void
107107
}

llvm/test/CodeGen/BPF/32-bit-subreg-peephole.ll

+5-5
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ entry:
8383
define dso_local i32 @foo(i32 %b, i32 %c) local_unnamed_addr #0 {
8484
; CHECK-LABEL: foo:
8585
entry:
86-
%call = tail call i64 bitcast (i64 (...)* @bar to i64 ()*)() #2
86+
%call = tail call i64 @bar() #2
8787
%conv = trunc i64 %call to i32
8888
%cmp = icmp ult i32 %conv, 10
8989
; %call comes from function call returning i64 so the high bits will need
@@ -99,21 +99,21 @@ entry:
9999
declare dso_local i64 @bar(...) local_unnamed_addr #1
100100

101101
; Function Attrs: norecurse nounwind readnone
102-
define dso_local i32* @inc_p(i32* readnone %p, i32 %a) local_unnamed_addr #0 {
102+
define dso_local ptr @inc_p(ptr readnone %p, i32 %a) local_unnamed_addr #0 {
103103
; CHECK-LABEL: inc_p:
104104
entry:
105105
%idx.ext = zext i32 %a to i64
106106
; CHECK: r{{[0-9]+}} = w{{[0-9]+}}
107107
; CHECK-NOT: r{{[0-9]+}} <<= 32
108108
; CHECK-NOT: r{{[0-9]+}} >>= 32
109-
%add.ptr = getelementptr inbounds i32, i32* %p, i64 %idx.ext
110-
ret i32* %add.ptr
109+
%add.ptr = getelementptr inbounds i32, ptr %p, i64 %idx.ext
110+
ret ptr %add.ptr
111111
}
112112

113113
define dso_local i32 @test() local_unnamed_addr {
114114
; CHECK-LABEL: test:
115115
entry:
116-
%call = tail call i32 bitcast (i32 (...)* @helper to i32 ()*)()
116+
%call = tail call i32 @helper()
117117
%cmp = icmp sgt i32 %call, 6
118118
; The shifts can't be optimized out because %call comes from function call
119119
; return i32 so the high bits might be invalid.

llvm/test/CodeGen/BPF/BTF/builtin-btf-type-id.ll

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK %s
44
;
55
; Source code:
6-
; static int (*bpf_log)(unsigned long tid, void *data, int data_size) = (void *)999;
6+
; static int (*bpf_log)(unsigned long tid, ptr data, int data_size) = (ptr)999;
77
; struct {
88
; char f1[100];
99
; typeof(3) f2;
@@ -21,14 +21,14 @@
2121
; clang -target bpf -O2 -g -S -emit-llvm -Xclang -disable-llvm-passes test.c
2222

2323
@tmp__abc = dso_local global { <{ i8, i8, [98 x i8] }>, i32 } { <{ i8, i8, [98 x i8] }> <{ i8 1, i8 3, [98 x i8] zeroinitializer }>, i32 0 }, align 4, !dbg !0
24-
@bpf_log = internal global i32 (i64, i8*, i32)* inttoptr (i64 999 to i32 (i64, i8*, i32)*), align 8, !dbg !17
24+
@bpf_log = internal global ptr inttoptr (i64 999 to ptr), align 8, !dbg !17
2525

2626
; Function Attrs: nounwind
2727
define dso_local void @prog1() #0 !dbg !28 {
2828
entry:
29-
%0 = load i32 (i64, i8*, i32)*, i32 (i64, i8*, i32)** @bpf_log, align 8, !dbg !31, !tbaa !32
29+
%0 = load ptr, ptr @bpf_log, align 8, !dbg !31, !tbaa !32
3030
%1 = call i64 @llvm.bpf.btf.type.id(i32 0, i64 0), !dbg !36, !llvm.preserve.access.index !7
31-
%call = call i32 %0(i64 %1, i8* getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, { <{ i8, i8, [98 x i8] }>, i32 }* @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !31
31+
%call = call i32 %0(i64 %1, ptr getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, ptr @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !31
3232
ret void, !dbg !37
3333
}
3434

@@ -38,18 +38,18 @@ declare i64 @llvm.bpf.btf.type.id(i32, i64) #1
3838
; Function Attrs: nounwind
3939
define dso_local void @prog2() #0 !dbg !38 {
4040
entry:
41-
%0 = load i32 (i64, i8*, i32)*, i32 (i64, i8*, i32)** @bpf_log, align 8, !dbg !39, !tbaa !32
41+
%0 = load ptr, ptr @bpf_log, align 8, !dbg !39, !tbaa !32
4242
%1 = call i64 @llvm.bpf.btf.type.id(i32 1, i64 0), !dbg !40, !llvm.preserve.access.index !6
43-
%call = call i32 %0(i64 %1, i8* getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, { <{ i8, i8, [98 x i8] }>, i32 }* @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !39
43+
%call = call i32 %0(i64 %1, ptr getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, ptr @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !39
4444
ret void, !dbg !41
4545
}
4646

4747
; Function Attrs: nounwind
4848
define dso_local void @prog3() #0 !dbg !42 {
4949
entry:
50-
%0 = load i32 (i64, i8*, i32)*, i32 (i64, i8*, i32)** @bpf_log, align 8, !dbg !43, !tbaa !32
50+
%0 = load ptr, ptr @bpf_log, align 8, !dbg !43, !tbaa !32
5151
%1 = call i64 @llvm.bpf.btf.type.id(i32 2, i64 1), !dbg !44, !llvm.preserve.access.index !11
52-
%call = call i32 %0(i64 %1, i8* getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, { <{ i8, i8, [98 x i8] }>, i32 }* @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !43
52+
%call = call i32 %0(i64 %1, ptr getelementptr inbounds ({ <{ i8, i8, [98 x i8] }>, i32 }, ptr @tmp__abc, i32 0, i32 0, i32 0), i32 104), !dbg !43
5353
ret void, !dbg !45
5454
}
5555

llvm/test/CodeGen/BPF/BTF/char-no-debuginfo.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
; Function Attrs: norecurse nounwind readonly
1313
define dso_local i32 @test() local_unnamed_addr #0 {
14-
%1 = load i32, i32* @g, align 4, !tbaa !2
14+
%1 = load i32, ptr @g, align 4, !tbaa !2
1515
ret i32 %1
1616
}
1717

llvm/test/CodeGen/BPF/BTF/extern-builtin.ll

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
22
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
33
; Source code:
4-
; unsigned long long load_byte(void *skb,
4+
; unsigned long long load_byte(ptr skb,
55
; unsigned long long off) asm("llvm.bpf.load.byte");
6-
; unsigned long long test(void *skb) {
6+
; unsigned long long test(ptr skb) {
77
; return load_byte(skb, 10);
88
; }
99
; Compilation flag:
1010
; clang -target bpf -O2 -g -S -emit-llvm test.c
1111

1212
; Function Attrs: nounwind readonly
13-
define dso_local i64 @test(i8* readonly %skb) local_unnamed_addr #0 !dbg !13 {
13+
define dso_local i64 @test(ptr readonly %skb) local_unnamed_addr #0 !dbg !13 {
1414
entry:
15-
call void @llvm.dbg.value(metadata i8* %skb, metadata !17, metadata !DIExpression()), !dbg !18
16-
%call = tail call i64 @llvm.bpf.load.byte(i8* %skb, i64 10), !dbg !19
15+
call void @llvm.dbg.value(metadata ptr %skb, metadata !17, metadata !DIExpression()), !dbg !18
16+
%call = tail call i64 @llvm.bpf.load.byte(ptr %skb, i64 10), !dbg !19
1717
ret i64 %call, !dbg !20
1818
}
1919

@@ -54,7 +54,7 @@ entry:
5454
; CHECK-NEXT: .byte 0
5555

5656
; Function Attrs: nounwind readonly
57-
declare !dbg !4 i64 @llvm.bpf.load.byte(i8*, i64) #1
57+
declare !dbg !4 i64 @llvm.bpf.load.byte(ptr, i64) #1
5858
; Function Attrs: nounwind readnone speculatable willreturn
5959
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
6060

llvm/test/CodeGen/BPF/BTF/extern-func-ptr.ll

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
;
44
; Source code:
55
; extern int do_work(int) __attribute__((section(".callback_fn")));
6-
; long bpf_helper(void *callback_fn);
6+
; long bpf_helper(ptr callback_fn);
77
; long prog() {
88
; return bpf_helper(&do_work);
99
; }
@@ -13,7 +13,7 @@
1313
; Function Attrs: nounwind
1414
define dso_local i64 @prog() local_unnamed_addr #0 !dbg !7 {
1515
entry:
16-
%call = tail call i64 @bpf_helper(i8* bitcast (i32 (i32)* @do_work to i8*)) #2, !dbg !11
16+
%call = tail call i64 @bpf_helper(ptr @do_work) #2, !dbg !11
1717
ret i64 %call, !dbg !12
1818
}
1919

@@ -41,7 +41,7 @@ entry:
4141
; CHECK: .ascii "do_work" # string offset=55
4242
; CHECK: .ascii ".callback_fn" # string offset=74
4343

44-
declare !dbg !13 dso_local i64 @bpf_helper(i8*) local_unnamed_addr #1
44+
declare !dbg !13 dso_local i64 @bpf_helper(ptr) local_unnamed_addr #1
4545

4646
declare !dbg !17 dso_local i32 @do_work(i32) #1 section ".callback_fn"
4747

llvm/test/CodeGen/BPF/BTF/extern-global-var.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
; Function Attrs: norecurse nounwind readonly
1313
define dso_local i32 @foo() local_unnamed_addr #0 !dbg !7 {
14-
%1 = load i8, i8* @a, align 1, !dbg !11, !tbaa !12
14+
%1 = load i8, ptr @a, align 1, !dbg !11, !tbaa !12
1515
%2 = sext i8 %1 to i32, !dbg !11
1616
ret i32 %2, !dbg !15
1717
}

llvm/test/CodeGen/BPF/BTF/extern-var-section.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
define dso_local i32 @test() local_unnamed_addr #0 !dbg !16 {
1717
entry:
1818
%call = tail call i32 @global_func(i8 signext 0) #2, !dbg !19
19-
%0 = load i8, i8* @ch, align 1, !dbg !20, !tbaa !21
19+
%0 = load i8, ptr @ch, align 1, !dbg !20, !tbaa !21
2020
%conv = sext i8 %0 to i32, !dbg !20
2121
%add = add nsw i32 %call, %conv, !dbg !24
2222
ret i32 %add, !dbg !25

llvm/test/CodeGen/BPF/BTF/extern-var-struct-weak.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
; Function Attrs: norecurse nounwind readonly
1515
define dso_local i32 @test() local_unnamed_addr #0 !dbg !15 {
1616
entry:
17-
%0 = load i32, i32* getelementptr (%struct.t1, %struct.t1* @global, i64 0, i32 0), align 4, !dbg !18, !tbaa !19
17+
%0 = load i32, ptr @global, align 4, !dbg !18, !tbaa !19
1818
ret i32 %0, !dbg !24
1919
}
2020

llvm/test/CodeGen/BPF/BTF/extern-var-struct.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
; Function Attrs: norecurse nounwind readonly
1616
define dso_local i32 @test() local_unnamed_addr #0 !dbg !15 {
1717
entry:
18-
%0 = load i32, i32* getelementptr inbounds (%struct.t1, %struct.t1* @global, i64 0, i32 0), align 4, !dbg !18, !tbaa !19
18+
%0 = load i32, ptr @global, align 4, !dbg !18, !tbaa !19
1919
ret i32 %0, !dbg !24
2020
}
2121

llvm/test/CodeGen/BPF/BTF/extern-var-weak-section.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
define dso_local i32 @test() local_unnamed_addr #0 !dbg !16 {
1616
entry:
1717
%call = tail call i32 @global_func(i8 signext 0) #2, !dbg !19
18-
%0 = load i8, i8* @ch, align 1, !dbg !20, !tbaa !21
18+
%0 = load i8, ptr @ch, align 1, !dbg !20, !tbaa !21
1919
%conv = sext i8 %0 to i32, !dbg !20
2020
%add = add nsw i32 %call, %conv, !dbg !24
2121
ret i32 %add, !dbg !25

llvm/test/CodeGen/BPF/BTF/func-func-ptr.ll

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
; Compilation flag:
99
; clang -target bpf -O2 -g -S -emit-llvm t.c
1010

11-
%struct.t1 = type { void (i32)* }
11+
%struct.t1 = type { ptr }
1212

13-
@a1 = common dso_local local_unnamed_addr global void (i32)* null, align 8, !dbg !0
13+
@a1 = common dso_local local_unnamed_addr global ptr null, align 8, !dbg !0
1414
@b1 = common dso_local local_unnamed_addr global %struct.t1 zeroinitializer, align 8, !dbg !6
1515

1616
; Function Attrs: nounwind readnone

llvm/test/CodeGen/BPF/BTF/fwd-no-define.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
; Compilation flag:
88
; clang -target bpf -O2 -g -S -emit-llvm t.c
99

10-
%struct.t2 = type { %struct.t1* }
10+
%struct.t2 = type { ptr }
1111
%struct.t1 = type opaque
1212

1313
@a = common dso_local local_unnamed_addr global %struct.t2 zeroinitializer, align 8, !dbg !0

llvm/test/CodeGen/BPF/BTF/fwd-with-define.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
; Compilation flag:
88
; clang -target bpf -O2 -g -S -emit-llvm t.c
99

10-
%struct.t1 = type { %struct.t1* }
10+
%struct.t1 = type { ptr }
1111

1212
@a = common dso_local local_unnamed_addr global %struct.t1 zeroinitializer, align 8, !dbg !0
1313

llvm/test/CodeGen/BPF/BTF/local-var-readonly-1.ll

+12-13
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
33
;
44
; Source:
5-
; void foo(const void *);
5+
; void foo(const ptr);
66
; int test() {
77
; const char *str = "abcd";
88
; const struct {
@@ -24,14 +24,13 @@
2424
define dso_local i32 @test() local_unnamed_addr #0 !dbg !7 {
2525
entry:
2626
%val = alloca %struct.anon, align 4
27-
call void @llvm.dbg.value(metadata i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), metadata !12, metadata !DIExpression()), !dbg !25
28-
%0 = bitcast %struct.anon* %val to i8*, !dbg !26
29-
call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %0) #4, !dbg !26
30-
call void @llvm.dbg.declare(metadata %struct.anon* %val, metadata !16, metadata !DIExpression()), !dbg !27
31-
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(16) %0, i8* nonnull align 4 dereferenceable(16) bitcast (%struct.anon* @__const.test.val to i8*), i64 16, i1 false), !dbg !27
32-
tail call void @foo(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0)) #4, !dbg !28
33-
call void @foo(i8* nonnull %0) #4, !dbg !29
34-
call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %0) #4, !dbg !30
27+
call void @llvm.dbg.value(metadata ptr @.str, metadata !12, metadata !DIExpression()), !dbg !25
28+
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %val) #4, !dbg !26
29+
call void @llvm.dbg.declare(metadata ptr %val, metadata !16, metadata !DIExpression()), !dbg !27
30+
call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 dereferenceable(16) %val, ptr nonnull align 4 dereferenceable(16) @__const.test.val, i64 16, i1 false), !dbg !27
31+
tail call void @foo(ptr @.str) #4, !dbg !28
32+
call void @foo(ptr nonnull %val) #4, !dbg !29
33+
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %val) #4, !dbg !30
3534
ret i32 0, !dbg !31
3635
}
3736

@@ -40,18 +39,18 @@ entry:
4039
; CHECK-NOT: BTF_KIND_DATASEC
4140

4241
; Function Attrs: argmemonly nounwind willreturn
43-
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
42+
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
4443

4544
; Function Attrs: nounwind readnone speculatable willreturn
4645
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
4746

4847
; Function Attrs: argmemonly nounwind willreturn
49-
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1
48+
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1
5049

51-
declare !dbg !32 dso_local void @foo(i8*) local_unnamed_addr #3
50+
declare !dbg !32 dso_local void @foo(ptr) local_unnamed_addr #3
5251

5352
; Function Attrs: argmemonly nounwind willreturn
54-
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
53+
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
5554

5655
; Function Attrs: nounwind readnone speculatable willreturn
5756
declare void @llvm.dbg.value(metadata, metadata, metadata) #2

0 commit comments

Comments
 (0)