diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ctor-eval/gc-2.wast.out | 10 | ||||
-rw-r--r-- | test/lit/ctor-eval/gc-cycle-multi.wast | 27 | ||||
-rw-r--r-- | test/lit/ctor-eval/gc-cycle.wast | 252 | ||||
-rw-r--r-- | test/lit/passes/gto-mutability.wast | 8 | ||||
-rw-r--r-- | test/lit/passes/signature-pruning.wast | 6 | ||||
-rw-r--r-- | test/lit/passes/signature-refining.wast | 8 | ||||
-rw-r--r-- | test/lit/passes/type-merging.wast | 64 | ||||
-rw-r--r-- | test/lit/passes/type-ssa_and_merging.wast | 10 |
8 files changed, 190 insertions, 195 deletions
diff --git a/test/ctor-eval/gc-2.wast.out b/test/ctor-eval/gc-2.wast.out index 4d80f764e..ebac37653 100644 --- a/test/ctor-eval/gc-2.wast.out +++ b/test/ctor-eval/gc-2.wast.out @@ -1,15 +1,15 @@ (module (type $struct (sub (struct (field i32)))) (type $1 (func (result i32))) - (global $ctor-eval$global_4 (ref $struct) (struct.new $struct - (i32.const 9999) - )) - (global $global3 (ref $struct) (global.get $ctor-eval$global_4)) - (global $global2 (mut (ref null $struct)) (global.get $ctor-eval$global_4)) (global $ctor-eval$global (ref $struct) (struct.new $struct (i32.const 1337) )) + (global $ctor-eval$global_4 (ref $struct) (struct.new $struct + (i32.const 9999) + )) (global $global1 (ref any) (global.get $ctor-eval$global)) + (global $global2 (mut (ref null $struct)) (global.get $ctor-eval$global_4)) + (global $global3 (ref $struct) (global.get $ctor-eval$global_4)) (export "keepalive" (func $keepalive)) (func $keepalive (type $1) (result i32) (select 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 |