|
12 | 12 | (global $field-i32@Foo (mut i32) (i32.const 0)) |
13 | 13 | (global $field-f64@Foo (mut f64) (f64.const 0)) |
14 | 14 |
|
15 | | - ;; CHECK: (func $clinit_<once>_ (type $0) |
| 15 | + ;; CHECK: (func $clinit_<once>_@Foo (type $0) |
16 | 16 | ;; CHECK-NEXT: (nop) |
17 | 17 | ;; CHECK-NEXT: ) |
18 | | - (func $clinit_<once>_ |
19 | | - (global.set $field-i32 (i32.const 1)) |
20 | | - (global.set $field-f64 (f64.const 1)) |
| 18 | + (func $clinit_<once>_@Foo |
| 19 | + (global.set $field-i32@Foo (i32.const 1)) |
| 20 | + (global.set $field-f64@Foo (f64.const 1)) |
21 | 21 | ) |
22 | 22 | ) |
23 | 23 |
|
|
48 | 48 | ;; CHECK: (global $field3@Foo anyref (global.get $field1@Foo)) |
49 | 49 | (global $field3@Foo (mut anyref) (ref.null none)) |
50 | 50 |
|
51 | | - ;; CHECK: (func $clinit_<once>_ (type $1) |
52 | | - ;; CHECK-NEXT: (global.set $field2 |
| 51 | + ;; CHECK: (func $clinit_<once>_@Foo (type $1) |
| 52 | + ;; CHECK-NEXT: (global.set $field2@Foo |
53 | 53 | ;; CHECK-NEXT: (struct.new $A |
54 | 54 | ;; CHECK-NEXT: (global.get $referredFieldMut@Foo) |
55 | 55 | ;; CHECK-NEXT: ) |
56 | 56 | ;; CHECK-NEXT: ) |
57 | 57 | ;; CHECK-NEXT: ) |
58 | | - (func $clinit_<once>_ |
| 58 | + (func $clinit_<once>_@Foo |
59 | 59 | ;; Referred field is immutable, should hoist |
60 | 60 | (global.set $field1@Foo (struct.new $A ( |
61 | 61 | global.get $referredField@Foo) |
|
85 | 85 |
|
86 | 86 | (global $field-any@Foo (mut anyref) (struct.new $A)) |
87 | 87 |
|
88 | | - ;; CHECK: (func $clinit_<once>_ (type $1) |
89 | | - ;; CHECK-NEXT: (global.set $field-i32 |
| 88 | + ;; CHECK: (func $clinit_<once>_@Foo (type $1) |
| 89 | + ;; CHECK-NEXT: (global.set $field-i32@Foo |
90 | 90 | ;; CHECK-NEXT: (i32.const 1) |
91 | 91 | ;; CHECK-NEXT: ) |
92 | 92 | ;; CHECK-NEXT: (global.set $field-any@Foo |
93 | 93 | ;; CHECK-NEXT: (struct.new_default $A) |
94 | 94 | ;; CHECK-NEXT: ) |
95 | 95 | ;; CHECK-NEXT: ) |
96 | | - (func $clinit_<once>_ |
97 | | - (global.set $field-i32 (i32.const 1)) |
98 | | - (global.set $field-any (struct.new $A)) |
| 96 | + (func $clinit_<once>_@Foo |
| 97 | + (global.set $field-i32@Foo (i32.const 1)) |
| 98 | + (global.set $field-any@Foo (struct.new $A)) |
99 | 99 | ) |
100 | 100 | ) |
101 | 101 |
|
|
107 | 107 | ;; CHECK: (global $field@Foo i32 (i32.const 1)) |
108 | 108 | (global $field@Foo (mut i32) (i32.const 0)) |
109 | 109 |
|
110 | | - ;; CHECK: (func $clinit_<once>_ (type $0) |
| 110 | + ;; CHECK: (func $clinit_<once>_@Foo (type $0) |
111 | 111 | ;; CHECK-NEXT: (nop) |
112 | 112 | ;; CHECK-NEXT: ) |
113 | | - (func $clinit_<once>_ |
114 | | - (global.set $field-i32 (i32.const 1)) |
| 113 | + (func $clinit_<once>_@Foo |
| 114 | + (global.set $field@Foo (i32.const 1)) |
115 | 115 | ) |
116 | 116 | ) |
117 | 117 |
|
|
123 | 123 | ;; CHECK: (global $$class-initialized@Foo (mut i32) (i32.const 0)) |
124 | 124 | (global $$class-initialized@Foo (mut i32) (i32.const 0)) |
125 | 125 |
|
126 | | - ;; CHECK: (func $clinit_<once>_ (type $0) |
127 | | - ;; CHECK-NEXT: (global.set $f_$initialized__ |
| 126 | + ;; CHECK: (func $clinit_<once>_@Foo (type $0) |
| 127 | + ;; CHECK-NEXT: (global.set $$class-initialized@Foo |
128 | 128 | ;; CHECK-NEXT: (i32.const 1) |
129 | 129 | ;; CHECK-NEXT: ) |
130 | 130 | ;; CHECK-NEXT: ) |
131 | | - (func $clinit_<once>_ |
132 | | - (global.set $f_$initialized__ (i32.const 1)) |
| 131 | + (func $clinit_<once>_@Foo |
| 132 | + (global.set $$class-initialized@Foo (i32.const 1)) |
| 133 | + ) |
| 134 | +) |
| 135 | + |
| 136 | +;; Fields from different classes are not hoisted. |
| 137 | +(module |
| 138 | + |
| 139 | + ;; CHECK: (type $0 (func)) |
| 140 | + |
| 141 | + ;; CHECK: (global $field@Foo (mut i32) (i32.const 0)) |
| 142 | + (global $field@Foo (mut i32) (i32.const 0)) |
| 143 | + |
| 144 | + ;; CHECK: (func $clinit_<once>_@Bar (type $0) |
| 145 | + ;; CHECK-NEXT: (global.set $field@Foo |
| 146 | + ;; CHECK-NEXT: (i32.const 1) |
| 147 | + ;; CHECK-NEXT: ) |
| 148 | + ;; CHECK-NEXT: ) |
| 149 | + (func $clinit_<once>_@Bar |
| 150 | + ;; Note that $clinit is @Bar and field is @Foo. |
| 151 | + (global.set $field@Foo (i32.const 1)) |
133 | 152 | ) |
134 | 153 | ) |
0 commit comments