Skip to content

Commit 30384dc

Browse files
committed
Remove non-standard i31.new
The standard name for the instruction is `ref.i31`. Remove support for the non-standard name and update tests that were still using it.
1 parent eda6530 commit 30384dc

File tree

6 files changed

+55
-67
lines changed

6 files changed

+55
-67
lines changed

scripts/gen-s-parser.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,6 @@
572572
("resume", "makeResume()"),
573573
("suspend", "makeSuspend()"),
574574
# GC
575-
("i31.new", "makeRefI31(Unshared)"), # deprecated
576575
("ref.i31", "makeRefI31(Unshared)"),
577576
("ref.i31_shared", "makeRefI31(Shared)"),
578577
("i31.get_s", "makeI31Get(true)"),

src/gen-s-parser.inc

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1811,27 +1811,16 @@ switch (buf[0]) {
18111811
case '3': {
18121812
switch (buf[2]) {
18131813
case '1': {
1814-
switch (buf[4]) {
1815-
case 'g': {
1816-
switch (buf[8]) {
1817-
case 's':
1818-
if (op == "i31.get_s"sv) {
1819-
CHECK_ERR(makeI31Get(ctx, pos, annotations, true));
1820-
return Ok{};
1821-
}
1822-
goto parse_error;
1823-
case 'u':
1824-
if (op == "i31.get_u"sv) {
1825-
CHECK_ERR(makeI31Get(ctx, pos, annotations, false));
1826-
return Ok{};
1827-
}
1828-
goto parse_error;
1829-
default: goto parse_error;
1814+
switch (buf[8]) {
1815+
case 's':
1816+
if (op == "i31.get_s"sv) {
1817+
CHECK_ERR(makeI31Get(ctx, pos, annotations, true));
1818+
return Ok{};
18301819
}
1831-
}
1832-
case 'n':
1833-
if (op == "i31.new"sv) {
1834-
CHECK_ERR(makeRefI31(ctx, pos, annotations, Unshared));
1820+
goto parse_error;
1821+
case 'u':
1822+
if (op == "i31.get_u"sv) {
1823+
CHECK_ERR(makeI31Get(ctx, pos, annotations, false));
18351824
return Ok{};
18361825
}
18371826
goto parse_error;

test/lit/i31-new.wast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
22

3-
;; Check that we still parse the legacy i31.new instruction.
3+
;; Check that we still parse the legacy ref.i31 instruction.
44

55
;; RUN: wasm-opt %s -all -S -o - | filecheck %s
66

@@ -11,7 +11,7 @@
1111
;; CHECK-NEXT: )
1212
;; CHECK-NEXT: )
1313
(func $test (result i31ref)
14-
(i31.new
14+
(ref.i31
1515
(i32.const 0)
1616
)
1717
)

test/lit/passes/simplify-globals-single_use.wast

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
;; CHECK-NEXT: )
1818
;; CHECK-NEXT: ))
1919
(global $single-use anyref (struct.new $A
20-
(i31.new
20+
(ref.i31
2121
(i32.const 42)
2222
)
2323
))
@@ -59,7 +59,7 @@
5959
;; CHECK-NEXT: )
6060
;; CHECK-NEXT: ))
6161
(global $single-use anyref (struct.new $A
62-
(i31.new
62+
(ref.i31
6363
(i32.const 42)
6464
)
6565
))
@@ -85,7 +85,7 @@
8585
;; CHECK-NEXT: )
8686
;; CHECK-NEXT: ))
8787
(global $single-use anyref (struct.new $A
88-
(i31.new
88+
(ref.i31
8989
(i32.const 42)
9090
)
9191
))
@@ -131,7 +131,7 @@
131131
;; CHECK-NEXT: )
132132
;; CHECK-NEXT: ))
133133
(global $single-use anyref (struct.new $A
134-
(i31.new
134+
(ref.i31
135135
(i32.const 42)
136136
)
137137
))
@@ -160,7 +160,7 @@
160160
;; CHECK-NEXT: )
161161
;; CHECK-NEXT: ))
162162
(global $single-use anyref (struct.new $A
163-
(i31.new
163+
(ref.i31
164164
(i32.const 42)
165165
)
166166
))
@@ -188,7 +188,7 @@
188188
;; CHECK-NEXT: )
189189
;; CHECK-NEXT: ))
190190
(global $single-use1 anyref (struct.new $A
191-
(i31.new
191+
(ref.i31
192192
(i32.const 42)
193193
)
194194
))
@@ -199,7 +199,7 @@
199199
;; CHECK-NEXT: )
200200
;; CHECK-NEXT: ))
201201
(global $single-use2 anyref (struct.new $A
202-
(i31.new
202+
(ref.i31
203203
(i32.const 1337)
204204
)
205205
))
@@ -217,7 +217,7 @@
217217
;; CHECK-NEXT: )
218218
;; CHECK-NEXT: ))
219219
(global $single-use3 anyref (struct.new $A
220-
(i31.new
220+
(ref.i31
221221
(i32.const 99999)
222222
)
223223
))
@@ -250,7 +250,7 @@
250250
;; CHECK-NEXT: (ref.null none)
251251
;; CHECK-NEXT: ))
252252
(global $single-use1 anyref (struct.new $A
253-
(i31.new
253+
(ref.i31
254254
(i32.const 42)
255255
)
256256
(ref.null any)
@@ -264,7 +264,7 @@
264264
;; CHECK-NEXT: ))
265265
(global $single-use2 anyref (struct.new $A
266266
(ref.null any)
267-
(i31.new
267+
(ref.i31
268268
(i32.const 1337)
269269
)
270270
))
@@ -297,7 +297,7 @@
297297
;; CHECK: (global $single-use1 anyref (ref.i31
298298
;; CHECK-NEXT: (i32.const 42)
299299
;; CHECK-NEXT: ))
300-
(global $single-use1 anyref (i31.new
300+
(global $single-use1 anyref (ref.i31
301301
(i32.const 42)
302302
))
303303

test/lit/passes/stack-ir-non-nullable.wast

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@
3737
(if
3838
(ref.eq
3939
(local.get $temp)
40-
(i31.new
40+
(ref.i31
4141
(i32.const 0)
4242
)
4343
)
4444
(then
4545
(local.set $temp
46-
(i31.new
46+
(ref.i31
4747
(i32.const 1)
4848
)
4949
)
5050
)
5151
(else
5252
(local.set $temp
53-
(i31.new
53+
(ref.i31
5454
(i32.const 2)
5555
)
5656
)
@@ -86,20 +86,20 @@
8686
(if
8787
(ref.eq
8888
(local.get $temp)
89-
(i31.new
89+
(ref.i31
9090
(i32.const 0)
9191
)
9292
)
9393
(then
9494
(local.set $temp
95-
(i31.new
95+
(ref.i31
9696
(i32.const 1)
9797
)
9898
)
9999
)
100100
(else
101101
(local.set $temp
102-
(i31.new
102+
(ref.i31
103103
(i32.const 2)
104104
)
105105
)
@@ -135,20 +135,20 @@
135135
(if
136136
(ref.eq
137137
(local.get $temp)
138-
(i31.new
138+
(ref.i31
139139
(i32.const 0)
140140
)
141141
)
142142
(then
143143
(local.set $temp
144-
(i31.new
144+
(ref.i31
145145
(i32.const 1)
146146
)
147147
)
148148
)
149149
(else
150150
(local.set $temp
151-
(i31.new
151+
(ref.i31
152152
(i32.const 2)
153153
)
154154
)
@@ -191,20 +191,20 @@
191191
(if
192192
(ref.eq
193193
(local.get $temp)
194-
(i31.new
194+
(ref.i31
195195
(i32.const 0)
196196
)
197197
)
198198
(then
199199
(local.set $temp
200-
(i31.new
200+
(ref.i31
201201
(i32.const 1)
202202
)
203203
)
204204
)
205205
(else
206206
(local.set $temp
207-
(i31.new
207+
(ref.i31
208208
(i32.const 2)
209209
)
210210
)
@@ -245,20 +245,20 @@
245245
(if
246246
(ref.eq
247247
(local.get $temp)
248-
(i31.new
248+
(ref.i31
249249
(i32.const 0)
250250
)
251251
)
252252
(then
253253
(local.set $temp
254-
(i31.new
254+
(ref.i31
255255
(i32.const 1)
256256
)
257257
)
258258
)
259259
(else
260260
(local.set $temp
261-
(i31.new
261+
(ref.i31
262262
(i32.const 2)
263263
)
264264
)
@@ -296,20 +296,20 @@
296296
(if
297297
(ref.eq
298298
(local.get $temp)
299-
(i31.new
299+
(ref.i31
300300
(i32.const 0)
301301
)
302302
)
303303
(then
304304
(local.set $temp
305-
(i31.new
305+
(ref.i31
306306
(i32.const 1)
307307
)
308308
)
309309
)
310310
(else
311311
(local.set $temp
312-
(i31.new
312+
(ref.i31
313313
(i32.const 2)
314314
)
315315
)
@@ -345,20 +345,20 @@
345345
(if
346346
(ref.eq
347347
(local.get $temp)
348-
(i31.new
348+
(ref.i31
349349
(i32.const 0)
350350
)
351351
)
352352
(then
353353
(local.set $temp
354-
(i31.new
354+
(ref.i31
355355
(i32.const 1)
356356
)
357357
)
358358
)
359359
(else
360360
(local.set $temp
361-
(i31.new
361+
(ref.i31
362362
(i32.const 2)
363363
)
364364
)
@@ -410,15 +410,15 @@
410410
(tuple.extract 2 1
411411
(local.get $temp)
412412
)
413-
(i31.new
413+
(ref.i31
414414
(i32.const 1)
415415
)
416416
)
417417
(then
418418
(local.set $temp
419419
(tuple.make 2
420420
(i32.const 2)
421-
(i31.new
421+
(ref.i31
422422
(i32.const 3)
423423
)
424424
)
@@ -428,7 +428,7 @@
428428
(local.set $temp
429429
(tuple.make 2
430430
(i32.const 4)
431-
(i31.new
431+
(ref.i31
432432
(i32.const 5)
433433
)
434434
)
@@ -482,15 +482,15 @@
482482
(tuple.extract 2 1
483483
(local.get $temp)
484484
)
485-
(i31.new
485+
(ref.i31
486486
(i32.const 1)
487487
)
488488
)
489489
(then
490490
(local.set $temp
491491
(tuple.make 2
492492
(i32.const 2)
493-
(i31.new
493+
(ref.i31
494494
(i32.const 3)
495495
)
496496
)
@@ -500,7 +500,7 @@
500500
(local.set $temp
501501
(tuple.make 2
502502
(i32.const 4)
503-
(i31.new
503+
(ref.i31
504504
(i32.const 5)
505505
)
506506
)
@@ -1015,7 +1015,7 @@
10151015
(if
10161016
(ref.eq
10171017
(local.get $temp)
1018-
(i31.new
1018+
(ref.i31
10191019
(i32.const 0)
10201020
)
10211021
)

0 commit comments

Comments
 (0)