summaryrefslogtreecommitdiff
path: root/test/lit
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit')
-rw-r--r--test/lit/ctor-eval/gc-cycle-multi.wast27
-rw-r--r--test/lit/ctor-eval/gc-cycle.wast252
-rw-r--r--test/lit/passes/gto-mutability.wast8
-rw-r--r--test/lit/passes/signature-pruning.wast6
-rw-r--r--test/lit/passes/signature-refining.wast8
-rw-r--r--test/lit/passes/type-merging.wast64
-rw-r--r--test/lit/passes/type-ssa_and_merging.wast10
7 files changed, 185 insertions, 190 deletions
diff --git a/test/lit/ctor-eval/gc-cycle-multi.wast b/test/lit/ctor-eval/gc-cycle-multi.wast
index 705b76f2f..070291432 100644
--- a/test/lit/ctor-eval/gc-cycle-multi.wast
+++ b/test/lit/ctor-eval/gc-cycle-multi.wast
@@ -13,27 +13,26 @@
;; CHECK: (type $2 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_6 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (i32.const 30)
+ ;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: ))
- ;; CHECK: (global $c (mut (ref null $A)) (global.get $ctor-eval$global_8))
-
;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: (i32.const 20)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
- (global $a (mut (ref null $A)) (ref.null $A))
- ;; CHECK: (global $ctor-eval$global_6 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (i32.const 20)
+ ;; CHECK-NEXT: (i32.const 30)
;; CHECK-NEXT: ))
- ;; CHECK: (global $b (mut (ref null $A)) (global.get $ctor-eval$global_6))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_6))
+ (global $a (mut (ref null $A)) (ref.null $A))
+ ;; CHECK: (global $b (mut (ref null $A)) (global.get $ctor-eval$global_7))
(global $b (mut (ref null $A)) (ref.null $A))
+ ;; CHECK: (global $c (mut (ref null $A)) (global.get $ctor-eval$global_8))
(global $c (mut (ref null $A)) (ref.null $A))
(func $makeCycle (param $i i32) (result (ref $A))
@@ -118,16 +117,16 @@
)
;; CHECK: (func $start (type $1)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
+;; CHECK-NEXT: (global.get $ctor-eval$global_6)
+;; CHECK-NEXT: (global.get $ctor-eval$global_6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (struct.set $A 0
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
;; CHECK-NEXT: )
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_6)
-;; CHECK-NEXT: (global.get $ctor-eval$global_6)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
diff --git a/test/lit/ctor-eval/gc-cycle.wast b/test/lit/ctor-eval/gc-cycle.wast
index 36333a8bd..a342ba3c9 100644
--- a/test/lit/ctor-eval/gc-cycle.wast
+++ b/test/lit/ctor-eval/gc-cycle.wast
@@ -151,20 +151,20 @@
;; CHECK: (type $2 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_8))
- (global $a (mut (ref null $A)) (ref.null $A))
-
- ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (global.get $ctor-eval$global_8)
+ ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_7)
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: ))
- ;; CHECK: (global $b (mut (ref null $A)) (global.get $ctor-eval$global_7))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
+ (global $a (mut (ref null $A)) (ref.null $A))
+
+ ;; CHECK: (global $b (mut (ref null $A)) (global.get $ctor-eval$global_8))
(global $b (mut (ref null $A)) (ref.null $A))
(func $test (export "test")
@@ -223,8 +223,8 @@
;; CHECK: (func $start (type $1)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -250,20 +250,20 @@
;; CHECK: (type $3 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_8))
- (global $a (mut (ref null $A)) (ref.null $A))
-
- ;; CHECK: (global $ctor-eval$global_7 (ref $B) (struct.new $B
- ;; CHECK-NEXT: (global.get $ctor-eval$global_8)
+ ;; CHECK: (global $ctor-eval$global_8 (ref $B) (struct.new $B
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_7)
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: ))
- ;; CHECK: (global $b (mut (ref null $B)) (global.get $ctor-eval$global_7))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
+ (global $a (mut (ref null $A)) (ref.null $A))
+
+ ;; CHECK: (global $b (mut (ref null $B)) (global.get $ctor-eval$global_8))
(global $b (mut (ref null $B)) (ref.null $B))
(func $test (export "test")
@@ -321,8 +321,8 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -348,19 +348,19 @@
;; CHECK: (type $3 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_8))
-
- ;; CHECK: (global $ctor-eval$global_7 (ref $B) (struct.new $B
- ;; CHECK-NEXT: (global.get $ctor-eval$global_8)
+ ;; CHECK: (global $ctor-eval$global_8 (ref $B) (struct.new $B
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_7)
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: ))
- ;; CHECK: (global $b (mut (ref null $B)) (global.get $ctor-eval$global_7))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
+
+ ;; CHECK: (global $b (mut (ref null $B)) (global.get $ctor-eval$global_8))
(global $b (mut (ref null $B)) (ref.null $B))
(global $a (mut (ref null $A)) (ref.null $A))
@@ -420,8 +420,8 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -446,12 +446,17 @@
;; CHECK: (type $3 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_8))
+ ;; CHECK: (global $ctor-eval$global_8 (ref $B) (struct.new $B
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+ ;; CHECK-NEXT: (i32.const 1337)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
(global $a (mut (ref null $A)) (ref.null $A))
(global $b (mut (ref null $B)) (ref.null $B))
@@ -481,11 +486,6 @@
)
)
- ;; CHECK: (global $ctor-eval$global_7 (ref $B) (struct.new $B
- ;; CHECK-NEXT: (global.get $ctor-eval$global_8)
- ;; CHECK-NEXT: (i32.const 1337)
- ;; CHECK-NEXT: ))
-
;; CHECK: (export "test" (func $test_3))
;; CHECK: (export "keepalive" (func $keepalive))
@@ -506,8 +506,8 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -536,12 +536,17 @@
;; CHECK: (type $3 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_8 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_7 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_8))
+ ;; CHECK: (global $ctor-eval$global_8 (ref $B) (struct.new $B
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+ ;; CHECK-NEXT: (i32.const 1337)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_7))
(global $a (mut (ref null $A)) (ref.null $A))
(func $test (export "test")
@@ -569,11 +574,6 @@
)
)
- ;; CHECK: (global $ctor-eval$global_7 (ref $B) (struct.new $B
- ;; CHECK-NEXT: (global.get $ctor-eval$global_8)
- ;; CHECK-NEXT: (i32.const 1337)
- ;; CHECK-NEXT: ))
-
;; CHECK: (export "test" (func $test_3))
;; CHECK: (export "keepalive" (func $keepalive))
@@ -594,8 +594,8 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: (global.get $ctor-eval$global_7)
+;; CHECK-NEXT: (global.get $ctor-eval$global_8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -614,17 +614,22 @@
;; CHECK: (type $2 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_13 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_12 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (i32.const 1337)
+ ;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
;; CHECK: (global $ctor-eval$global_14 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (i32.const 42)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_14))
+ ;; CHECK: (global $ctor-eval$global_13 (ref $A) (struct.new $A
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK-NEXT: (i32.const 99999)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_12))
(global $a (mut (ref null $A)) (ref.null $A))
(global $b (mut (ref null $A)) (ref.null $A))
@@ -665,11 +670,6 @@
)
)
- ;; CHECK: (global $ctor-eval$global_12 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (global.get $ctor-eval$global_13)
- ;; CHECK-NEXT: (i32.const 99999)
- ;; CHECK-NEXT: ))
-
;; CHECK: (export "test" (func $test_3))
;; CHECK: (export "keepalive" (func $keepalive))
@@ -690,12 +690,8 @@
;; CHECK: (func $start (type $1)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_13)
-;; CHECK-NEXT: (global.get $ctor-eval$global_14)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_14)
;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+;; CHECK-NEXT: (global.get $ctor-eval$global_13)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -729,25 +725,25 @@
;; CHECK: (type $4 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_14 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_12 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $ctor-eval$global_13 (ref $B) (array.new_fixed $B 10
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK: (global $ctor-eval$global_14 (ref $B) (array.new_fixed $B 10
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_14))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_12))
(global $a (mut (ref null $A)) (ref.null $A))
(func $test (export "test")
@@ -784,9 +780,9 @@
)
)
- ;; CHECK: (global $ctor-eval$global_12 (ref $C) (array.new_fixed $C 2
- ;; CHECK-NEXT: (global.get $ctor-eval$global_13)
+ ;; CHECK: (global $ctor-eval$global_13 (ref $C) (array.new_fixed $C 2
;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
;; CHECK-NEXT: ))
;; CHECK: (export "test" (func $test_3))
@@ -809,8 +805,8 @@
;; CHECK: (func $start (type $3)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_14)
;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+;; CHECK-NEXT: (global.get $ctor-eval$global_13)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -837,25 +833,25 @@
;; CHECK: (type $4 (func (result i32)))
- ;; CHECK: (global $ctor-eval$global_14 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_12 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: ))
- ;; CHECK: (global $ctor-eval$global_13 (ref $B) (array.new_fixed $B 10
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK: (global $ctor-eval$global_14 (ref $B) (array.new_fixed $B 10
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_14))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_12))
(global $a (mut (ref null $A)) (ref.null $A))
(global $b (mut (ref null $B)) (ref.null $B))
@@ -896,9 +892,9 @@
)
)
- ;; CHECK: (global $ctor-eval$global_12 (ref $C) (array.new_fixed $C 2
- ;; CHECK-NEXT: (global.get $ctor-eval$global_13)
+ ;; CHECK: (global $ctor-eval$global_13 (ref $C) (array.new_fixed $C 2
;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_12)
;; CHECK-NEXT: ))
;; CHECK: (export "test" (func $test_3))
@@ -921,8 +917,8 @@
;; CHECK: (func $start (type $3)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_14)
;; CHECK-NEXT: (global.get $ctor-eval$global_12)
+;; CHECK-NEXT: (global.get $ctor-eval$global_13)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -948,13 +944,25 @@
;; CHECK: (type $3 (func (result anyref)))
- ;; CHECK: (global $ctor-eval$global_16 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_17 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_16))
+ ;; CHECK: (global $ctor-eval$global_14 (ref $A) (struct.new $A
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (global $ctor-eval$global_18 (ref $A) (struct.new $A
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: (ref.null none)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_14))
(global $a (mut (ref null $A)) (ref.null $A))
(global $b (mut (ref null $B)) (ref.null $B))
@@ -986,27 +994,15 @@
)
)
- ;; CHECK: (global $ctor-eval$global_19 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: ))
-
- ;; CHECK: (global $ctor-eval$global_15 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: (ref.null none)
- ;; CHECK-NEXT: ))
-
- ;; CHECK: (global $ctor-eval$global_14 (ref $B) (array.new_fixed $B 3
- ;; CHECK-NEXT: (global.get $ctor-eval$global_15)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_16)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_19)
+ ;; CHECK: (global $ctor-eval$global_16 (ref $B) (array.new_fixed $B 3
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_17)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_18)
;; CHECK-NEXT: ))
- ;; CHECK: (global $ctor-eval$global_17 (ref $B) (array.new_fixed $B 0))
+ ;; CHECK: (global $ctor-eval$global_15 (ref $B) (array.new_fixed $B 0))
- ;; CHECK: (global $ctor-eval$global_18 (ref $B) (array.new_fixed $B 0))
+ ;; CHECK: (global $ctor-eval$global_19 (ref $B) (array.new_fixed $B 0))
;; CHECK: (export "test" (func $test_3))
@@ -1028,16 +1024,16 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (struct.set $A 0
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
-;; CHECK-NEXT: (global.get $ctor-eval$global_17)
+;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+;; CHECK-NEXT: (global.get $ctor-eval$global_15)
;; CHECK-NEXT: )
;; CHECK-NEXT: (struct.set $A 1
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+;; CHECK-NEXT: (global.get $ctor-eval$global_16)
;; CHECK-NEXT: )
;; CHECK-NEXT: (struct.set $A 2
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
-;; CHECK-NEXT: (global.get $ctor-eval$global_18)
+;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+;; CHECK-NEXT: (global.get $ctor-eval$global_19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1060,23 +1056,23 @@
;; CHECK: (type $3 (func (result anyref)))
- ;; CHECK: (global $ctor-eval$global_16 (ref $B) (array.new_fixed $B 3
+ ;; CHECK: (global $ctor-eval$global_17 (ref $B) (array.new_fixed $B 0))
+
+ ;; CHECK: (global $ctor-eval$global_14 (ref $B) (array.new_fixed $B 3
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: ))
- ;; CHECK: (global $ctor-eval$global_19 (ref $B) (array.new_fixed $B 0))
-
- ;; CHECK: (global $ctor-eval$global_15 (ref $B) (array.new_fixed $B 0))
+ ;; CHECK: (global $ctor-eval$global_18 (ref $B) (array.new_fixed $B 0))
- ;; CHECK: (global $ctor-eval$global_14 (ref $A) (struct.new $A
- ;; CHECK-NEXT: (global.get $ctor-eval$global_15)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_16)
- ;; CHECK-NEXT: (global.get $ctor-eval$global_19)
+ ;; CHECK: (global $ctor-eval$global_16 (ref $A) (struct.new $A
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_17)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+ ;; CHECK-NEXT: (global.get $ctor-eval$global_18)
;; CHECK-NEXT: ))
- ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_14))
+ ;; CHECK: (global $a (mut (ref null $A)) (global.get $ctor-eval$global_16))
(global $a (mut (ref null $A)) (ref.null $A))
(global $b (mut (ref null $B)) (ref.null $B))
@@ -1109,13 +1105,13 @@
)
)
- ;; CHECK: (global $ctor-eval$global_17 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_15 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: ))
- ;; CHECK: (global $ctor-eval$global_18 (ref $A) (struct.new $A
+ ;; CHECK: (global $ctor-eval$global_19 (ref $A) (struct.new $A
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
@@ -1141,19 +1137,19 @@
;; CHECK: (func $start (type $2)
;; CHECK-NEXT: (array.set $B
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
+;; CHECK-NEXT: (global.get $ctor-eval$global_14)
;; CHECK-NEXT: (i32.const 0)
-;; CHECK-NEXT: (global.get $ctor-eval$global_17)
+;; CHECK-NEXT: (global.get $ctor-eval$global_15)
;; CHECK-NEXT: )
;; CHECK-NEXT: (array.set $B
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
-;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (global.get $ctor-eval$global_14)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: (global.get $ctor-eval$global_16)
;; CHECK-NEXT: )
;; CHECK-NEXT: (array.set $B
-;; CHECK-NEXT: (global.get $ctor-eval$global_16)
+;; CHECK-NEXT: (global.get $ctor-eval$global_14)
;; CHECK-NEXT: (i32.const 2)
-;; CHECK-NEXT: (global.get $ctor-eval$global_18)
+;; CHECK-NEXT: (global.get $ctor-eval$global_19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
diff --git a/test/lit/passes/gto-mutability.wast b/test/lit/passes/gto-mutability.wast
index 47a9e2315..13b416b1b 100644
--- a/test/lit/passes/gto-mutability.wast
+++ b/test/lit/passes/gto-mutability.wast
@@ -429,10 +429,10 @@
;; optimize the field to be immutable.
;; CHECK: (rec
- ;; CHECK-NEXT: (type $0 (func (param (ref null $super) (ref null $sub))))
-
- ;; CHECK: (type $super (sub (struct (field i32))))
+ ;; CHECK-NEXT: (type $super (sub (struct (field i32))))
(type $super (sub (struct (field (mut i32)))))
+ ;; CHECK: (type $1 (func (param (ref null $super) (ref null $sub))))
+
;; CHECK: (type $sub (sub $super (struct (field i32))))
(type $sub (sub $super (struct (field (mut i32)))))
@@ -464,7 +464,7 @@
)
)
- ;; CHECK: (func $field-keepalive (type $0) (param $super (ref null $super)) (param $sub (ref null $sub))
+ ;; CHECK: (func $field-keepalive (type $1) (param $super (ref null $super)) (param $sub (ref null $sub))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.get $super 0
;; CHECK-NEXT: (local.get $super)
diff --git a/test/lit/passes/signature-pruning.wast b/test/lit/passes/signature-pruning.wast
index 8754c8189..57dd78362 100644
--- a/test/lit/passes/signature-pruning.wast
+++ b/test/lit/passes/signature-pruning.wast
@@ -1161,9 +1161,9 @@
(module
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $much (func))
+ ;; CHECK-NEXT: (type $0 (func))
- ;; CHECK: (type $1 (func))
+ ;; CHECK: (type $much (func))
;; CHECK: (rec
;; CHECK-NEXT: (type $none (func))
@@ -1191,7 +1191,7 @@
(func $unused-param (type $much) (param $param i32)
)
- ;; CHECK: (func $caller (type $1)
+ ;; CHECK: (func $caller (type $0)
;; CHECK-NEXT: (call $unused-param)
;; CHECK-NEXT: )
(func $caller
diff --git a/test/lit/passes/signature-refining.wast b/test/lit/passes/signature-refining.wast
index fdddbe4ed..7a5020e29 100644
--- a/test/lit/passes/signature-refining.wast
+++ b/test/lit/passes/signature-refining.wast
@@ -1068,11 +1068,11 @@
(module
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $0 (func (param (ref $B))))
-
- ;; CHECK: (type $A (sub (struct)))
+ ;; CHECK-NEXT: (type $A (sub (struct)))
(type $A (sub (struct)))
+ ;; CHECK: (type $1 (func (param (ref $B))))
+
;; CHECK: (type $B (sub $A (struct)))
(type $B (sub $A (struct)))
)
@@ -1108,7 +1108,7 @@
)
)
- ;; CHECK: (func $target (type $0) (param $x (ref $B))
+ ;; CHECK: (func $target (type $1) (param $x (ref $B))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $target (param $x (ref $A))
diff --git a/test/lit/passes/type-merging.wast b/test/lit/passes/type-merging.wast
index d6d117a05..b8d602863 100644
--- a/test/lit/passes/type-merging.wast
+++ b/test/lit/passes/type-merging.wast
@@ -234,10 +234,10 @@
(module
(rec
- ;; CHECK: (rec
- ;; CHECK-NEXT: (type $A (sub (struct (field (ref null $A)))))
(type $A (sub (struct (ref null $X))))
(type $B (sub $A (struct (ref null $Y))))
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $X (sub (struct (field (ref null $X)))))
(type $X (sub (struct (ref null $A))))
(type $Y (sub $X (struct (ref null $B))))
)
@@ -245,10 +245,10 @@
;; CHECK: (type $1 (func))
;; CHECK: (func $foo (type $1)
- ;; CHECK-NEXT: (local $a (ref null $A))
- ;; CHECK-NEXT: (local $b (ref null $A))
- ;; CHECK-NEXT: (local $x (ref null $A))
- ;; CHECK-NEXT: (local $y (ref null $A))
+ ;; CHECK-NEXT: (local $a (ref null $X))
+ ;; CHECK-NEXT: (local $b (ref null $X))
+ ;; CHECK-NEXT: (local $x (ref null $X))
+ ;; CHECK-NEXT: (local $y (ref null $X))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
@@ -263,21 +263,21 @@
(module
(rec
- (type $A (struct (ref null $X) i32))
;; CHECK: (rec
- ;; CHECK-NEXT: (type $B (struct (field (ref null $Y)) (field i32)))
+ ;; CHECK-NEXT: (type $A (struct (field (ref null $X)) (field i32)))
+ (type $A (struct (ref null $X) i32))
(type $B (struct (ref null $Y) i32))
+ ;; CHECK: (type $X (struct (field (ref null $A)) (field f32)))
(type $X (struct (ref null $A) f32))
- ;; CHECK: (type $Y (struct (field (ref null $B)) (field f32)))
(type $Y (struct (ref null $B) f32))
)
;; CHECK: (type $2 (func))
;; CHECK: (func $foo (type $2)
- ;; CHECK-NEXT: (local $a (ref null $B))
- ;; CHECK-NEXT: (local $b (ref null $B))
- ;; CHECK-NEXT: (local $x (ref null $Y))
- ;; CHECK-NEXT: (local $y (ref null $Y))
+ ;; CHECK-NEXT: (local $a (ref null $A))
+ ;; CHECK-NEXT: (local $b (ref null $A))
+ ;; CHECK-NEXT: (local $x (ref null $X))
+ ;; CHECK-NEXT: (local $y (ref null $X))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
@@ -293,19 +293,19 @@
(module
(rec
(type $A (struct (ref null $X)))
- ;; CHECK: (rec
- ;; CHECK-NEXT: (type $B (struct (field (ref null $B))))
(type $B (struct (ref null $Y)))
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $X (struct (field (ref null $X))))
(type $X (struct (ref null $A)))
(type $Y (struct (ref null $B)))
)
;; CHECK: (type $1 (func))
;; CHECK: (func $foo (type $1)
- ;; CHECK-NEXT: (local $a (ref null $B))
- ;; CHECK-NEXT: (local $b (ref null $B))
- ;; CHECK-NEXT: (local $x (ref null $B))
- ;; CHECK-NEXT: (local $y (ref null $B))
+ ;; CHECK-NEXT: (local $a (ref null $X))
+ ;; CHECK-NEXT: (local $b (ref null $X))
+ ;; CHECK-NEXT: (local $x (ref null $X))
+ ;; CHECK-NEXT: (local $y (ref null $X))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
@@ -495,8 +495,8 @@
;; CHECK: (rec
;; CHECK-NEXT: (type $A (sub (struct (field anyref))))
(type $A (sub (struct anyref)))
+ ;; CHECK: (type $B (sub $A (struct (field eqref))))
(type $B (sub $A (struct eqref)))
- ;; CHECK: (type $C (sub $A (struct (field eqref))))
(type $C (sub $A (struct eqref)))
)
@@ -504,8 +504,8 @@
;; CHECK: (func $foo (type $2)
;; CHECK-NEXT: (local $a (ref null $A))
- ;; CHECK-NEXT: (local $b (ref null $C))
- ;; CHECK-NEXT: (local $c (ref null $C))
+ ;; CHECK-NEXT: (local $b (ref null $B))
+ ;; CHECK-NEXT: (local $c (ref null $B))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
@@ -524,8 +524,8 @@
(type $A (sub (struct anyref)))
(type $B (sub $A (struct anyref)))
(type $C (sub $A (struct anyref)))
+ ;; CHECK: (type $D (sub $A (struct (field eqref))))
(type $D (sub $B (struct eqref)))
- ;; CHECK: (type $E (sub $A (struct (field eqref))))
(type $E (sub $C (struct eqref)))
)
@@ -535,8 +535,8 @@
;; CHECK-NEXT: (local $a (ref null $A))
;; CHECK-NEXT: (local $b (ref null $A))
;; CHECK-NEXT: (local $c (ref null $A))
- ;; CHECK-NEXT: (local $d (ref null $E))
- ;; CHECK-NEXT: (local $e (ref null $E))
+ ;; CHECK-NEXT: (local $d (ref null $D))
+ ;; CHECK-NEXT: (local $e (ref null $D))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
@@ -561,18 +561,18 @@
(type $A' (sub $A (struct)))
;; These siblings will be merged only after $a and $a' are merged.
+ ;; CHECK: (type $B (sub (struct (field (ref $A)))))
(type $B (sub (struct (ref $A))))
- ;; CHECK: (type $B' (sub (struct (field (ref $A)))))
(type $B' (sub (struct (ref $A'))))
;; These will get merged only after $b and $b' are merged.
- ;; CHECK: (type $C (sub $B' (struct (field (ref $A)) (field i32))))
+ ;; CHECK: (type $C (sub $B (struct (field (ref $A)) (field i32))))
(type $C (sub $B (struct (ref $A) i32)))
(type $C' (sub $B' (struct (ref $A') i32)))
;; These will get merged only after $c and $c' are merged.
+ ;; CHECK: (type $D (sub $C (struct (field (ref $A)) (field i32) (field i32))))
(type $D (sub $C (struct (ref $A) i32 i32)))
- ;; CHECK: (type $D' (sub $C (struct (field (ref $A)) (field i32) (field i32))))
(type $D' (sub $C' (struct (ref $A') i32 i32)))
)
@@ -581,12 +581,12 @@
;; CHECK: (func $foo (type $4)
;; CHECK-NEXT: (local $a (ref null $A))
;; CHECK-NEXT: (local $a' (ref null $A))
- ;; CHECK-NEXT: (local $b (ref null $B'))
- ;; CHECK-NEXT: (local $b' (ref null $B'))
+ ;; CHECK-NEXT: (local $b (ref null $B))
+ ;; CHECK-NEXT: (local $b' (ref null $B))
;; CHECK-NEXT: (local $c (ref null $C))
;; CHECK-NEXT: (local $c' (ref null $C))
- ;; CHECK-NEXT: (local $d (ref null $D'))
- ;; CHECK-NEXT: (local $d' (ref null $D'))
+ ;; CHECK-NEXT: (local $d (ref null $D))
+ ;; CHECK-NEXT: (local $d' (ref null $D))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo
diff --git a/test/lit/passes/type-ssa_and_merging.wast b/test/lit/passes/type-ssa_and_merging.wast
index 8e84cf5c4..4a772763b 100644
--- a/test/lit/passes/type-ssa_and_merging.wast
+++ b/test/lit/passes/type-ssa_and_merging.wast
@@ -14,14 +14,14 @@
;; YES: (type $0 (func (result i32)))
;; YES: (rec
- ;; YES-NEXT: (type $1 (func (param (ref $A))))
-
- ;; YES: (type $A (sub (struct)))
+ ;; YES-NEXT: (type $A (sub (struct)))
(type $A (sub (struct (field (mut i32)))))
;; NOP: (type $2 (func (result i32)))
;; NOP: (import "a" "b" (func $import (type $2) (result i32)))
+ ;; YES: (type $2 (func (param (ref $A))))
+
;; YES: (type $A_2 (sub $A (struct)))
;; YES: (type $A_1 (sub $A (struct)))
@@ -92,7 +92,7 @@
;; NOP-NEXT: (local.get $0)
;; NOP-NEXT: )
;; NOP-NEXT: )
- ;; YES: (func $get-a-1 (type $1) (param $0 (ref $A))
+ ;; YES: (func $get-a-1 (type $2) (param $0 (ref $A))
;; YES-NEXT: (if
;; YES-NEXT: (call $import)
;; YES-NEXT: (then
@@ -134,7 +134,7 @@
;; NOP-NEXT: (local.get $0)
;; NOP-NEXT: )
;; NOP-NEXT: )
- ;; YES: (func $get-a-2 (type $1) (param $0 (ref $A))
+ ;; YES: (func $get-a-2 (type $2) (param $0 (ref $A))
;; YES-NEXT: (if
;; YES-NEXT: (call $import)
;; YES-NEXT: (then