@@ -3,9 +3,7 @@ source_filename = "generics.go"
3
3
target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20"
4
4
target triple = "wasm32-unknown-wasi"
5
5
6
- %main.Point = type { %runtime._interface , %runtime._interface }
7
- %runtime._interface = type { i32 , i8* }
8
- %main.Point.0 = type { float , float }
6
+ %main.Point = type { float , float }
9
7
10
8
declare noalias nonnull i8* @runtime.alloc (i32 , i8* , i8* ) #0
11
9
@@ -17,78 +15,76 @@ entry:
17
15
ret void
18
16
}
19
17
20
- declare %main.Point @main.Add (%main.Point , %main.Point , i8* ) #0
21
-
22
18
; Function Attrs: nounwind
23
19
define hidden void @main.main (i8* %context ) unnamed_addr #1 {
24
20
entry:
25
- %bf = alloca %main.Point.0 , align 8
26
- %af = alloca %main.Point.0 , align 8
27
- %af.repack = getelementptr inbounds %main.Point.0 , %main.Point.0 * %af , i32 0 , i32 0
21
+ %bf = alloca %main.Point , align 8
22
+ %af = alloca %main.Point , align 8
23
+ %af.repack = getelementptr inbounds %main.Point , %main.Point* %af , i32 0 , i32 0
28
24
store float 0 .000000e+00 , float * %af.repack , align 8
29
- %af.repack1 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %af , i32 0 , i32 1
25
+ %af.repack1 = getelementptr inbounds %main.Point , %main.Point* %af , i32 0 , i32 1
30
26
store float 0 .000000e+00 , float * %af.repack1 , align 4
31
- %0 = bitcast %main.Point.0 * %af to i8*
27
+ %0 = bitcast %main.Point* %af to i8*
32
28
call void @runtime.trackPointer (i8* nonnull %0 , i8* undef ) #2
33
- %bf.repack = getelementptr inbounds %main.Point.0 , %main.Point.0 * %bf , i32 0 , i32 0
29
+ %bf.repack = getelementptr inbounds %main.Point , %main.Point* %bf , i32 0 , i32 0
34
30
store float 0 .000000e+00 , float * %bf.repack , align 8
35
- %bf.repack2 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %bf , i32 0 , i32 1
31
+ %bf.repack2 = getelementptr inbounds %main.Point , %main.Point* %bf , i32 0 , i32 1
36
32
store float 0 .000000e+00 , float * %bf.repack2 , align 4
37
- %1 = bitcast %main.Point.0 * %bf to i8*
33
+ %1 = bitcast %main.Point* %bf to i8*
38
34
call void @runtime.trackPointer (i8* nonnull %1 , i8* undef ) #2
39
- %.elt = getelementptr inbounds %main.Point.0 , %main.Point.0 * %af , i32 0 , i32 0
35
+ %.elt = getelementptr inbounds %main.Point , %main.Point* %af , i32 0 , i32 0
40
36
%.unpack = load float , float * %.elt , align 8
41
- %.elt3 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %af , i32 0 , i32 1
37
+ %.elt3 = getelementptr inbounds %main.Point , %main.Point* %af , i32 0 , i32 1
42
38
%.unpack4 = load float , float * %.elt3 , align 4
43
- %.elt5 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %bf , i32 0 , i32 0
39
+ %.elt5 = getelementptr inbounds %main.Point , %main.Point* %bf , i32 0 , i32 0
44
40
%.unpack6 = load float , float * %.elt5 , align 8
45
- %.elt7 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %bf , i32 0 , i32 1
41
+ %.elt7 = getelementptr inbounds %main.Point , %main.Point* %bf , i32 0 , i32 1
46
42
%.unpack8 = load float , float * %.elt7 , align 4
47
- %2 = call %main.Point.0 @"main.Add[float32]" (float %.unpack , float %.unpack4 , float %.unpack6 , float %.unpack8 , i8* undef )
43
+ %2 = call %main.Point @"main.Add[float32]" (float %.unpack , float %.unpack4 , float %.unpack6 , float %.unpack8 , i8* undef )
48
44
ret void
49
45
}
50
46
51
47
; Function Attrs: nounwind
52
- define linkonce_odr hidden %main.Point.0 @"main.Add[float32]" (float %a.X , float %a.Y , float %b.X , float %b.Y , i8* %context ) unnamed_addr #1 {
48
+ define linkonce_odr hidden %main.Point @"main.Add[float32]" (float %a.X , float %a.Y , float %b.X , float %b.Y , i8* %context ) unnamed_addr #1 {
53
49
entry:
54
- %complit = alloca %main.Point.0 , align 8
55
- %b = alloca %main.Point.0 , align 8
56
- %a = alloca %main.Point.0 , align 8
57
- %a.repack = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 0
50
+ %complit = alloca %main.Point , align 8
51
+ %b = alloca %main.Point , align 8
52
+ %a = alloca %main.Point , align 8
53
+ %a.repack = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 0
58
54
store float 0 .000000e+00 , float * %a.repack , align 8
59
- %a.repack9 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 1
55
+ %a.repack9 = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 1
60
56
store float 0 .000000e+00 , float * %a.repack9 , align 4
61
- %0 = bitcast %main.Point.0 * %a to i8*
57
+ %0 = bitcast %main.Point* %a to i8*
62
58
call void @runtime.trackPointer (i8* nonnull %0 , i8* undef ) #2
63
- %a.repack10 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 0
59
+ %a.repack10 = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 0
64
60
store float %a.X , float * %a.repack10 , align 8
65
- %a.repack11 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 1
61
+ %a.repack11 = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 1
66
62
store float %a.Y , float * %a.repack11 , align 4
67
- %b.repack = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 0
63
+ %b.repack = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 0
68
64
store float 0 .000000e+00 , float * %b.repack , align 8
69
- %b.repack13 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 1
65
+ %b.repack13 = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 1
70
66
store float 0 .000000e+00 , float * %b.repack13 , align 4
71
- %1 = bitcast %main.Point.0 * %b to i8*
67
+ %1 = bitcast %main.Point* %b to i8*
72
68
call void @runtime.trackPointer (i8* nonnull %1 , i8* undef ) #2
73
- %b.repack14 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 0
69
+ %b.repack14 = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 0
74
70
store float %b.X , float * %b.repack14 , align 8
75
- %b.repack15 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 1
71
+ %b.repack15 = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 1
76
72
store float %b.Y , float * %b.repack15 , align 4
77
- %complit.repack = getelementptr inbounds %main.Point.0 , %main.Point.0 * %complit , i32 0 , i32 0
73
+ %complit.repack = getelementptr inbounds %main.Point , %main.Point* %complit , i32 0 , i32 0
78
74
store float 0 .000000e+00 , float * %complit.repack , align 8
79
- %complit.repack17 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %complit , i32 0 , i32 1
75
+ %complit.repack17 = getelementptr inbounds %main.Point , %main.Point* %complit , i32 0 , i32 1
80
76
store float 0 .000000e+00 , float * %complit.repack17 , align 4
81
- %2 = bitcast %main.Point.0 * %complit to i8*
77
+ %2 = bitcast %main.Point* %complit to i8*
82
78
call void @runtime.trackPointer (i8* nonnull %2 , i8* undef ) #2
83
- %3 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %complit , i32 0 , i32 0
79
+ %3 = getelementptr inbounds %main.Point , %main.Point* %complit , i32 0 , i32 0
84
80
br i1 false , label %deref.throw , label %deref.next
85
81
86
82
deref.next: ; preds = %entry
87
83
br i1 false , label %deref.throw1 , label %deref.next2
88
84
89
85
deref.next2: ; preds = %deref.next
90
- %4 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 0
91
- %5 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 0
86
+ %4 = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 0
87
+ %5 = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 0
92
88
%6 = load float , float * %5 , align 8
93
89
%7 = load float , float * %4 , align 8
94
90
%8 = fadd float %6 , %7
@@ -98,8 +94,8 @@ deref.next4: ; preds = %deref.next2
98
94
br i1 false , label %deref.throw5 , label %deref.next6
99
95
100
96
deref.next6: ; preds = %deref.next4
101
- %9 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %b , i32 0 , i32 1
102
- %10 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %a , i32 0 , i32 1
97
+ %9 = getelementptr inbounds %main.Point , %main.Point* %b , i32 0 , i32 1
98
+ %10 = getelementptr inbounds %main.Point , %main.Point* %a , i32 0 , i32 1
103
99
%11 = load float , float * %10 , align 4
104
100
%12 = load float , float * %9 , align 4
105
101
br i1 false , label %store.throw , label %store.next
@@ -109,14 +105,14 @@ store.next: ; preds = %deref.next6
109
105
br i1 false , label %store.throw7 , label %store.next8
110
106
111
107
store .next8: ; preds = %store.next
112
- %13 = getelementptr inbounds %main.Point.0 , %main.Point.0 * %complit , i32 0 , i32 1
108
+ %13 = getelementptr inbounds %main.Point , %main.Point* %complit , i32 0 , i32 1
113
109
%14 = fadd float %11 , %12
114
110
store float %14 , float * %13 , align 4
115
- %.elt = getelementptr inbounds %main.Point.0 , %main.Point.0 * %complit , i32 0 , i32 0
111
+ %.elt = getelementptr inbounds %main.Point , %main.Point* %complit , i32 0 , i32 0
116
112
%.unpack = load float , float * %.elt , align 8
117
- %15 = insertvalue %main.Point.0 undef , float %.unpack , 0
118
- %16 = insertvalue %main.Point.0 %15 , float %14 , 1
119
- ret %main.Point.0 %16
113
+ %15 = insertvalue %main.Point undef , float %.unpack , 0
114
+ %16 = insertvalue %main.Point %15 , float %14 , 1
115
+ ret %main.Point %16
120
116
121
117
deref.throw: ; preds = %entry
122
118
unreachable
0 commit comments