summaryrefslogtreecommitdiff
path: root/test/lit/wasm-split
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/wasm-split')
-rw-r--r--test/lit/wasm-split/passive.wast30
-rw-r--r--test/lit/wasm-split/ref.func.wast56
2 files changed, 53 insertions, 33 deletions
diff --git a/test/lit/wasm-split/passive.wast b/test/lit/wasm-split/passive.wast
index a72dcada5..322288201 100644
--- a/test/lit/wasm-split/passive.wast
+++ b/test/lit/wasm-split/passive.wast
@@ -1,31 +1,31 @@
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
-;; RUN: wasm-split %s --split-funcs=second-in-table -g -o1 %t.1.wasm -o2 %t.2.wasm -all
-;; RUN: wasm-dis %t.1.wasm | filecheck %s --check-prefix PRIMARY
-;; RUN: wasm-dis %t.2.wasm | filecheck %s --check-prefix SECONDARY
+;; RUN: wasm-split %s -all --split-funcs=second-in-table -g -o1 %t.1.wasm -o2 %t.2.wasm
+;; RUN: wasm-dis -all %t.1.wasm | filecheck %s --check-prefix PRIMARY
+;; RUN: wasm-dis -all %t.2.wasm | filecheck %s --check-prefix SECONDARY
(module
(type $func-array (array (mut funcref)))
;; PRIMARY: (type $0 (func))
- ;; PRIMARY: (import "placeholder" "0" (func $placeholder_0))
+ ;; PRIMARY: (import "placeholder" "0" (func $placeholder_0 (type $0)))
;; PRIMARY: (table $table 3 funcref)
(table $table 3 funcref)
- ;; Workaround for https://github.com/WebAssembly/binaryen/issues/6572 - we
- ;; error without an active segment.
- (elem (i32.const 0))
-
- ;; PRIMARY: (elem $0 (i32.const 0) $placeholder_0)
+ ;; PRIMARY: (table $1 1 funcref)
;; PRIMARY: (elem $passive func $in-table $1)
(elem $passive func $in-table $second-in-table)
+ ;; PRIMARY: (elem $1 (table $1) (i32.const 0) func $placeholder_0)
+
;; PRIMARY: (export "table" (table $table))
- ;; PRIMARY: (func $in-table
+ ;; PRIMARY: (export "table_1" (table $1))
+
+ ;; PRIMARY: (func $in-table (type $0)
;; PRIMARY-NEXT: (nop)
;; PRIMARY-NEXT: )
(func $in-table
@@ -35,11 +35,13 @@
;; SECONDARY: (type $0 (func))
+ ;; SECONDARY: (import "primary" "table_1" (table $timport$0 1 funcref))
+
;; SECONDARY: (import "primary" "table" (table $table 3 funcref))
- ;; SECONDARY: (elem $0 (i32.const 0) $second-in-table)
+ ;; SECONDARY: (elem $0 (table $timport$0) (i32.const 0) func $second-in-table)
- ;; SECONDARY: (func $second-in-table
+ ;; SECONDARY: (func $second-in-table (type $0)
;; SECONDARY-NEXT: (nop)
;; SECONDARY-NEXT: )
(func $second-in-table
@@ -47,8 +49,8 @@
;; handle it by adding a trampoline from the segment as a new function "$1".
)
)
-;; PRIMARY: (func $1
-;; PRIMARY-NEXT: (call_indirect (type $0)
+;; PRIMARY: (func $1 (type $0)
+;; PRIMARY-NEXT: (call_indirect $1 (type $0)
;; PRIMARY-NEXT: (i32.const 0)
;; PRIMARY-NEXT: )
;; PRIMARY-NEXT: )
diff --git a/test/lit/wasm-split/ref.func.wast b/test/lit/wasm-split/ref.func.wast
index f7832dcf4..39cce5dea 100644
--- a/test/lit/wasm-split/ref.func.wast
+++ b/test/lit/wasm-split/ref.func.wast
@@ -1,8 +1,8 @@
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
-;; RUN: wasm-split %s --split-funcs=second,second-in-table -g -o1 %t.1.wasm -o2 %t.2.wasm -all
-;; RUN: wasm-dis %t.1.wasm | filecheck %s --check-prefix PRIMARY
-;; RUN: wasm-dis %t.2.wasm | filecheck %s --check-prefix SECONDARY
+;; RUN: wasm-split %s -all --split-funcs=second,second-in-table -g -o1 %t.1.wasm -o2 %t.2.wasm
+;; RUN: wasm-dis -all %t.1.wasm | filecheck %s --check-prefix PRIMARY
+;; RUN: wasm-dis -all %t.2.wasm | filecheck %s --check-prefix SECONDARY
;; Test that we handle ref.func operations properly as we split out $second.
;; ref.funcs that refer to the other module must be fixed up to refer to
@@ -10,33 +10,41 @@
(module
;; PRIMARY: (type $0 (func))
- ;; PRIMARY: (import "placeholder" "1" (func $placeholder_1))
+ ;; PRIMARY: (import "placeholder" "0" (func $placeholder_0 (type $0)))
- ;; PRIMARY: (import "placeholder" "2" (func $placeholder_2))
+ ;; PRIMARY: (import "placeholder" "1" (func $placeholder_1 (type $0)))
;; PRIMARY: (global $glob1 (ref func) (ref.func $prime))
;; PRIMARY: (global $glob2 (ref func) (ref.func $2))
- ;; PRIMARY: (table $table 3 3 funcref)
+ ;; PRIMARY: (table $table 1 1 funcref)
(table $table 1 1 funcref)
(global $glob1 (ref func) (ref.func $prime))
(global $glob2 (ref func) (ref.func $second))
- ;; PRIMARY: (elem $elem (i32.const 0) $in-table $placeholder_1 $placeholder_2)
+ ;; PRIMARY: (table $1 2 funcref)
+
+ ;; PRIMARY: (elem $elem (table $table) (i32.const 0) func $in-table $3)
(elem $elem (i32.const 0) $in-table $second-in-table)
+ ;; PRIMARY: (elem $1 (table $1) (i32.const 0) func $placeholder_0 $placeholder_1)
+
+ ;; PRIMARY: (elem declare func $2 $prime)
+
;; PRIMARY: (export "prime" (func $prime))
;; PRIMARY: (export "table" (table $table))
+ ;; PRIMARY: (export "table_2" (table $1))
+
;; PRIMARY: (export "global" (global $glob1))
- ;; PRIMARY: (export "global_3" (global $glob2))
+ ;; PRIMARY: (export "global_4" (global $glob2))
- ;; PRIMARY: (func $prime
+ ;; PRIMARY: (func $prime (type $0)
;; PRIMARY-NEXT: (drop
;; PRIMARY-NEXT: (ref.func $prime)
;; PRIMARY-NEXT: )
@@ -55,17 +63,21 @@
;; SECONDARY: (type $0 (func))
- ;; SECONDARY: (import "primary" "table" (table $table 3 3 funcref))
+ ;; SECONDARY: (import "primary" "table_2" (table $timport$0 2 funcref))
+
+ ;; SECONDARY: (import "primary" "table" (table $table 1 1 funcref))
;; SECONDARY: (import "primary" "global" (global $glob1 (ref func)))
- ;; SECONDARY: (import "primary" "global_3" (global $glob2 (ref func)))
+ ;; SECONDARY: (import "primary" "global_4" (global $glob2 (ref func)))
- ;; SECONDARY: (import "primary" "prime" (func $prime))
+ ;; SECONDARY: (import "primary" "prime" (func $prime (type $0)))
- ;; SECONDARY: (elem $0 (i32.const 1) $second-in-table $second)
+ ;; SECONDARY: (elem $0 (table $timport$0) (i32.const 0) func $second $second-in-table)
- ;; SECONDARY: (func $second
+ ;; SECONDARY: (elem declare func $prime)
+
+ ;; SECONDARY: (func $second (type $0)
;; SECONDARY-NEXT: (drop
;; SECONDARY-NEXT: (ref.func $prime)
;; SECONDARY-NEXT: )
@@ -82,7 +94,7 @@
)
)
- ;; PRIMARY: (func $in-table
+ ;; PRIMARY: (func $in-table (type $0)
;; PRIMARY-NEXT: (nop)
;; PRIMARY-NEXT: )
(func $in-table
@@ -91,7 +103,7 @@
;; table is a list of ref.funcs.
)
- ;; SECONDARY: (func $second-in-table
+ ;; SECONDARY: (func $second-in-table (type $0)
;; SECONDARY-NEXT: (nop)
;; SECONDARY-NEXT: )
(func $second-in-table
@@ -99,8 +111,14 @@
;; (but we will get a placeholder, as all split-out functions do).
)
)
-;; PRIMARY: (func $2
-;; PRIMARY-NEXT: (call_indirect (type $0)
-;; PRIMARY-NEXT: (i32.const 2)
+;; PRIMARY: (func $2 (type $0)
+;; PRIMARY-NEXT: (call_indirect $1 (type $0)
+;; PRIMARY-NEXT: (i32.const 0)
+;; PRIMARY-NEXT: )
+;; PRIMARY-NEXT: )
+
+;; PRIMARY: (func $3 (type $0)
+;; PRIMARY-NEXT: (call_indirect $1 (type $0)
+;; PRIMARY-NEXT: (i32.const 1)
;; PRIMARY-NEXT: )
;; PRIMARY-NEXT: )