diff options
Diffstat (limited to 'test/passes/remove-unused-module-elements.wast')
-rw-r--r-- | test/passes/remove-unused-module-elements.wast | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/test/passes/remove-unused-module-elements.wast b/test/passes/remove-unused-module-elements.wast new file mode 100644 index 000000000..eb071ee66 --- /dev/null +++ b/test/passes/remove-unused-module-elements.wast @@ -0,0 +1,96 @@ +(module + (memory 0) + (start $start) + (type $0 (func)) + (export "memory" (memory $0)) + (export "exported" $exported) + (table 1 1 anyfunc) + (elem (i32.const 0) $called_indirect) + (func $start (type $0) + (call $called0) + ) + (func $called0 (type $0) + (call $called1) + ) + (func $called1 (type $0) + (nop) + ) + (func $called_indirect (type $0) + (nop) + ) + (func $exported (type $0) + (call $called2) + ) + (func $called2 (type $0) + (call $called2) + (call $called3) + ) + (func $called3 (type $0) + (call $called4) + ) + (func $called4 (type $0) + (call $called3) + ) + (func $remove0 (type $0) + (call $remove1) + ) + (func $remove1 (type $0) + (nop) + ) + (func $remove2 (type $0) + (call $remove2) + ) + (func $remove3 (type $0) + (call $remove4) + ) + (func $remove4 (type $0) + (call $remove3) + ) +) +(module ;; leave the table and memory alone + (import "env" "memory" (memory $0 256)) + (import "env" "table" (table 0 anyfunc)) +) +(module + (import "env" "memory" (memory $0 256)) + (import "env" "table" (table 0 anyfunc)) + (import "env" "memoryBase" (global $memoryBase i32)) ;; used in init + (import "env" "tableBase" (global $tableBase i32)) ;; used in init + (data (get_global $memoryBase) "hello, world!") + (elem (get_global $tableBase) $waka) + (func $waka) ;; used in table +) +(module ;; one is exported, and one->two->int global, whose init->imported + (import "env" "imported" (global $imported i32)) + (import "env" "forgetme" (global $forgetme i32)) + (import "env" "_puts" (func $_puts (param i32) (result i32))) + (import "env" "forget_puts" (func $forget_puts (param i32) (result i32))) + (global $int (mut i32) (get_global $imported)) + (global $set (mut i32) (i32.const 100)) + (global $forget_global (mut i32) (i32.const 500)) + (global $exp_glob i32 (i32.const 600)) + (export "one" (func $one)) + (export "three" (func $three)) + (export "exp_glob" (global $exp_glob)) + (start $starter) + (func $one (result i32) + (call $two) + ) + (func $two (result i32) + (get_global $int) + ) + (func $three + (call $four) + ) + (func $four + (set_global $set (i32.const 200)) + (drop (call $_puts (i32.const 300))) + ) + (func $forget_implemented + (nop) + ) + (func $starter + (nop) + ) +) + |