summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--src/passes/Print.cpp15
-rw-r--r--src/wasm/wasm-type.cpp2
-rw-r--r--test/atomics-unshared.wast.from-wast2
-rw-r--r--test/atomics-unshared.wast.fromBinary2
-rw-r--r--test/atomics-unshared.wast.fromBinary.noDebugInfo2
-rw-r--r--test/atomics.wast.from-wast10
-rw-r--r--test/atomics.wast.fromBinary10
-rw-r--r--test/atomics.wast.fromBinary.noDebugInfo10
-rw-r--r--test/atomics64.wast.from-wast10
-rw-r--r--test/atomics64.wast.fromBinary10
-rw-r--r--test/atomics64.wast.fromBinary.noDebugInfo10
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt14
-rw-r--r--test/complexTextNames.wast.from-wast4
-rw-r--r--test/complexTextNames.wast.fromBinary4
-rw-r--r--test/complexTextNames.wast.fromBinary.noDebugInfo4
-rw-r--r--test/ctor-eval/bad-indirect-call.wast.out4
-rw-r--r--test/ctor-eval/bad-indirect-call2.wast.out4
-rw-r--r--test/ctor-eval/bad-indirect-call3.wast.out4
-rw-r--r--test/ctor-eval/basics-flatten.wast.out2
-rw-r--r--test/ctor-eval/basics.wast.out2
-rw-r--r--test/ctor-eval/gc-2.wast.out2
-rw-r--r--test/ctor-eval/gc-array.wast.out2
-rw-r--r--test/ctor-eval/gc.wast.out4
-rw-r--r--test/ctor-eval/global-get-init.wast.out2
-rw-r--r--test/ctor-eval/globals.wast.out2
-rw-r--r--test/ctor-eval/ignore-external-input-gc.wast.out4
-rw-r--r--test/ctor-eval/ignore-external-input.wast.out2
-rw-r--r--test/ctor-eval/imported-global-2.wast.out4
-rw-r--r--test/ctor-eval/imported-global.wast.out2
-rw-r--r--test/ctor-eval/indirect-call3.wast.out2
-rw-r--r--test/ctor-eval/just_some.wast.out4
-rw-r--r--test/ctor-eval/memory-init.wast.out2
-rw-r--r--test/ctor-eval/overlapping-segments.wast.out6
-rw-r--r--test/ctor-eval/params.wast.out2
-rw-r--r--test/ctor-eval/partial-locals-tee.wast.out2
-rw-r--r--test/ctor-eval/partial-locals.wast.out2
-rw-r--r--test/ctor-eval/partial.wast.out4
-rw-r--r--test/ctor-eval/results.wast.out18
-rw-r--r--test/ctor-eval/unsafe_call.wast.out4
-rw-r--r--test/duplicate_types.wast.from-wast4
-rw-r--r--test/duplicate_types.wast.fromBinary4
-rw-r--r--test/duplicate_types.wast.fromBinary.noDebugInfo4
-rw-r--r--test/example/c-api-kitchen-sink.c2
-rw-r--r--test/example/c-api-kitchen-sink.txt12
-rw-r--r--test/example/module-splitting.txt220
-rw-r--r--test/example/type-builder.cpp259
-rw-r--r--test/example/type-builder.txt74
-rw-r--r--test/example/typeinfo.txt40
-rw-r--r--test/exception-handling.wast.from-wast16
-rw-r--r--test/exception-handling.wast.fromBinary16
-rw-r--r--test/exception-handling.wast.fromBinary.noDebugInfo16
-rw-r--r--test/fn_prolog_epilog.debugInfo.wast.from-wast2
-rw-r--r--test/fn_prolog_epilog.debugInfo.wast.fromBinary2
-rw-r--r--test/fn_prolog_epilog.debugInfo.wast.fromBinary.noDebugInfo2
-rw-r--r--test/gc.wast.from-wast4
-rw-r--r--test/gc.wast.fromBinary4
-rw-r--r--test/gc.wast.fromBinary.noDebugInfo4
-rw-r--r--test/grow_memory.wast.from-wast4
-rw-r--r--test/grow_memory.wast.fromBinary4
-rw-r--r--test/grow_memory.wast.fromBinary.noDebugInfo4
-rw-r--r--test/gtest/type-builder.cpp123
-rw-r--r--test/heap-types.wast4
-rw-r--r--test/heap-types.wast.from-wast43
-rw-r--r--test/heap-types.wast.fromBinary43
-rw-r--r--test/heap-types.wast.fromBinary.noDebugInfo43
-rw-r--r--test/kitchen_sink.wast.from-wast2
-rw-r--r--test/kitchen_sink.wast.fromBinary2
-rw-r--r--test/kitchen_sink.wast.fromBinary.noDebugInfo2
-rw-r--r--test/lit/array-new-seg-note-count.wast2
-rw-r--r--test/lit/arrays.wast24
-rw-r--r--test/lit/binary/annotated-array-len.test4
-rw-r--r--test/lit/binary/prototype-nominal-format.test16
-rw-r--r--test/lit/extern-conversions.wast4
-rw-r--r--test/lit/gc-eh.wast4
-rw-r--r--test/lit/gc-read-write-effects.wast4
-rw-r--r--test/lit/heap-types.wast20
-rw-r--r--test/lit/isorecursive-good.wast8
-rw-r--r--test/lit/isorecursive-output-ordering.wast30
-rw-r--r--test/lit/isorecursive-singleton-group.wast2
-rw-r--r--test/lit/isorecursive-whole-group.wast4
-rw-r--r--test/lit/lub-bug-3843.wast6
-rw-r--r--test/lit/memory64-limits.wast33
-rw-r--r--test/lit/memory64-ops.wast4
-rw-r--r--test/lit/nominal-chain.wast2
-rw-r--r--test/lit/nominal-func.wast2
-rw-r--r--test/lit/nominal-good.wast10
-rw-r--r--test/lit/nominal-named-field.wast2
-rw-r--r--test/lit/nominal-to-isorecursive.wast6
-rw-r--r--test/lit/non-nullable-locals.wast18
-rw-r--r--test/lit/parse-double-unreachable.wast2
-rw-r--r--test/lit/parse-nominal-types-extends.wast10
-rw-r--r--test/lit/parse-nominal-types.wast10
-rw-r--r--test/lit/passes/Oz.wast27
-rw-r--r--test/lit/passes/catch-pop-fixup-eh.wast22
-rw-r--r--test/lit/passes/cfp.wast180
-rw-r--r--test/lit/passes/coalesce-locals-eh.wast4
-rw-r--r--test/lit/passes/coalesce-locals-gc-nn.wast4
-rw-r--r--test/lit/passes/coalesce-locals-gc.wast16
-rw-r--r--test/lit/passes/code-folding-eh.wast8
-rw-r--r--test/lit/passes/code-pushing-eh.wast20
-rw-r--r--test/lit/passes/code-pushing-gc.wast4
-rw-r--r--test/lit/passes/dae-gc-refine-params.wast71
-rw-r--r--test/lit/passes/dae-gc-refine-return.wast75
-rw-r--r--test/lit/passes/dae-gc.wast24
-rw-r--r--test/lit/passes/dae_all-features.wast104
-rw-r--r--test/lit/passes/dae_tnh.wast20
-rw-r--r--test/lit/passes/dce-eh.wast12
-rw-r--r--test/lit/passes/dce_all-features.wast74
-rw-r--r--test/lit/passes/directize_all-features.wast208
-rw-r--r--test/lit/passes/flatten-eh.wast10
-rw-r--r--test/lit/passes/flatten.wast2
-rw-r--r--test/lit/passes/flatten_all-features.wast94
-rw-r--r--test/lit/passes/generate-dyncalls_all-features.wast16
-rw-r--r--test/lit/passes/global-effects.wast66
-rw-r--r--test/lit/passes/global-refining.wast10
-rw-r--r--test/lit/passes/gsi.wast91
-rw-r--r--test/lit/passes/gsi_vacuum_precompute.wast12
-rw-r--r--test/lit/passes/gto-mutability.wast58
-rw-r--r--test/lit/passes/gto-removals.wast76
-rw-r--r--test/lit/passes/gto_and_cfp_in_O.wast2
-rw-r--r--test/lit/passes/gufa-extern.wast2
-rw-r--r--test/lit/passes/gufa-optimizing.wast8
-rw-r--r--test/lit/passes/gufa-refs.wast252
-rw-r--r--test/lit/passes/gufa-ssa.wast2
-rw-r--r--test/lit/passes/gufa-tags.wast4
-rw-r--r--test/lit/passes/gufa-vs-cfp.wast228
-rw-r--r--test/lit/passes/gufa.wast80
-rw-r--r--test/lit/passes/heap2local.wast94
-rw-r--r--test/lit/passes/inlining-eh.wast10
-rw-r--r--test/lit/passes/inlining-gc.wast4
-rw-r--r--test/lit/passes/inlining-optimizing.wast4
-rw-r--r--test/lit/passes/inlining_all-features.wast28
-rw-r--r--test/lit/passes/inlining_splitting.wast138
-rw-r--r--test/lit/passes/inlining_vacuum_optimize-instructions.wast10
-rw-r--r--test/lit/passes/instrument-locals-eh.wast2
-rw-r--r--test/lit/passes/instrument-memory-gc.wast22
-rw-r--r--test/lit/passes/intrinsic-lowering.wast6
-rw-r--r--test/lit/passes/jspi-args.wast8
-rw-r--r--test/lit/passes/jspi.wast20
-rw-r--r--test/lit/passes/legalize-js-interface_all-features.wast16
-rw-r--r--test/lit/passes/local-cse_all-features.wast16
-rw-r--r--test/lit/passes/local-subtyping-nn.wast4
-rw-r--r--test/lit/passes/local-subtyping.wast30
-rw-r--r--test/lit/passes/memory-packing-gc.wast12
-rw-r--r--test/lit/passes/memory-packing_all-features.wast82
-rw-r--r--test/lit/passes/merge-blocks.wast26
-rw-r--r--test/lit/passes/merge-similar-functions.wast60
-rw-r--r--test/lit/passes/merge-similar-functions_all-features.wast8
-rw-r--r--test/lit/passes/merge-similar-functions_types.wast32
-rw-r--r--test/lit/passes/monomorphize.wast68
-rw-r--r--test/lit/passes/name-types.wast12
-rw-r--r--test/lit/passes/once-reduction.wast132
-rw-r--r--test/lit/passes/opt_flatten.wast2
-rw-r--r--test/lit/passes/optimize-added-constants-memory64.wast8
-rw-r--r--test/lit/passes/optimize-casts.wast2
-rw-r--r--test/lit/passes/optimize-for-js.wast6
-rw-r--r--test/lit/passes/optimize-instructions-call_ref-roundtrip.wast8
-rw-r--r--test/lit/passes/optimize-instructions-call_ref.wast28
-rw-r--r--test/lit/passes/optimize-instructions-eh.wast12
-rw-r--r--test/lit/passes/optimize-instructions-gc-extern.wast2
-rw-r--r--test/lit/passes/optimize-instructions-gc-heap.wast44
-rw-r--r--test/lit/passes/optimize-instructions-gc-iit.wast58
-rw-r--r--test/lit/passes/optimize-instructions-gc-tnh-nn.wast2
-rw-r--r--test/lit/passes/optimize-instructions-gc-tnh.wast4
-rw-r--r--test/lit/passes/optimize-instructions-gc.wast147
-rw-r--r--test/lit/passes/optimize-instructions-ignore-traps.wast16
-rw-r--r--test/lit/passes/optimize-instructions-iit-eh.wast2
-rw-r--r--test/lit/passes/poppify-globals.wast4
-rw-r--r--test/lit/passes/poppify.wast52
-rw-r--r--test/lit/passes/precompute-gc-immutable.wast38
-rw-r--r--test/lit/passes/precompute-gc.wast62
-rw-r--r--test/lit/passes/remove-unused-brs-gc.wast16
-rw-r--r--test/lit/passes/remove-unused-brs.wast34
-rw-r--r--test/lit/passes/remove-unused-module-elements-refs.wast26
-rw-r--r--test/lit/passes/remove-unused-names-eh.wast4
-rw-r--r--test/lit/passes/roundtrip-gc-types.wast31
-rw-r--r--test/lit/passes/roundtrip-gc.wast4
-rw-r--r--test/lit/passes/roundtrip.wast2
-rw-r--r--test/lit/passes/rse-eh.wast34
-rw-r--r--test/lit/passes/rse-gc.wast17
-rw-r--r--test/lit/passes/signature-pruning.wast70
-rw-r--r--test/lit/passes/signature-refining-isorecursive.wast16
-rw-r--r--test/lit/passes/signature-refining.wast100
-rw-r--r--test/lit/passes/signature-refining_gto.wat6
-rw-r--r--test/lit/passes/simplify-locals-eh.wast12
-rw-r--r--test/lit/passes/simplify-locals-gc-nn.wast4
-rw-r--r--test/lit/passes/simplify-locals-gc-validation.wast2
-rw-r--r--test/lit/passes/simplify-locals-gc.wast46
-rw-r--r--test/lit/passes/simplify-locals-strings.wast12
-rw-r--r--test/lit/passes/ssa-gc-nn-locals.wast2
-rw-r--r--test/lit/passes/ssa.wast4
-rw-r--r--test/lit/passes/stack-ir-eh.wast2
-rw-r--r--test/lit/passes/stack-ir-roundtrip-eh.wast2
-rw-r--r--test/lit/passes/type-refining-isorecursive.wast14
-rw-r--r--test/lit/passes/type-refining.wast110
-rw-r--r--test/lit/passes/vacuum-eh.wast12
-rw-r--r--test/lit/passes/vacuum-func.wast6
-rw-r--r--test/lit/passes/vacuum-gc.wast6
-rw-r--r--test/lit/passes/vacuum-intrinsics.wast24
-rw-r--r--test/lit/passes/vacuum-tnh.wast28
-rw-r--r--test/lit/recursive-type-sort.wast2
-rw-r--r--test/lit/recursive-types.wast23
-rw-r--r--test/lit/ref-cast-nop.wast2
-rw-r--r--test/lit/relaxed-simd.wast120
-rw-r--r--test/lit/strings.wast26
-rw-r--r--test/lit/structref.wast2
-rw-r--r--test/lit/table-first-special.wast6
-rw-r--r--test/lit/table-operations.wast30
-rw-r--r--test/lit/tail-call.wast32
-rw-r--r--test/lit/types-function-references.wast102
-rw-r--r--test/lit/validation/eqref.wast2
-rw-r--r--test/lit/validation/nn-tuples.wast2
-rw-r--r--test/lit/wasm-split/instrument-in-memory.wast6
-rw-r--r--test/lit/wasm-split/instrument-in-secondary-memory.wast6
-rw-r--r--test/lit/wat-kitchen-sink.wast92
-rw-r--r--test/memory-import.wast.from-wast2
-rw-r--r--test/memory-import.wast.fromBinary2
-rw-r--r--test/memory-import.wast.fromBinary.noDebugInfo2
-rw-r--r--test/memory-import64.wast.from-wast2
-rw-r--r--test/memory-import64.wast.fromBinary2
-rw-r--r--test/memory-import64.wast.fromBinary.noDebugInfo2
-rw-r--r--test/metadce/corners.wast.dced2
-rw-r--r--test/metadce/outside.wast.dced4
-rw-r--r--test/metadce/rooted-export.wast.dced2
-rw-r--r--test/metadce/spanning_cycle.wast.dced2
-rw-r--r--test/metadce/tag.wast.dced2
-rw-r--r--test/metadce/threaded.wast.dced8
-rw-r--r--test/metadce/threaded_cycle.wast.dced8
-rw-r--r--test/min.wast.from-wast8
-rw-r--r--test/min.wast.fromBinary8
-rw-r--r--test/min.wast.fromBinary.noDebugInfo8
-rw-r--r--test/multi-memories-atomics64.wast.from-wast10
-rw-r--r--test/multi-memories-atomics64.wast.fromBinary10
-rw-r--r--test/multi-memories-atomics64.wast.fromBinary.noDebugInfo10
-rw-r--r--test/multi-memories-basics.wast.from-wast14
-rw-r--r--test/multi-memories-basics.wast.fromBinary14
-rw-r--r--test/multi-memories-basics.wast.fromBinary.noDebugInfo14
-rw-r--r--test/multi-memories-simd.wast.from-wast112
-rw-r--r--test/multi-memories-simd.wast.fromBinary112
-rw-r--r--test/multi-memories-simd.wast.fromBinary.noDebugInfo112
-rw-r--r--test/multi-table.wast.from-wast6
-rw-r--r--test/multi-table.wast.fromBinary6
-rw-r--r--test/multi-table.wast.fromBinary.noDebugInfo6
-rw-r--r--test/multivalue.wast.from-wast34
-rw-r--r--test/multivalue.wast.fromBinary34
-rw-r--r--test/multivalue.wast.fromBinary.noDebugInfo34
-rw-r--r--test/mutable-global.wast.from-wast2
-rw-r--r--test/mutable-global.wast.fromBinary2
-rw-r--r--test/mutable-global.wast.fromBinary.noDebugInfo2
-rw-r--r--test/newsyntax.wast.from-wast2
-rw-r--r--test/newsyntax.wast.fromBinary2
-rw-r--r--test/newsyntax.wast.fromBinary.noDebugInfo2
-rw-r--r--test/nonspec-bulk-memory.wast.from-wast8
-rw-r--r--test/nonspec-bulk-memory.wast.fromBinary8
-rw-r--r--test/nonspec-bulk-memory.wast.fromBinary.noDebugInfo8
-rw-r--r--test/passes/Oz_fuzz-exec_all-features.txt67
-rw-r--r--test/passes/duplicate-function-elimination_all-features.txt10
-rw-r--r--test/passes/fuzz-exec_all-features.txt30
-rw-r--r--test/passes/merge-locals_all-features.txt42
-rw-r--r--test/passes/metrics_all-features.txt2
-rw-r--r--test/passes/minify-imports-and-exports_all-features.txt4
-rw-r--r--test/passes/minify-imports_all-features.txt4
-rw-r--r--test/passes/multi_line_table_dwarf.bin.txt8
-rw-r--r--test/passes/pick-load-signs_all-features.txt2
-rw-r--r--test/passes/precompute-propagate_all-features.txt38
-rw-r--r--test/passes/precompute_all-features.txt42
-rw-r--r--test/passes/remove-unused-brs_all-features.txt14
-rw-r--r--test/passes/remove-unused-module-elements_all-features.txt56
-rw-r--r--test/passes/remove-unused-names_merge-blocks_all-features.txt98
-rw-r--r--test/passes/remove-unused-nonfunction-module-elements_all-features.txt76
-rw-r--r--test/passes/roundtrip_typenames_features.txt4
-rw-r--r--test/passes/roundtrip_typenames_features.wast3
-rw-r--r--test/passes/rse_all-features.txt40
-rw-r--r--test/passes/simplify-globals_all-features.txt24
-rw-r--r--test/passes/simplify-globals_all-features_fuzz-exec.txt4
-rw-r--r--test/passes/simplify-locals_all-features.txt116
-rw-r--r--test/passes/simplify-locals_all-features_disable-exception-handling.txt112
-rw-r--r--test/passes/strip-target-features_roundtrip_print-features_all-features.txt4
-rw-r--r--test/passes/vacuum_all-features.txt84
-rw-r--r--test/polymorphic_stack.wast.from-wast18
-rw-r--r--test/polymorphic_stack.wast.fromBinary18
-rw-r--r--test/polymorphic_stack.wast.fromBinary.noDebugInfo18
-rw-r--r--test/print/min.minified.txt4
-rw-r--r--test/print/min.txt8
-rw-r--r--test/reduce/imports.wast.txt5
-rw-r--r--test/reduce/memory_table.wast.txt6
-rw-r--r--test/reduce/simple.wast.txt5
-rw-r--r--test/reference-types.wast.from-wast48
-rw-r--r--test/reference-types.wast.fromBinary48
-rw-r--r--test/reference-types.wast.fromBinary.noDebugInfo48
-rw-r--r--test/reg_switch.wast.from-wast2
-rw-r--r--test/reg_switch.wast.fromBinary2
-rw-r--r--test/reg_switch.wast.fromBinary.noDebugInfo2
-rw-r--r--test/signext.wast.from-wast2
-rw-r--r--test/signext.wast.fromBinary2
-rw-r--r--test/signext.wast.fromBinary.noDebugInfo2
-rw-r--r--test/simd.wast.from-wast490
-rw-r--r--test/simd.wast.fromBinary490
-rw-r--r--test/simd.wast.fromBinary.noDebugInfo490
-rw-r--r--test/simd64.wast.from-wast28
-rw-r--r--test/simd64.wast.fromBinary28
-rw-r--r--test/simd64.wast.fromBinary.noDebugInfo28
-rw-r--r--test/spec/array.wast13
-rw-r--r--test/spec/ref_cast.wast15
-rw-r--r--test/spec/struct.wast13
-rw-r--r--test/subtypes.wast15
-rw-r--r--test/subtypes.wast.from-wast24
-rw-r--r--test/subtypes.wast.fromBinary24
-rw-r--r--test/subtypes.wast.fromBinary.noDebugInfo24
-rw-r--r--test/table-import.wast.from-wast2
-rw-r--r--test/table-import.wast.fromBinary2
-rw-r--r--test/table-import.wast.fromBinary.noDebugInfo2
-rw-r--r--test/unreachable-code.wast.from-wast20
-rw-r--r--test/unreachable-code.wast.fromBinary20
-rw-r--r--test/unreachable-code.wast.fromBinary.noDebugInfo20
-rw-r--r--test/unreachable-instr-type.wast.from-wast2
-rw-r--r--test/unreachable-instr-type.wast.fromBinary2
-rw-r--r--test/unreachable-instr-type.wast.fromBinary.noDebugInfo2
-rw-r--r--test/untaken-br_if.wast.from-wast2
-rw-r--r--test/untaken-br_if.wast.fromBinary2
-rw-r--r--test/untaken-br_if.wast.fromBinary.noDebugInfo2
322 files changed, 4600 insertions, 4620 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b55e9ccf8..0072b18d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,9 @@ full changeset diff at the end of each section.
Current Trunk
-------------
+- The isorecursive WasmGC type system (i.e. --hybrid) is now the default to
+ match the spec.
+
v111
----
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index d4b86f93d..a92b0a16a 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -2832,9 +2832,7 @@ struct PrintSExpression : public UnifiedExpressionVisitor<PrintSExpression> {
void handleSignature(HeapType curr, Name name = Name()) {
Signature sig = curr.getSignature();
- bool hasSupertype =
- !name.is() && (getTypeSystem() == TypeSystem::Nominal ||
- getTypeSystem() == TypeSystem::Isorecursive);
+ bool hasSupertype = !name.is() && !!curr.getSuperType();
if (hasSupertype) {
o << "(func_subtype";
} else {
@@ -2891,8 +2889,7 @@ struct PrintSExpression : public UnifiedExpressionVisitor<PrintSExpression> {
}
}
void handleArray(HeapType curr) {
- bool hasSupertype = getTypeSystem() == TypeSystem::Nominal ||
- getTypeSystem() == TypeSystem::Isorecursive;
+ bool hasSupertype = !!curr.getSuperType();
if (hasSupertype) {
o << "(array_subtype ";
} else {
@@ -2906,8 +2903,7 @@ struct PrintSExpression : public UnifiedExpressionVisitor<PrintSExpression> {
o << ')';
}
void handleStruct(HeapType curr) {
- bool hasSupertype = getTypeSystem() == TypeSystem::Nominal ||
- getTypeSystem() == TypeSystem::Isorecursive;
+ bool hasSupertype = !!curr.getSuperType();
const auto& fields = curr.getStruct().fields;
if (hasSupertype) {
o << "(struct_subtype ";
@@ -3038,8 +3034,9 @@ struct PrintSExpression : public UnifiedExpressionVisitor<PrintSExpression> {
o << '(';
printMajor(o, "func ");
printName(curr->name, o);
- if (getTypeSystem() == TypeSystem::Nominal ||
- getTypeSystem() == TypeSystem::Isorecursive) {
+ if (currModule && currModule->features.hasGC() &&
+ (getTypeSystem() == TypeSystem::Nominal ||
+ getTypeSystem() == TypeSystem::Isorecursive)) {
o << " (type ";
printHeapType(o, curr->type, currModule) << ')';
}
diff --git a/src/wasm/wasm-type.cpp b/src/wasm/wasm-type.cpp
index 9ac23bd96..da40bb10e 100644
--- a/src/wasm/wasm-type.cpp
+++ b/src/wasm/wasm-type.cpp
@@ -44,7 +44,7 @@
namespace wasm {
-static TypeSystem typeSystem = TypeSystem::Equirecursive;
+static TypeSystem typeSystem = TypeSystem::Isorecursive;
void setTypeSystem(TypeSystem system) { typeSystem = system; }
diff --git a/test/atomics-unshared.wast.from-wast b/test/atomics-unshared.wast.from-wast
index a29819c9b..3ab6a361a 100644
--- a/test/atomics-unshared.wast.from-wast
+++ b/test/atomics-unshared.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 1 1)
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(i32.atomic.rmw.cmpxchg
(i32.const 0)
diff --git a/test/atomics-unshared.wast.fromBinary b/test/atomics-unshared.wast.fromBinary
index df4096757..1e275eb6e 100644
--- a/test/atomics-unshared.wast.fromBinary
+++ b/test/atomics-unshared.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 1 1)
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(i32.atomic.rmw.cmpxchg
(i32.const 0)
diff --git a/test/atomics-unshared.wast.fromBinary.noDebugInfo b/test/atomics-unshared.wast.fromBinary.noDebugInfo
index d9bb19b8e..458f99d2b 100644
--- a/test/atomics-unshared.wast.fromBinary.noDebugInfo
+++ b/test/atomics-unshared.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 1 1)
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(i32.atomic.rmw.cmpxchg
(i32.const 0)
diff --git a/test/atomics.wast.from-wast b/test/atomics.wast.from-wast
index f5f891af5..7c9d18076 100644
--- a/test/atomics.wast.from-wast
+++ b/test/atomics.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 (shared 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -68,7 +68,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -102,7 +102,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -134,7 +134,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -178,7 +178,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/atomics.wast.fromBinary b/test/atomics.wast.fromBinary
index e3f773b83..751684f72 100644
--- a/test/atomics.wast.fromBinary
+++ b/test/atomics.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 (shared 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -68,7 +68,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -102,7 +102,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -134,7 +134,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i32)
(local $1 i64)
(drop
@@ -178,7 +178,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/atomics.wast.fromBinary.noDebugInfo b/test/atomics.wast.fromBinary.noDebugInfo
index e562f6a42..e802c2d8c 100644
--- a/test/atomics.wast.fromBinary.noDebugInfo
+++ b/test/atomics.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 (shared 23 256))
- (func $0
+ (func $0 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -68,7 +68,7 @@
(local.get $1)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -102,7 +102,7 @@
)
)
)
- (func $2
+ (func $2 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -134,7 +134,7 @@
)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -178,7 +178,7 @@
)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(atomic.fence)
)
)
diff --git a/test/atomics64.wast.from-wast b/test/atomics64.wast.from-wast
index 669920d50..d2e030309 100644
--- a/test/atomics64.wast.from-wast
+++ b/test/atomics64.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 (shared i64 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -69,7 +69,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -104,7 +104,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -137,7 +137,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -182,7 +182,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/atomics64.wast.fromBinary b/test/atomics64.wast.fromBinary
index 60ab444ce..f1be9008d 100644
--- a/test/atomics64.wast.fromBinary
+++ b/test/atomics64.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 (shared i64 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -69,7 +69,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -104,7 +104,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -137,7 +137,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -182,7 +182,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/atomics64.wast.fromBinary.noDebugInfo b/test/atomics64.wast.fromBinary.noDebugInfo
index c3f508833..40b1cd25b 100644
--- a/test/atomics64.wast.fromBinary.noDebugInfo
+++ b/test/atomics64.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 (shared i64 23 256))
- (func $0
+ (func $0 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -69,7 +69,7 @@
(local.get $1)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -104,7 +104,7 @@
)
)
)
- (func $2
+ (func $2 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -137,7 +137,7 @@
)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -182,7 +182,7 @@
)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(atomic.fence)
)
)
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index 9200bac2a..c59c2dac1 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -150,7 +150,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(export "a-global-exp" (global $a-global))
(export "a-tag-exp" (tag $a-tag))
(start $starter)
- (func "$kitchen()sinker" (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
+ (func "$kitchen()sinker" (type $i32_i64_f32_f64_=>_i32) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
(local $4 i32)
(block $the-body (result i32)
(block $the-nothing
@@ -2228,7 +2228,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(i32.const 42)
)
)
- (func $starter
+ (func $starter (type $none_=>_none)
(nop)
)
)
@@ -2254,7 +2254,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(export "a-global-exp" (global $a-global))
(export "a-tag-exp" (tag $a-tag))
(start $starter)
- (func "$kitchen()sinker" (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
+ (func "$kitchen()sinker" (type $i32_i64_f32_f64_=>_i32) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
(local $4 i32)
(block $the-body (result i32)
(block $the-nothing
@@ -4332,7 +4332,7 @@ getExpressionInfo(tuple[3])={"id":14,"type":5,"value":3.7}
(i32.const 42)
)
)
- (func $starter
+ (func $starter (type $none_=>_none)
(nop)
)
)
@@ -4813,7 +4813,7 @@ module loaded from binary form:
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(global $a-global i32 (i32.const 3))
(tag $a-tag (param i32 i32))
- (func $adder (param $0 i32) (param $1 i32) (result i32)
+ (func $adder (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
(i32.add
(local.get $0)
(local.get $1)
@@ -4855,7 +4855,7 @@ test_parsing text:
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(global $a-global i32 (i32.const 3))
(tag $a-tag (param i32))
- (func $adder (param $0 i32) (param $1 i32) (result i32)
+ (func $adder (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
(i32.add
(local.get $0)
(local.get $1)
@@ -4869,7 +4869,7 @@ module loaded from text form:
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(global $a-global i32 (i32.const 3))
(tag $a-tag (param i32))
- (func $ADD_ER (param $0 i32) (param $1 i32) (result i32)
+ (func $ADD_ER (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
(i32.add
(local.get $0)
(local.get $1)
diff --git a/test/complexTextNames.wast.from-wast b/test/complexTextNames.wast.from-wast
index 76d91ba45..319978b18 100644
--- a/test/complexTextNames.wast.from-wast
+++ b/test/complexTextNames.wast.from-wast
@@ -1,10 +1,10 @@
(module
(type $none_=>_none (func))
(export "$zoo (.bar)" (func $1))
- (func $foo\20\28.bar\29
+ (func $foo\20\28.bar\29 (type $none_=>_none)
(nop)
)
- (func $1
+ (func $1 (type $none_=>_none)
(call $foo\20\28.bar\29)
)
)
diff --git a/test/complexTextNames.wast.fromBinary b/test/complexTextNames.wast.fromBinary
index 69ded01be..05db375bc 100644
--- a/test/complexTextNames.wast.fromBinary
+++ b/test/complexTextNames.wast.fromBinary
@@ -1,10 +1,10 @@
(module
(type $none_=>_none (func))
(export "$zoo (.bar)" (func $1))
- (func $foo\20\28.bar\29
+ (func $foo\20\28.bar\29 (type $none_=>_none)
(nop)
)
- (func $1
+ (func $1 (type $none_=>_none)
(call $foo\20\28.bar\29)
)
)
diff --git a/test/complexTextNames.wast.fromBinary.noDebugInfo b/test/complexTextNames.wast.fromBinary.noDebugInfo
index 5c31ca04c..91687028f 100644
--- a/test/complexTextNames.wast.fromBinary.noDebugInfo
+++ b/test/complexTextNames.wast.fromBinary.noDebugInfo
@@ -1,10 +1,10 @@
(module
(type $none_=>_none (func))
(export "$zoo (.bar)" (func $1))
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
)
- (func $1
+ (func $1 (type $none_=>_none)
(call $0)
)
)
diff --git a/test/ctor-eval/bad-indirect-call.wast.out b/test/ctor-eval/bad-indirect-call.wast.out
index 8ab14a36d..2781ba559 100644
--- a/test/ctor-eval/bad-indirect-call.wast.out
+++ b/test/ctor-eval/bad-indirect-call.wast.out
@@ -5,7 +5,7 @@
(table $0 1 1 funcref)
(elem (i32.const 0) $call-indirect)
(export "test1" (func $test1))
- (func $test1
+ (func $test1 (type $v)
(call_indirect $0 (type $v)
(i32.const 1)
)
@@ -14,7 +14,7 @@
(i32.const 120)
)
)
- (func $call-indirect
+ (func $call-indirect (type $v)
(i32.store8
(i32.const 40)
(i32.const 67)
diff --git a/test/ctor-eval/bad-indirect-call2.wast.out b/test/ctor-eval/bad-indirect-call2.wast.out
index 3ae51dfa8..6d7a630d8 100644
--- a/test/ctor-eval/bad-indirect-call2.wast.out
+++ b/test/ctor-eval/bad-indirect-call2.wast.out
@@ -6,7 +6,7 @@
(table $0 2 2 funcref)
(elem (i32.const 0) $_abort $call-indirect)
(export "test1" (func $test1))
- (func $test1
+ (func $test1 (type $v)
(call_indirect $0 (type $v)
(i32.const 0)
)
@@ -15,7 +15,7 @@
(i32.const 120)
)
)
- (func $call-indirect
+ (func $call-indirect (type $v)
(i32.store8
(i32.const 40)
(i32.const 67)
diff --git a/test/ctor-eval/bad-indirect-call3.wast.out b/test/ctor-eval/bad-indirect-call3.wast.out
index 2f3cd9709..af0b1b962 100644
--- a/test/ctor-eval/bad-indirect-call3.wast.out
+++ b/test/ctor-eval/bad-indirect-call3.wast.out
@@ -7,13 +7,13 @@
(table $0 1 1 funcref)
(elem (i32.const 0) $callee)
(export "sig_mismatch" (func $sig_mismatch))
- (func $callee (param $0 externref)
+ (func $callee (type $externref_=>_none) (param $0 externref)
(i32.store8
(i32.const 40)
(i32.const 67)
)
)
- (func $sig_mismatch
+ (func $sig_mismatch (type $none_=>_none)
(call_indirect $0 (type $funcref_=>_none)
(ref.null nofunc)
(i32.const 0)
diff --git a/test/ctor-eval/basics-flatten.wast.out b/test/ctor-eval/basics-flatten.wast.out
index f13d5f7a0..512cf1987 100644
--- a/test/ctor-eval/basics-flatten.wast.out
+++ b/test/ctor-eval/basics-flatten.wast.out
@@ -2,7 +2,7 @@
(type $v (func))
(memory $0 256 256)
(data (i32.const 10) "nas\00\00\00aka\00yzkx waka wakm\00\00\00\00\00\00C")
- (func $call-indirect
+ (func $call-indirect (type $v)
(i32.store8
(i32.const 40)
(i32.const 67)
diff --git a/test/ctor-eval/basics.wast.out b/test/ctor-eval/basics.wast.out
index 8d82afc80..34fb4a7c7 100644
--- a/test/ctor-eval/basics.wast.out
+++ b/test/ctor-eval/basics.wast.out
@@ -2,7 +2,7 @@
(type $v (func))
(memory $0 256 256)
(data (i32.const 10) "nas\00\00\00aka yzkx waka wakm\00\00\00\00\00\00C")
- (func $call-indirect
+ (func $call-indirect (type $v)
(i32.store8
(i32.const 40)
(i32.const 67)
diff --git a/test/ctor-eval/gc-2.wast.out b/test/ctor-eval/gc-2.wast.out
index ce30a27e7..c6d8931b8 100644
--- a/test/ctor-eval/gc-2.wast.out
+++ b/test/ctor-eval/gc-2.wast.out
@@ -11,7 +11,7 @@
(global $global2 (mut (ref null $struct)) (global.get $ctor-eval$global_0))
(global $global3 (ref $struct) (global.get $ctor-eval$global_0))
(export "keepalive" (func $1))
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(select
(struct.get $struct 0
(ref.cast_static $struct
diff --git a/test/ctor-eval/gc-array.wast.out b/test/ctor-eval/gc-array.wast.out
index d78eba852..8da67f758 100644
--- a/test/ctor-eval/gc-array.wast.out
+++ b/test/ctor-eval/gc-array.wast.out
@@ -12,7 +12,7 @@
(i32.const 1337)
))
(export "keepalive" (func $1))
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(i32.add
(array.get $array
(global.get $global1)
diff --git a/test/ctor-eval/gc.wast.out b/test/ctor-eval/gc.wast.out
index 45e5ff5ca..6ca1f50d9 100644
--- a/test/ctor-eval/gc.wast.out
+++ b/test/ctor-eval/gc.wast.out
@@ -16,7 +16,7 @@
))
(export "test1" (func $0_0))
(export "keepalive" (func $1))
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(i32.add
(struct.get $struct 0
(global.get $global1)
@@ -26,7 +26,7 @@
)
)
)
- (func $0_0
+ (func $0_0 (type $none_=>_none)
(local $0 (ref $struct))
(local.set $0
(global.get $ctor-eval$global_0)
diff --git a/test/ctor-eval/global-get-init.wast.out b/test/ctor-eval/global-get-init.wast.out
index ad0110039..c5104e662 100644
--- a/test/ctor-eval/global-get-init.wast.out
+++ b/test/ctor-eval/global-get-init.wast.out
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(export "test1" (func $test1))
- (func $test1
+ (func $test1 (type $none_=>_none)
(nop)
)
)
diff --git a/test/ctor-eval/globals.wast.out b/test/ctor-eval/globals.wast.out
index 1165d9255..c29507c8e 100644
--- a/test/ctor-eval/globals.wast.out
+++ b/test/ctor-eval/globals.wast.out
@@ -3,7 +3,7 @@
(global $g1 (mut i32) (i32.const 50))
(global $g2 (mut i32) (i32.const 40))
(export "keepalive" (func $keepalive))
- (func $keepalive (result i32)
+ (func $keepalive (type $none_=>_i32) (result i32)
(i32.add
(global.get $g1)
(global.get $g2)
diff --git a/test/ctor-eval/ignore-external-input-gc.wast.out b/test/ctor-eval/ignore-external-input-gc.wast.out
index 3e7a8f429..0b45f89d6 100644
--- a/test/ctor-eval/ignore-external-input-gc.wast.out
+++ b/test/ctor-eval/ignore-external-input-gc.wast.out
@@ -5,12 +5,12 @@
(global $global2 (mut i32) (i32.const 20))
(export "test2" (func $1))
(export "keepalive" (func $2))
- (func $1 (param $any (ref any))
+ (func $1 (type $ref|any|_=>_none) (param $any (ref any))
(global.set $global2
(i32.const 22)
)
)
- (func $2 (result i32)
+ (func $2 (type $none_=>_i32) (result i32)
(i32.add
(global.get $global1)
(global.get $global2)
diff --git a/test/ctor-eval/ignore-external-input.wast.out b/test/ctor-eval/ignore-external-input.wast.out
index d61f2e6b9..aec2a6bbb 100644
--- a/test/ctor-eval/ignore-external-input.wast.out
+++ b/test/ctor-eval/ignore-external-input.wast.out
@@ -5,7 +5,7 @@
(memory $0 256 256)
(data (i32.const 28) "aaaa")
(export "test3" (func $3))
- (func $3
+ (func $3 (type $none_=>_none)
(drop
(call $wasi_something_else)
)
diff --git a/test/ctor-eval/imported-global-2.wast.out b/test/ctor-eval/imported-global-2.wast.out
index ff71672a9..8f4fe2d7b 100644
--- a/test/ctor-eval/imported-global-2.wast.out
+++ b/test/ctor-eval/imported-global-2.wast.out
@@ -4,7 +4,7 @@
(memory $0 256 256)
(export "test1" (func $0))
(export "keepalive" (func $1))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(local $temp i32)
(local.set $temp
(global.get $imported)
@@ -15,7 +15,7 @@
)
(local.get $temp)
)
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(drop
(i32.load
(i32.const 13)
diff --git a/test/ctor-eval/imported-global.wast.out b/test/ctor-eval/imported-global.wast.out
index e141211b1..269dbac73 100644
--- a/test/ctor-eval/imported-global.wast.out
+++ b/test/ctor-eval/imported-global.wast.out
@@ -3,7 +3,7 @@
(memory $0 256 256)
(data (i32.const 10) "waka waka waka waka waka")
(export "test1" (func $test1))
- (func $test1
+ (func $test1 (type $none_=>_none)
(i32.store8
(i32.const 13)
(i32.const 115)
diff --git a/test/ctor-eval/indirect-call3.wast.out b/test/ctor-eval/indirect-call3.wast.out
index 1c98857a6..c4653d69e 100644
--- a/test/ctor-eval/indirect-call3.wast.out
+++ b/test/ctor-eval/indirect-call3.wast.out
@@ -3,7 +3,7 @@
(import "env" "_abort" (func $_abort))
(memory $0 256 256)
(data (i32.const 10) "waka waka xaka waka waka\00\00\00\00\00\00C")
- (func $call-indirect
+ (func $call-indirect (type $v)
(i32.store8
(i32.const 40)
(i32.const 67)
diff --git a/test/ctor-eval/just_some.wast.out b/test/ctor-eval/just_some.wast.out
index cb8c06fb9..c45017b92 100644
--- a/test/ctor-eval/just_some.wast.out
+++ b/test/ctor-eval/just_some.wast.out
@@ -4,10 +4,10 @@
(data (i32.const 10) "wasa waka waka waka waka")
(export "test2" (func $test2))
(export "test3" (func $test3))
- (func $test2
+ (func $test2 (type $none_=>_none)
(unreachable)
)
- (func $test3
+ (func $test3 (type $none_=>_none)
(i32.store8
(i32.const 13)
(i32.const 113)
diff --git a/test/ctor-eval/memory-init.wast.out b/test/ctor-eval/memory-init.wast.out
index 6019ea277..f476a275c 100644
--- a/test/ctor-eval/memory-init.wast.out
+++ b/test/ctor-eval/memory-init.wast.out
@@ -4,7 +4,7 @@
(data (i32.const 0) "__________")
(data (i32.const 20) "__________")
(export "test1" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(i32.store8
(i32.const 4)
(i32.const 100)
diff --git a/test/ctor-eval/overlapping-segments.wast.out b/test/ctor-eval/overlapping-segments.wast.out
index 5a5447391..4e74f3786 100644
--- a/test/ctor-eval/overlapping-segments.wast.out
+++ b/test/ctor-eval/overlapping-segments.wast.out
@@ -5,13 +5,13 @@
(elem $0 (i32.const 9) $1)
(elem $1 (i32.const 9) $0)
(export "test1" (func $2))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(unreachable)
)
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(i32.const 65)
)
- (func $2
+ (func $2 (type $none_=>_none)
(drop
(call_indirect $0 (type $none_=>_i32)
(i32.const 9)
diff --git a/test/ctor-eval/params.wast.out b/test/ctor-eval/params.wast.out
index 6e52bea89..e327570ac 100644
--- a/test/ctor-eval/params.wast.out
+++ b/test/ctor-eval/params.wast.out
@@ -1,7 +1,7 @@
(module
(type $i32_=>_none (func (param i32)))
(export "test1" (func $0))
- (func $0 (param $x i32)
+ (func $0 (type $i32_=>_none) (param $x i32)
(nop)
)
)
diff --git a/test/ctor-eval/partial-locals-tee.wast.out b/test/ctor-eval/partial-locals-tee.wast.out
index cb2653198..edf7d684d 100644
--- a/test/ctor-eval/partial-locals-tee.wast.out
+++ b/test/ctor-eval/partial-locals-tee.wast.out
@@ -5,7 +5,7 @@
(memory $0 256 256)
(data (i32.const 10) "__s______________")
(export "test1" (func $test1_0))
- (func $test1_0
+ (func $test1_0 (type $none_=>_none)
(call $import
(i32.const 1)
(i32.const 50)
diff --git a/test/ctor-eval/partial-locals.wast.out b/test/ctor-eval/partial-locals.wast.out
index 14f102b69..0cfb70777 100644
--- a/test/ctor-eval/partial-locals.wast.out
+++ b/test/ctor-eval/partial-locals.wast.out
@@ -5,7 +5,7 @@
(memory $0 256 256)
(data (i32.const 10) "__s______________")
(export "test1" (func $test1_0))
- (func $test1_0
+ (func $test1_0 (type $none_=>_none)
(local $0 i32)
(local.set $0
(i32.const 100)
diff --git a/test/ctor-eval/partial.wast.out b/test/ctor-eval/partial.wast.out
index 4596a16a3..a7a75b5ea 100644
--- a/test/ctor-eval/partial.wast.out
+++ b/test/ctor-eval/partial.wast.out
@@ -5,7 +5,7 @@
(data (i32.const 10) "__s______________")
(export "test1" (func $test1_0))
(export "keepalive" (func $test1))
- (func $test1
+ (func $test1 (type $none_=>_none)
(i32.store8
(i32.const 12)
(i32.const 115)
@@ -16,7 +16,7 @@
(i32.const 114)
)
)
- (func $test1_0
+ (func $test1_0 (type $none_=>_none)
(call $import)
(i32.store8
(i32.const 13)
diff --git a/test/ctor-eval/results.wast.out b/test/ctor-eval/results.wast.out
index ae5172324..0194cabb6 100644
--- a/test/ctor-eval/results.wast.out
+++ b/test/ctor-eval/results.wast.out
@@ -11,36 +11,36 @@
(export "test3" (func $test3_0))
(export "test5" (func $test5_0))
(export "keepalive" (func $5))
- (func $test1
+ (func $test1 (type $none_=>_none)
(global.set $global1
(i32.const 11)
)
)
- (func $test2
+ (func $test2 (type $none_=>_none)
(global.set $global2
(i32.const 12)
)
)
- (func $test3 (result i32)
+ (func $test3 (type $none_=>_i32) (result i32)
(global.set $global3
(i32.const 13)
)
(i32.const 42)
)
- (func $test4 (result i32)
+ (func $test4 (type $none_=>_i32) (result i32)
(global.set $global4
(i32.const 14)
)
(i32.const 55)
)
- (func $test5 (result i32)
+ (func $test5 (type $none_=>_i32) (result i32)
(global.set $global5
(i32.const 15)
)
(call $import)
(i32.const 100)
)
- (func $5 (result i32)
+ (func $5 (type $none_=>_i32) (result i32)
(call $test1)
(call $test2)
(drop
@@ -66,13 +66,13 @@
)
)
)
- (func $test1_0
+ (func $test1_0 (type $none_=>_none)
(nop)
)
- (func $test3_0 (result i32)
+ (func $test3_0 (type $none_=>_i32) (result i32)
(i32.const 42)
)
- (func $test5_0 (result i32)
+ (func $test5_0 (type $none_=>_i32) (result i32)
(call $import)
(i32.const 100)
)
diff --git a/test/ctor-eval/unsafe_call.wast.out b/test/ctor-eval/unsafe_call.wast.out
index 402bc8771..5fbff1266 100644
--- a/test/ctor-eval/unsafe_call.wast.out
+++ b/test/ctor-eval/unsafe_call.wast.out
@@ -3,7 +3,7 @@
(memory $0 256 256)
(data (i32.const 10) "waka waka waka waka waka")
(export "test1" (func $test1))
- (func $test1
+ (func $test1 (type $none_=>_none)
(call $unsafe-to-call)
(i32.store
(i32.const 12)
@@ -18,7 +18,7 @@
(i32.const 120)
)
)
- (func $unsafe-to-call
+ (func $unsafe-to-call (type $none_=>_none)
(unreachable)
)
)
diff --git a/test/duplicate_types.wast.from-wast b/test/duplicate_types.wast.from-wast
index ce6637bf6..b5df2aaa8 100644
--- a/test/duplicate_types.wast.from-wast
+++ b/test/duplicate_types.wast.from-wast
@@ -1,10 +1,10 @@
(module
(type $0 (func (param i32)))
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $f0 (param $0 i32)
+ (func $f0 (type $0) (param $0 i32)
(nop)
)
- (func $f1 (param $0 i32) (result i32)
+ (func $f1 (type $i32_=>_i32) (param $0 i32) (result i32)
(i32.const 0)
)
)
diff --git a/test/duplicate_types.wast.fromBinary b/test/duplicate_types.wast.fromBinary
index 2c444d3c2..060180086 100644
--- a/test/duplicate_types.wast.fromBinary
+++ b/test/duplicate_types.wast.fromBinary
@@ -1,10 +1,10 @@
(module
(type $0 (func (param i32)))
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $f0 (param $0 i32)
+ (func $f0 (type $0) (param $0 i32)
(nop)
)
- (func $f1 (param $0 i32) (result i32)
+ (func $f1 (type $i32_=>_i32) (param $0 i32) (result i32)
(i32.const 0)
)
)
diff --git a/test/duplicate_types.wast.fromBinary.noDebugInfo b/test/duplicate_types.wast.fromBinary.noDebugInfo
index 93dc2fe22..6e2be8e41 100644
--- a/test/duplicate_types.wast.fromBinary.noDebugInfo
+++ b/test/duplicate_types.wast.fromBinary.noDebugInfo
@@ -1,10 +1,10 @@
(module
(type $i32_=>_none (func (param i32)))
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $0 (param $0 i32)
+ (func $0 (type $i32_=>_none) (param $0 i32)
(nop)
)
- (func $1 (param $0 i32) (result i32)
+ (func $1 (type $i32_=>_i32) (param $0 i32) (result i32)
(i32.const 0)
)
)
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index d59c9e0c7..8dd9260d5 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -2089,7 +2089,7 @@ void test_func_opt() {
void test_typesystem() {
BinaryenTypeSystem defaultTypeSystem = BinaryenGetTypeSystem();
- assert(defaultTypeSystem == BinaryenTypeSystemEquirecursive());
+ assert(defaultTypeSystem == BinaryenTypeSystemIsorecursive());
printf("BinaryenTypeSystemEquirecursive: %d\n",
BinaryenTypeSystemEquirecursive());
BinaryenSetTypeSystem(BinaryenTypeSystemNominal());
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 408c06444..857988419 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -99,7 +99,7 @@ BinaryenFeatureAll: 126975
(export "mem" (memory $0))
(export "kitchen_sinker" (func "$kitchen()sinker"))
(start $starter)
- (func "$kitchen()sinker" (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
+ (func "$kitchen()sinker" (type $i32_i64_f32_f64_=>_i32) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32)
(local $4 i32)
(local $5 externref)
(block $the-body (result i32)
@@ -2454,7 +2454,7 @@ BinaryenFeatureAll: 126975
(i32.const 42)
)
)
- (func $starter
+ (func $starter (type $none_=>_none)
(nop)
)
)
@@ -3037,10 +3037,10 @@ TypeBuilderErrorReasonForwardSupertypeReference: 2
TypeBuilderErrorReasonForwardChildReference: 3
module with recursive GC types:
(module
- (type $SomeArray (array_subtype (mut (ref null $SomeArray)) data))
- (type $SomeStruct (struct_subtype (field $SomeField (mut (ref null $SomeStruct))) data))
- (type $SomeSignature (func_subtype (param (ref null $SomeSignature) (ref null $SomeArray)) (result (ref null $SomeSignature)) func))
- (type $none_=>_none (func_subtype func))
+ (type $SomeArray (array (mut (ref null $SomeArray))))
+ (type $SomeStruct (struct (field $SomeField (mut (ref null $SomeStruct)))))
+ (type $SomeSignature (func (param (ref null $SomeSignature) (ref null $SomeArray)) (result (ref null $SomeSignature))))
+ (type $none_=>_none (func))
(type $SomeSubStruct (struct_subtype (field $SomeField (mut (ref null $SomeStruct))) (field $SomePackedField i8) $SomeStruct))
(func $test (type $none_=>_none)
(local $0 (ref null $SomeArray))
diff --git a/test/example/module-splitting.txt b/test/example/module-splitting.txt
index 6ebcb96c7..79221d664 100644
--- a/test/example/module-splitting.txt
+++ b/test/example/module-splitting.txt
@@ -110,7 +110,7 @@ Secondary:
Before:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -118,7 +118,7 @@ Keeping: foo
After:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -131,7 +131,7 @@ Before:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -140,7 +140,7 @@ After:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -154,7 +154,7 @@ Before:
(type $i32_=>_i32 (func (param i32) (result i32)))
(table $table 1 funcref)
(elem (i32.const 0) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -165,7 +165,7 @@ After:
(table $table 1 funcref)
(elem (i32.const 0) $foo)
(export "%table" (table $table))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -180,7 +180,7 @@ Before:
(type $i32_=>_i32 (func (param i32) (result i32)))
(table $table 2 funcref)
(elem (i32.const 0) $foo $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -191,7 +191,7 @@ After:
(table $table 2 funcref)
(elem (i32.const 0) $foo $foo)
(export "%table" (table $table))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -207,7 +207,7 @@ Before:
(import "env" "base" (global $base i32))
(table $table 1 funcref)
(elem (global.get $base) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -220,7 +220,7 @@ After:
(elem (global.get $base) $foo)
(export "%table" (table $table))
(export "%global" (global $base))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -237,7 +237,7 @@ Before:
(import "env" "base" (global $base i32))
(table $table 2 funcref)
(elem (global.get $base) $foo $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -250,7 +250,7 @@ After:
(elem (global.get $base) $foo $foo)
(export "%table" (table $table))
(export "%global" (global $base))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -332,7 +332,7 @@ Secondary:
Before:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -343,7 +343,7 @@ After:
Secondary:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -353,7 +353,7 @@ Before:
(module
(type $i32_=>_i32 (func (param i32) (result i32)))
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -366,7 +366,7 @@ After:
(elem (i32.const 0) $placeholder_0)
(export "foo" (func $foo))
(export "%table" (table $0))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $0 (type $i32_=>_i32)
(local.get $0)
(i32.const 0)
@@ -378,7 +378,7 @@ Secondary:
(type $i32_=>_i32 (func (param i32) (result i32)))
(import "primary" "%table" (table $0 1 funcref))
(elem (i32.const 0) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -389,7 +389,7 @@ Before:
(type $i32_=>_i32 (func (param i32) (result i32)))
(table $table 1 funcref)
(elem (i32.const 0) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -407,7 +407,7 @@ Secondary:
(type $i32_=>_i32 (func (param i32) (result i32)))
(import "primary" "%table" (table $table 1 funcref))
(elem (i32.const 0) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -418,7 +418,7 @@ Before:
(type $i32_=>_i32 (func (param i32) (result i32)))
(table $table 2 funcref)
(elem (i32.const 0) $foo $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -437,7 +437,7 @@ Secondary:
(type $i32_=>_i32 (func (param i32) (result i32)))
(import "primary" "%table" (table $table 2 funcref))
(elem (i32.const 0) $foo $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -449,7 +449,7 @@ Before:
(table $table 1000 funcref)
(elem (i32.const 42) $foo)
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -462,7 +462,7 @@ After:
(elem (i32.const 42) $placeholder_42)
(export "foo" (func $foo))
(export "%table" (table $table))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $table (type $i32_=>_i32)
(local.get $0)
(i32.const 42)
@@ -474,7 +474,7 @@ Secondary:
(type $i32_=>_i32 (func (param i32) (result i32)))
(import "primary" "%table" (table $table 1000 funcref))
(elem (i32.const 42) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -487,7 +487,7 @@ Before:
(table $table 1000 funcref)
(elem (global.get $base) $foo)
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -502,7 +502,7 @@ After:
(export "foo" (func $foo))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $table (type $i32_=>_i32)
(local.get $0)
(global.get $base)
@@ -515,7 +515,7 @@ Secondary:
(import "primary" "%table" (table $table 1000 funcref))
(import "primary" "%global" (global $base i32))
(elem (global.get $base) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -528,7 +528,7 @@ Before:
(table $table 1000 funcref)
(elem (global.get $base) $foo $foo)
(export "foo" (func $foo))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -544,7 +544,7 @@ After:
(export "foo" (func $foo))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $table (type $i32_=>_i32)
(local.get $0)
(global.get $base)
@@ -557,7 +557,7 @@ Secondary:
(import "primary" "%table" (table $table 1000 funcref))
(import "primary" "%global" (global $base i32))
(elem (global.get $base) $foo $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -571,10 +571,10 @@ Before:
(table $table 1000 funcref)
(elem (global.get $base) $null $foo)
(export "foo" (func $foo))
- (func $null
+ (func $null (type $none_=>_none)
(nop)
)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -591,10 +591,10 @@ After:
(export "%null" (func $null))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $null
+ (func $null (type $none_=>_none)
(nop)
)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $table (type $i32_=>_i32)
(local.get $0)
(i32.add
@@ -612,7 +612,7 @@ Secondary:
(import "primary" "%global" (global $base i32))
(import "primary" "%null" (func $null))
(elem (global.get $base) $null $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(local.get $0)
)
)
@@ -621,10 +621,10 @@ Secondary:
Before:
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -632,10 +632,10 @@ Keeping: bar, foo
After:
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -647,10 +647,10 @@ Secondary:
Before:
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -659,7 +659,7 @@ After:
(module
(type $none_=>_none (func))
(export "%bar" (func $bar))
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -667,7 +667,7 @@ Secondary:
(module
(type $none_=>_none (func))
(import "primary" "%bar" (func $bar))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
)
@@ -676,10 +676,10 @@ Secondary:
Before:
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -691,7 +691,7 @@ After:
(table $0 1 funcref)
(elem (i32.const 0) $placeholder_0)
(export "%table" (table $0))
- (func $foo
+ (func $foo (type $none_=>_none)
(call_indirect $0 (type $none_=>_none)
(i32.const 0)
)
@@ -702,7 +702,7 @@ Secondary:
(type $none_=>_none (func))
(import "primary" "%table" (table $0 1 funcref))
(elem (i32.const 0) $bar)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -711,10 +711,10 @@ Secondary:
Before:
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -725,10 +725,10 @@ After:
Secondary:
(module
(type $none_=>_none (func))
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(call $bar)
)
)
@@ -738,10 +738,10 @@ Before:
(module
(type $none_=>_none (func))
(export "%foo" (func $bar))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(call $foo)
)
)
@@ -755,10 +755,10 @@ After:
(export "%foo" (func $bar))
(export "%foo_0" (func $foo))
(export "%table" (table $0))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(call_indirect $0 (type $none_=>_none)
(i32.const 0)
)
@@ -770,7 +770,7 @@ Secondary:
(import "primary" "%table" (table $0 1 funcref))
(import "primary" "%foo_0" (func $foo))
(elem (i32.const 0) $bar)
- (func $bar
+ (func $bar (type $none_=>_none)
(call $foo)
)
)
@@ -781,16 +781,16 @@ Before:
(type $none_=>_none (func))
(table $table 4 funcref)
(elem (i32.const 0) $foo $bar $baz $quux)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -803,10 +803,10 @@ After:
(table $table 4 funcref)
(elem (i32.const 0) $placeholder_0 $bar $placeholder_2 $quux)
(export "%table" (table $table))
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -816,10 +816,10 @@ Secondary:
(import "primary" "%table" (table $table 4 funcref))
(elem $0 (i32.const 0) $foo)
(elem $1 (i32.const 2) $baz)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
@@ -831,16 +831,16 @@ Before:
(import "env" "base" (global $base i32))
(table $table 4 funcref)
(elem (global.get $base) $foo $bar $baz $quux)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -856,10 +856,10 @@ After:
(export "%bar" (func $bar))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -870,10 +870,10 @@ Secondary:
(import "primary" "%global" (global $base i32))
(import "primary" "%bar" (func $bar))
(elem (global.get $base) $foo $bar $baz)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
@@ -884,16 +884,16 @@ Before:
(type $none_=>_none (func))
(table $table 4 funcref)
(elem (i32.const 0) $foo $bar $baz $quux)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -907,7 +907,7 @@ After:
(table $table 4 funcref)
(elem (i32.const 0) $placeholder_0 $placeholder_1 $baz $placeholder_3)
(export "%table" (table $table))
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
)
@@ -917,13 +917,13 @@ Secondary:
(import "primary" "%table" (table $table 4 funcref))
(elem $0 (i32.const 0) $foo $bar)
(elem $1 (i32.const 3) $quux)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -935,16 +935,16 @@ Before:
(import "env" "base" (global $base i32))
(table $table 4 funcref)
(elem (global.get $base) $foo $bar $baz $quux)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -961,7 +961,7 @@ After:
(export "%baz" (func $baz))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $baz
+ (func $baz (type $none_=>_none)
(nop)
)
)
@@ -972,13 +972,13 @@ Secondary:
(import "primary" "%global" (global $base i32))
(import "primary" "%baz" (func $baz))
(elem (global.get $base) $foo $bar $baz $quux)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $quux
+ (func $quux (type $none_=>_none)
(nop)
)
)
@@ -990,10 +990,10 @@ Before:
(import "env" "base" (global $base i32))
(table $table 2 funcref)
(elem (global.get $base) $foo $bar)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(call $foo)
)
)
@@ -1008,7 +1008,7 @@ After:
(export "%foo" (func $foo))
(export "%table" (table $table))
(export "%global" (global $base))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
@@ -1019,7 +1019,7 @@ Secondary:
(import "primary" "%global" (global $base i32))
(import "primary" "%foo" (func $foo))
(elem (global.get $base) $foo $bar)
- (func $bar
+ (func $bar (type $none_=>_none)
(call $foo)
)
)
@@ -1030,12 +1030,12 @@ Before:
(type $i32_=>_i32 (func (param i32) (result i32)))
(table $table 1 1 funcref)
(elem (i32.const 0) $foo)
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call $bar
(i32.const 0)
)
)
- (func $bar (param $0 i32) (result i32)
+ (func $bar (type $i32_=>_i32) (param $0 i32) (result i32)
(call $foo
(i32.const 1)
)
@@ -1050,7 +1050,7 @@ After:
(elem (i32.const 0) $foo $placeholder_1)
(export "%foo" (func $foo))
(export "%table" (table $table))
- (func $foo (param $0 i32) (result i32)
+ (func $foo (type $i32_=>_i32) (param $0 i32) (result i32)
(call_indirect $table (type $i32_=>_i32)
(i32.const 0)
(i32.const 1)
@@ -1063,7 +1063,7 @@ Secondary:
(import "primary" "%table" (table $table 2 2 funcref))
(import "primary" "%foo" (func $foo (param i32) (result i32)))
(elem (i32.const 1) $bar)
- (func $bar (param $0 i32) (result i32)
+ (func $bar (type $i32_=>_i32) (param $0 i32) (result i32)
(call $foo
(i32.const 1)
)
@@ -1076,7 +1076,7 @@ Before:
(type $none_=>_none (func))
(export "foo1" (func $foo))
(export "foo2" (func $foo))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
@@ -1090,7 +1090,7 @@ After:
(export "foo1" (func $foo))
(export "foo2" (func $foo))
(export "%table" (table $0))
- (func $foo
+ (func $foo (type $none_=>_none)
(call_indirect $0 (type $none_=>_none)
(i32.const 0)
)
@@ -1101,7 +1101,7 @@ Secondary:
(type $none_=>_none (func))
(import "primary" "%table" (table $0 1 funcref))
(elem (i32.const 0) $foo)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
@@ -1120,34 +1120,34 @@ Minimized names primary:
(export "%g" (func $6))
(export "%h" (func $8))
(export "%i" (func $9))
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
)
- (func $1
+ (func $1 (type $none_=>_none)
(nop)
)
- (func $2
+ (func $2 (type $none_=>_none)
(nop)
)
- (func $3
+ (func $3 (type $none_=>_none)
(nop)
)
- (func $4
+ (func $4 (type $none_=>_none)
(nop)
)
- (func $5
+ (func $5 (type $none_=>_none)
(nop)
)
- (func $6
+ (func $6 (type $none_=>_none)
(nop)
)
- (func $7
+ (func $7 (type $none_=>_none)
(nop)
)
- (func $8
+ (func $8 (type $none_=>_none)
(nop)
)
- (func $9
+ (func $9 (type $none_=>_none)
(nop)
)
)
@@ -1165,7 +1165,7 @@ Minimized names secondary:
(import "primary" "%b" (func $7))
(import "primary" "%h" (func $8))
(import "primary" "%i" (func $9))
- (func $call
+ (func $call (type $none_=>_none)
(call $0)
(call $1)
(call $2)
diff --git a/test/example/type-builder.cpp b/test/example/type-builder.cpp
index 7da2f8f03..2ce064b5f 100644
--- a/test/example/type-builder.cpp
+++ b/test/example/type-builder.cpp
@@ -18,26 +18,26 @@ void test_canonicalization() {
TypeBuilder builder(4);
- Type tempSigRef1 = builder.getTempRefType(builder[2], Nullable);
- Type tempSigRef2 = builder.getTempRefType(builder[3], Nullable);
+ Type tempSigRef1 = builder.getTempRefType(builder[0], Nullable);
+ Type tempSigRef2 = builder.getTempRefType(builder[1], Nullable);
assert(tempSigRef1 != tempSigRef2);
assert(tempSigRef1 != Type(sig, Nullable));
assert(tempSigRef2 != Type(sig, Nullable));
- builder[0] =
+ builder[0] = Signature(Type::none, Type::none);
+ builder[1] = Signature(Type::none, Type::none);
+ builder[2] =
Struct({Field(tempSigRef1, Immutable), Field(tempSigRef1, Immutable)});
- builder[1] =
+ builder[3] =
Struct({Field(tempSigRef2, Immutable), Field(tempSigRef2, Immutable)});
- builder[2] = Signature(Type::none, Type::none);
- builder[3] = Signature(Type::none, Type::none);
std::vector<HeapType> built = *builder.build();
- assert(built[0] == struct_);
- assert(built[1] == struct_);
- assert(built[2] == sig);
- assert(built[3] == sig);
+ assert(built[0] == sig);
+ assert(built[1] == sig);
+ assert(built[2] == struct_);
+ assert(built[3] == struct_);
}
// Check that defined basic HeapTypes are handled correctly.
@@ -92,6 +92,7 @@ void test_recursive() {
std::vector<HeapType> built;
{
TypeBuilder builder(2);
+ builder.createRecGroup(0, 2);
Type temp0 = builder.getTempRefType(builder[0], Nullable);
Type temp1 = builder.getTempRefType(builder[1], Nullable);
builder[0] = Signature(Type::none, temp1);
@@ -103,7 +104,6 @@ void test_recursive() {
std::cout << print(built[1]) << "\n\n";
assert(built[0].getSignature().results.getHeapType() == built[1]);
assert(built[1].getSignature().results.getHeapType() == built[0]);
- assert(built[0] == built[1]);
}
{
@@ -111,6 +111,7 @@ void test_recursive() {
std::vector<HeapType> built;
{
TypeBuilder builder(5);
+ builder.createRecGroup(0, 5);
Type temp0 = builder.getTempRefType(builder[0], Nullable);
Type temp1 = builder.getTempRefType(builder[1], Nullable);
Type temp2 = builder.getTempRefType(builder[2], Nullable);
@@ -134,10 +135,10 @@ void test_recursive() {
assert(built[2].getSignature().results.getHeapType() == built[3]);
assert(built[3].getSignature().results.getHeapType() == built[4]);
assert(built[4].getSignature().results.getHeapType() == built[0]);
- assert(built[0] == built[1]);
- assert(built[1] == built[2]);
- assert(built[2] == built[3]);
- assert(built[3] == built[4]);
+ assert(built[0] != built[1]);
+ assert(built[1] != built[2]);
+ assert(built[2] != built[3]);
+ assert(built[3] != built[4]);
}
{
@@ -152,12 +153,13 @@ void test_recursive() {
Type temp3 = builder.getTempRefType(builder[3], Nullable);
Type tuple0_2 = builder.getTempTupleType({temp0, temp2});
Type tuple1_3 = builder.getTempTupleType({temp1, temp3});
- builder[0] = Signature(Type::none, tuple0_2);
- builder[1] = Signature(Type::none, tuple1_3);
- builder[2] = Signature();
- builder[3] = Signature();
- builder[4] = Signature(Type::none, temp0);
- builder[5] = Signature(Type::none, temp1);
+ builder[0] = Signature();
+ builder[1] = Signature();
+ builder.createRecGroup(2, 2);
+ builder[2] = Signature(Type::none, tuple0_2);
+ builder[3] = Signature(Type::none, tuple1_3);
+ builder[4] = Signature(Type::none, temp2);
+ builder[5] = Signature(Type::none, temp3);
built = *builder.build();
}
IndexedTypeNameGenerator print(built);
@@ -168,13 +170,13 @@ void test_recursive() {
std::cout << print(built[4]) << "\n";
std::cout << print(built[5]) << "\n\n";
assert(built[0] == built[1]);
- assert(built[2] == built[3]);
- assert(built[4] == built[5]);
- assert(built[4].getSignature().results.getHeapType() == built[0]);
- assert(built[5].getSignature().results.getHeapType() == built[1]);
- assert(built[0].getSignature().results ==
+ assert(built[2] != built[3]);
+ assert(built[4] != built[5]);
+ assert(built[4].getSignature().results.getHeapType() == built[2]);
+ assert(built[5].getSignature().results.getHeapType() == built[3]);
+ assert(built[2].getSignature().results ==
Type({Type(built[0], Nullable), Type(built[2], Nullable)}));
- assert(built[1].getSignature().results ==
+ assert(built[3].getSignature().results ==
Type({Type(built[1], Nullable), Type(built[3], Nullable)}));
}
@@ -193,7 +195,7 @@ void test_recursive() {
std::cout << print(built[1]) << "\n\n";
assert(built[0].getSignature().results.getHeapType() == built[0]);
assert(built[1].getSignature().results.getHeapType() == built[0]);
- assert(built[0] == built[1]);
+ assert(built[0] != built[1]);
}
{
@@ -201,202 +203,22 @@ void test_recursive() {
std::vector<HeapType> built;
{
TypeBuilder builder(3);
- Type temp0 = builder.getTempRefType(builder[0], Nullable);
- Type anyref = builder.getTempRefType(builder[2], Nullable);
- builder[0] = Signature(anyref, temp0);
- builder[1] = Signature(anyref, temp0);
- builder[2] = HeapType::any;
+ Type anyref = builder.getTempRefType(builder[0], Nullable);
+ Type temp1 = builder.getTempRefType(builder[1], Nullable);
+ builder[0] = HeapType::any;
+ builder[1] = Signature(anyref, temp1);
+ builder[2] = Signature(anyref, temp1);
built = *builder.build();
}
IndexedTypeNameGenerator print(built);
std::cout << print(built[0]) << "\n";
std::cout << print(built[1]) << "\n\n";
- assert(built[0].getSignature().results.getHeapType() == built[0]);
- assert(built[1].getSignature().results.getHeapType() == built[0]);
- assert(built[0].getSignature().params == Type(HeapType::any, Nullable));
+ assert(built[0] == HeapType::any);
+ assert(built[1].getSignature().results.getHeapType() == built[1]);
+ assert(built[2].getSignature().results.getHeapType() == built[1]);
assert(built[1].getSignature().params == Type(HeapType::any, Nullable));
- assert(built[0] == built[1]);
- assert(built[2] == HeapType::any);
- }
-}
-
-void test_lub() {
- std::cout << ";; Test LUBs\n";
-
- Type ext = Type(HeapType::ext, Nullable);
- Type func = Type(HeapType::func, Nullable);
- Type any = Type(HeapType::any, Nullable);
- Type eq = Type(HeapType::eq, Nullable);
- Type i31 = Type(HeapType::i31, Nullable);
- Type data = Type(HeapType::data, Nullable);
-
- auto LUB = [&](Type a, Type b) {
- Type lubAB = Type::getLeastUpperBound(a, b);
- Type lubBA = Type::getLeastUpperBound(b, a);
- assert(lubAB == lubBA);
- if (lubAB == Type::none) {
- assert(!Type::hasLeastUpperBound(a, b));
- assert(!Type::hasLeastUpperBound(b, a));
- } else {
- assert(Type::hasLeastUpperBound(a, b));
- assert(Type::hasLeastUpperBound(b, a));
- assert(Type::isSubType(a, lubAB));
- assert(Type::isSubType(b, lubAB));
- }
- return lubAB;
- };
-
- {
- // Basic Types
- for (auto other : {any, eq, i31, data}) {
- assert(LUB(any, other) == any);
- assert(LUB(func, other) == Type::none);
- assert(LUB(ext, other) == Type::none);
- }
- assert(LUB(i31, data) == eq);
- }
-
- {
- // Nullable and non-nullable references
- Type nullable(HeapType::any, Nullable);
- Type nonNullable(HeapType::any, NonNullable);
- assert(LUB(nullable, nullable) == nullable);
- assert(LUB(nullable, nonNullable) == nullable);
- assert(LUB(nonNullable, nonNullable) == nonNullable);
- }
-
- {
- // Funcref with specific signature
- assert(LUB(func, Type(Signature(), Nullable)) == func);
- }
-
- {
- // Incompatible signatures
- Type a(Signature(Type::none, any), Nullable);
- Type b(Signature(any, Type::none), Nullable);
- assert(LUB(a, b) == Type(HeapType::func, Nullable));
- }
-
- {
- // Signatures incompatible in tuple size
- Type a(Signature(Type::none, {any, any}), Nullable);
- Type b(Signature(Type::none, {any, any, any}), Nullable);
- assert(LUB(a, b) == Type(HeapType::func, Nullable));
- }
-
- // {
- // // Covariance of function results
- // Type a(Signature(Type::none, {Type::eqref, Type::funcref}), Nullable);
- // Type b(Signature(Type::none, {Type::funcref, Type::eqref}), Nullable);
- // assert(LUB(a, b) == Type(Signature(Type::none, {Type::anyref,
- // Type::anyref}), Nullable));
- // }
-
- // TODO: Test contravariance in function parameters once that is supported.
-
- // {
- // // Nested signatures
- // Type baseA(Signature(Type::none, Type::eqref), Nullable);
- // Type baseB(Signature(Type::none, Type::funcref), Nullable);
- // Type a(Signature(Type::none, baseA), Nullable);
- // Type b(Signature(Type::none, baseB), Nullable);
- // Type baseLub(Signature(Type::none, Type::anyref), Nullable);
- // Type lub(Signature(Type::none, baseLub), Nullable);
- // assert(LUB(a, b) == lub);
- // }
-
- // TODO: Test recursive signatures once signature subtyping is supported.
-
- {
- // Mutable fields are invariant
- Type a(Array(Field(eq, Mutable)), Nullable);
- Type b(Array(Field(func, Mutable)), Nullable);
- assert(LUB(a, b) == data);
- }
-
- {
- // Immutable fields are covariant
- Type a(Array(Field(data, Immutable)), Nullable);
- Type b(Array(Field(i31, Immutable)), Nullable);
- Type lub(Array(Field(eq, Immutable)), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // Depth subtyping
- Type a(Struct({Field(data, Immutable)}), Nullable);
- Type b(Struct({Field(i31, Immutable)}), Nullable);
- Type lub(Struct({Field(eq, Immutable)}), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // Width subtyping
- Type a(Struct({Field(Type::i32, Immutable)}), Nullable);
- Type b(Struct({Field(Type::i32, Immutable), Field(Type::i32, Immutable)}),
- Nullable);
- assert(LUB(a, b) == a);
- }
-
- {
- // Width subtyping with different suffixes
- Type a(Struct({Field(Type::i32, Immutable), Field(Type::i64, Immutable)}),
- Nullable);
- Type b(Struct({Field(Type::i32, Immutable), Field(Type::f32, Immutable)}),
- Nullable);
- Type lub(Struct({Field(Type::i32, Immutable)}), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // Width and depth subtyping with different suffixes
- Type a(Struct({Field(data, Immutable), Field(Type::i64, Immutable)}),
- Nullable);
- Type b(Struct({Field(i31, Immutable), Field(Type::f32, Immutable)}),
- Nullable);
- Type lub(Struct({Field(eq, Immutable)}), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // No common prefix
- Type a(Struct({Field(Type::i32, Immutable), Field(any, Immutable)}),
- Nullable);
- Type b(Struct({Field(Type::f32, Immutable), Field(any, Immutable)}),
- Nullable);
- Type lub(Struct(), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // Nested structs
- Type innerA(Struct({Field(data, Immutable)}), Nullable);
- Type innerB(Struct({Field(i31, Immutable)}), Nullable);
- Type innerLub(Struct({Field(eq, Immutable)}), Nullable);
- Type a(Struct({Field(innerA, Immutable)}), Nullable);
- Type b(Struct({Field(innerB, Immutable)}), Nullable);
- Type lub(Struct({Field(innerLub, Immutable)}), Nullable);
- assert(LUB(a, b) == lub);
- }
-
- {
- // Recursive structs
- TypeBuilder builder(2);
- Type tempA = builder.getTempRefType(builder[0], Nullable);
- Type tempB = builder.getTempRefType(builder[1], Nullable);
- builder[0] = Struct({Field(tempB, Immutable), Field(data, Immutable)});
- builder[1] = Struct({Field(tempA, Immutable), Field(i31, Immutable)});
- auto built = *builder.build();
- Type a(built[0], Nullable);
- Type b(built[1], Nullable);
-
- TypeBuilder lubBuilder(1);
- Type tempLub = builder.getTempRefType(lubBuilder[0], Nullable);
- lubBuilder[0] = Struct({Field(tempLub, Immutable), Field(eq, Immutable)});
- built = *lubBuilder.build();
- Type lub(built[0], Nullable);
-
- assert(LUB(a, b) == lub);
+ assert(built[2].getSignature().params == Type(HeapType::any, Nullable));
+ assert(built[1] != built[2]);
}
}
@@ -407,6 +229,5 @@ int main() {
test_canonicalization();
test_basic();
test_recursive();
- test_lub();
}
}
diff --git a/test/example/type-builder.txt b/test/example/type-builder.txt
index 372e531a1..af40fd5de 100644
--- a/test/example/type-builder.txt
+++ b/test/example/type-builder.txt
@@ -1,56 +1,54 @@
;; Test canonicalization
;; Test basic
;; Test recursive types
-(func (result (ref null $0)))
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $1)) func)
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $1)) func)
+(func_subtype (result (ref null $2)) func)
+(func_subtype (result (ref null $3)) func)
+(func_subtype (result (ref null $4)) func)
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0) (ref null $2)))
-(func (result (ref null $0) (ref null $2)))
-(func)
-(func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype func)
+(func_subtype func)
+(func_subtype (result (ref null $0) (ref null $2)) func)
+(func_subtype (result (ref null $0) (ref null $3)) func)
+(func_subtype (result (ref null $2)) func)
+(func_subtype (result (ref null $3)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $0)) func)
+(func_subtype (result (ref null $0)) func)
-(func (param anyref) (result (ref null $0)))
-(func (param anyref) (result (ref null $0)))
+any
+(func_subtype (param anyref) (result (ref null $1)) func)
-;; Test LUBs
;; Test canonicalization
;; Test basic
;; Test recursive types
-(func (result (ref null $0)))
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $1)) func)
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $1)) func)
+(func_subtype (result (ref null $2)) func)
+(func_subtype (result (ref null $3)) func)
+(func_subtype (result (ref null $4)) func)
+(func_subtype (result (ref null $0)) func)
-(func (result (ref null $0) (ref null $2)))
-(func (result (ref null $0) (ref null $2)))
-(func)
-(func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype func)
+(func_subtype func)
+(func_subtype (result (ref null $0) (ref null $2)) func)
+(func_subtype (result (ref null $0) (ref null $3)) func)
+(func_subtype (result (ref null $2)) func)
+(func_subtype (result (ref null $3)) func)
-(func (result (ref null $0)))
-(func (result (ref null $0)))
+(func_subtype (result (ref null $0)) func)
+(func_subtype (result (ref null $0)) func)
-(func (param anyref) (result (ref null $0)))
-(func (param anyref) (result (ref null $0)))
+any
+(func_subtype (param anyref) (result (ref null $1)) func)
-;; Test LUBs
diff --git a/test/example/typeinfo.txt b/test/example/typeinfo.txt
index 7015e6cfc..67f9766d0 100644
--- a/test/example/typeinfo.txt
+++ b/test/example/typeinfo.txt
@@ -11,31 +11,31 @@ eqref
i31
i31ref
(ref i31)
-(func)
-(struct)
-(array i32)
+(func_subtype func)
+(struct_subtype data)
+(array_subtype i32 data)
;; Signature
-(func)
+(func_subtype func)
(ref $func.0)
(ref null $func.0)
-(func (param i32) (result f64))
+(func_subtype (param i32) (result f64) func)
(ref $func.0)
(ref null $func.0)
;; Struct
-(struct)
+(struct_subtype data)
(ref $struct.0)
(ref null $struct.0)
-(struct (field i32 i64 (mut f32) (mut f64)))
+(struct_subtype (field i32 i64 (mut f32) (mut f64)) data)
(ref $struct.0)
(ref null $struct.0)
;; Array
-(array i32)
+(array_subtype i32 data)
(ref $array.0)
(ref null $array.0)
-(array (mut i64))
+(array_subtype (mut i64) data)
(ref $array.0)
(ref null $array.0)
@@ -46,33 +46,33 @@ none
(i32 f64)
;; Signature of references (param/result)
-(func (param (ref null $struct.0)) (result (ref $array.0)))
+(func_subtype (param (ref null $struct.0)) (result (ref $array.0)) func)
;; Signature of references (params/results)
-(func (param (ref null $struct.0) (ref $array.0)) (result (ref $struct.0) (ref null $array.1)))
+(func_subtype (param (ref null $struct.0) (ref $array.0)) (result (ref $struct.0) (ref null $array.1)) func)
;; Struct of references
-(struct (field (ref $func.0) (mut (ref $func.0)) (ref null $func.0) (mut (ref null $func.0))))
+(struct_subtype (field (ref $func.0) (mut (ref $func.0)) (ref null $func.0) (mut (ref null $func.0))) data)
(ref $struct.0)
(ref null $struct.0)
-(struct (field (ref $struct.0) (mut (ref $struct.0)) (ref null $struct.0) (mut (ref null $struct.0))))
+(struct_subtype (field (ref $struct.0) (mut (ref $struct.0)) (ref null $struct.0) (mut (ref null $struct.0))) data)
(ref $struct.0)
(ref null $struct.0)
-(struct (field (ref $array.0) (mut (ref $array.0)) (ref null $array.0) (mut (ref null $array.0))))
+(struct_subtype (field (ref $array.0) (mut (ref $array.0)) (ref null $array.0) (mut (ref null $array.0))) data)
(ref $struct.0)
(ref null $struct.0)
-(struct (field (mut i32) (mut (ref null $func.0)) (mut (ref null $struct.0)) (mut (ref null $array.0))))
+(struct_subtype (field (mut i32) (mut (ref null $func.0)) (mut (ref null $struct.0)) (mut (ref null $array.0))) data)
(ref $struct.0)
(ref null $struct.0)
;; Array of references
-(array (ref null $func.0))
+(array_subtype (ref null $func.0) data)
(ref $array.0)
(ref null $array.0)
-(array (mut (ref null $struct.0)))
+(array_subtype (mut (ref null $struct.0)) data)
(ref $array.0)
(ref null $array.0)
-(array (ref null $array.0))
+(array_subtype (ref null $array.0) data)
(ref $array.0)
(ref null $array.0)
@@ -81,7 +81,7 @@ none
((ref $func.0) (ref null $func.0) (ref $struct.0) (ref null $struct.0) (ref $array.0) (ref null $array.0))
;; Recursive (not really)
-(func (param (ref $func.0)))
+(func_subtype (param (ref $func.0)) func)
(ref $func.0)
-(func (param (ref $array.0)))
+(func_subtype (param (ref $array.0)) func)
(ref $func.0)
diff --git a/test/exception-handling.wast.from-wast b/test/exception-handling.wast.from-wast
index b5926ca09..bca0c39b8 100644
--- a/test/exception-handling.wast.from-wast
+++ b/test/exception-handling.wast.from-wast
@@ -9,13 +9,13 @@
(tag $e-i32-i64 (param i32 i64))
(tag $e-eqref (param eqref))
(tag $e-empty (param))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $eh-test
+ (func $eh-test (type $none_=>_none)
(local $x (i32 i64))
(try $try
(do
@@ -180,7 +180,7 @@
)
)
)
- (func $delegate-test
+ (func $delegate-test (type $none_=>_none)
(try $l0
(do
(try $try
@@ -245,7 +245,7 @@
)
)
)
- (func $rethrow-test
+ (func $rethrow-test (type $none_=>_none)
(try $l0
(do
(call $foo)
@@ -353,7 +353,7 @@
)
)
)
- (func $pop-test
+ (func $pop-test (type $none_=>_none)
(try $try
(do
(nop)
@@ -379,7 +379,7 @@
)
)
)
- (func $catchless-try-with-inner-delegate
+ (func $catchless-try-with-inner-delegate (type $none_=>_none)
(try $label$0
(do
(try $try
@@ -393,7 +393,7 @@
)
)
)
- (func $nested-block-and-try
+ (func $nested-block-and-try (type $none_=>_none)
(block $l0
(block $l1
)
diff --git a/test/exception-handling.wast.fromBinary b/test/exception-handling.wast.fromBinary
index 73a4ae975..67efd13d1 100644
--- a/test/exception-handling.wast.fromBinary
+++ b/test/exception-handling.wast.fromBinary
@@ -9,13 +9,13 @@
(tag $e-i32-i64 (param i32 i64))
(tag $e-eqref (param eqref))
(tag $e-empty (param))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
- (func $eh-test
+ (func $eh-test (type $none_=>_none)
(local $x i32)
(local $1 i64)
(local $2 (i32 i64))
@@ -205,7 +205,7 @@
)
)
)
- (func $delegate-test
+ (func $delegate-test (type $none_=>_none)
(try $label$9
(do
(block $label$1
@@ -276,7 +276,7 @@
)
)
)
- (func $rethrow-test
+ (func $rethrow-test (type $none_=>_none)
(try $label$3
(do
(call $foo)
@@ -382,7 +382,7 @@
)
)
)
- (func $pop-test
+ (func $pop-test (type $none_=>_none)
(try $label$5
(do
(nop)
@@ -408,7 +408,7 @@
)
)
)
- (func $catchless-try-with-inner-delegate
+ (func $catchless-try-with-inner-delegate (type $none_=>_none)
(try $label$6
(do
(block $label$1
@@ -424,7 +424,7 @@
)
)
)
- (func $nested-block-and-try
+ (func $nested-block-and-try (type $none_=>_none)
(block $label$1
(block $label$2
)
diff --git a/test/exception-handling.wast.fromBinary.noDebugInfo b/test/exception-handling.wast.fromBinary.noDebugInfo
index c3f2a8307..eeeeea94e 100644
--- a/test/exception-handling.wast.fromBinary.noDebugInfo
+++ b/test/exception-handling.wast.fromBinary.noDebugInfo
@@ -9,13 +9,13 @@
(tag $tag$2 (param i32 i64))
(tag $tag$3 (param eqref))
(tag $tag$4 (param))
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
)
- (func $1
+ (func $1 (type $none_=>_none)
(nop)
)
- (func $2
+ (func $2 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(local $2 (i32 i64))
@@ -205,7 +205,7 @@
)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(try $label$9
(do
(block $label$1
@@ -276,7 +276,7 @@
)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(try $label$3
(do
(call $0)
@@ -382,7 +382,7 @@
)
)
)
- (func $5
+ (func $5 (type $none_=>_none)
(try $label$5
(do
(nop)
@@ -408,7 +408,7 @@
)
)
)
- (func $6
+ (func $6 (type $none_=>_none)
(try $label$6
(do
(block $label$1
@@ -424,7 +424,7 @@
)
)
)
- (func $7
+ (func $7 (type $none_=>_none)
(block $label$1
(block $label$2
)
diff --git a/test/fn_prolog_epilog.debugInfo.wast.from-wast b/test/fn_prolog_epilog.debugInfo.wast.from-wast
index f9556f807..a7492d65a 100644
--- a/test/fn_prolog_epilog.debugInfo.wast.from-wast
+++ b/test/fn_prolog_epilog.debugInfo.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
;;@ src.cpp:1:1
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
;;@ src.cpp:2:1
(block $l0
diff --git a/test/fn_prolog_epilog.debugInfo.wast.fromBinary b/test/fn_prolog_epilog.debugInfo.wast.fromBinary
index 75c4e9c66..02c7a5069 100644
--- a/test/fn_prolog_epilog.debugInfo.wast.fromBinary
+++ b/test/fn_prolog_epilog.debugInfo.wast.fromBinary
@@ -1,6 +1,6 @@
(module
(type $none_=>_none (func))
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
(block $label$1
(block $label$2
diff --git a/test/fn_prolog_epilog.debugInfo.wast.fromBinary.noDebugInfo b/test/fn_prolog_epilog.debugInfo.wast.fromBinary.noDebugInfo
index 75c4e9c66..02c7a5069 100644
--- a/test/fn_prolog_epilog.debugInfo.wast.fromBinary.noDebugInfo
+++ b/test/fn_prolog_epilog.debugInfo.wast.fromBinary.noDebugInfo
@@ -1,6 +1,6 @@
(module
(type $none_=>_none (func))
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
(block $label$1
(block $label$2
diff --git a/test/gc.wast.from-wast b/test/gc.wast.from-wast
index a518ceffa..9c2386d7d 100644
--- a/test/gc.wast.from-wast
+++ b/test/gc.wast.from-wast
@@ -13,7 +13,7 @@
(global $global_eqref2 (mut eqref) (i31.new
(i32.const 0)
))
- (func $test (param $local_i31ref i31ref) (param $local_dataref dataref)
+ (func $test (type $i31ref_dataref_=>_none) (param $local_i31ref i31ref) (param $local_dataref dataref)
(local $local_i32 i32)
(local $local_anyref anyref)
(local $local_eqref eqref)
@@ -148,7 +148,7 @@
)
)
)
- (func $test-variants (param $local_i31refnull i31ref) (param $local_i31refnonnull (ref i31)) (param $local_datarefnull dataref) (param $local_datarefnonnull (ref data))
+ (func $test-variants (type $i31ref_ref|i31|_dataref_ref|data|_=>_none) (param $local_i31refnull i31ref) (param $local_i31refnonnull (ref i31)) (param $local_datarefnull dataref) (param $local_datarefnonnull (ref data))
(nop)
)
)
diff --git a/test/gc.wast.fromBinary b/test/gc.wast.fromBinary
index 72c1508e7..e56215a8a 100644
--- a/test/gc.wast.fromBinary
+++ b/test/gc.wast.fromBinary
@@ -13,7 +13,7 @@
(global $global_eqref2 (mut eqref) (i31.new
(i32.const 0)
))
- (func $test (param $local_i31ref i31ref) (param $local_dataref dataref)
+ (func $test (type $i31ref_dataref_=>_none) (param $local_i31ref i31ref) (param $local_dataref dataref)
(local $local_i32 i32)
(local $local_anyref anyref)
(local $local_eqref eqref)
@@ -148,7 +148,7 @@
)
)
)
- (func $test-variants (param $local_i31refnull i31ref) (param $local_i31refnonnull (ref i31)) (param $local_datarefnull dataref) (param $local_datarefnonnull (ref data))
+ (func $test-variants (type $i31ref_ref|i31|_dataref_ref|data|_=>_none) (param $local_i31refnull i31ref) (param $local_i31refnonnull (ref i31)) (param $local_datarefnull dataref) (param $local_datarefnonnull (ref data))
(nop)
)
)
diff --git a/test/gc.wast.fromBinary.noDebugInfo b/test/gc.wast.fromBinary.noDebugInfo
index 614376881..e51c6c4c1 100644
--- a/test/gc.wast.fromBinary.noDebugInfo
+++ b/test/gc.wast.fromBinary.noDebugInfo
@@ -13,7 +13,7 @@
(global $global$5 (mut eqref) (i31.new
(i32.const 0)
))
- (func $0 (param $0 i31ref) (param $1 dataref)
+ (func $0 (type $i31ref_dataref_=>_none) (param $0 i31ref) (param $1 dataref)
(local $2 i32)
(local $3 anyref)
(local $4 eqref)
@@ -148,7 +148,7 @@
)
)
)
- (func $1 (param $0 i31ref) (param $1 (ref i31)) (param $2 dataref) (param $3 (ref data))
+ (func $1 (type $i31ref_ref|i31|_dataref_ref|data|_=>_none) (param $0 i31ref) (param $1 (ref i31)) (param $2 dataref) (param $3 (ref data))
(nop)
)
)
diff --git a/test/grow_memory.wast.from-wast b/test/grow_memory.wast.from-wast
index 35cf39f02..9994eb61d 100644
--- a/test/grow_memory.wast.from-wast
+++ b/test/grow_memory.wast.from-wast
@@ -5,12 +5,12 @@
(export "memory" (memory $0))
(export "grow" (func $0))
(export "current" (func $1))
- (func $0 (param $var$0 i32) (result i32)
+ (func $0 (type $0) (param $var$0 i32) (result i32)
(memory.grow
(local.get $var$0)
)
)
- (func $1 (result i32)
+ (func $1 (type $1) (result i32)
(memory.size)
)
)
diff --git a/test/grow_memory.wast.fromBinary b/test/grow_memory.wast.fromBinary
index cf616556b..ea4be8816 100644
--- a/test/grow_memory.wast.fromBinary
+++ b/test/grow_memory.wast.fromBinary
@@ -5,12 +5,12 @@
(export "memory" (memory $0))
(export "grow" (func $0))
(export "current" (func $1))
- (func $0 (param $var$0 i32) (result i32)
+ (func $0 (type $0) (param $var$0 i32) (result i32)
(memory.grow
(local.get $var$0)
)
)
- (func $1 (result i32)
+ (func $1 (type $1) (result i32)
(memory.size)
)
)
diff --git a/test/grow_memory.wast.fromBinary.noDebugInfo b/test/grow_memory.wast.fromBinary.noDebugInfo
index 1f1addc33..109d90ffa 100644
--- a/test/grow_memory.wast.fromBinary.noDebugInfo
+++ b/test/grow_memory.wast.fromBinary.noDebugInfo
@@ -5,12 +5,12 @@
(export "memory" (memory $0))
(export "grow" (func $0))
(export "current" (func $1))
- (func $0 (param $0 i32) (result i32)
+ (func $0 (type $i32_=>_i32) (param $0 i32) (result i32)
(memory.grow
(local.get $0)
)
)
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(memory.size)
)
)
diff --git a/test/gtest/type-builder.cpp b/test/gtest/type-builder.cpp
index 8ba2a39d1..fcf0e1a5a 100644
--- a/test/gtest/type-builder.cpp
+++ b/test/gtest/type-builder.cpp
@@ -499,7 +499,7 @@ TEST_F(IsorecursiveTest, CanonicalizeBasicTypes) {
testCanonicalizeBasicTypes();
}
-TEST_F(IsorecursiveTest, TestBasicTypeRelations) {
+TEST_F(IsorecursiveTest, TestHeapTypeRelations) {
HeapType ext = HeapType::ext;
HeapType func = HeapType::func;
HeapType any = HeapType::any;
@@ -715,6 +715,127 @@ TEST_F(IsorecursiveTest, TestBasicTypeRelations) {
assertLUB(defStruct, defArray, data);
assertLUB(defArray, defArray, defArray);
+
+ Type anyref = Type(any, Nullable);
+ Type eqref = Type(eq, Nullable);
+
+ {
+ // Nullable and non-nullable references.
+ Type nonNullable(any, NonNullable);
+ EXPECT_TRUE(Type::isSubType(nonNullable, anyref));
+ EXPECT_FALSE(Type::isSubType(anyref, nonNullable));
+ EXPECT_TRUE(Type::hasLeastUpperBound(anyref, nonNullable));
+ EXPECT_EQ(Type::getLeastUpperBound(anyref, nonNullable), anyref);
+ }
+
+ {
+ // Immutable array fields are covariant.
+ TypeBuilder builder(2);
+ builder[0] = Array(Field(anyref, Immutable));
+ builder[1] = Array(Field(eqref, Immutable));
+ builder[1].subTypeOf(builder[0]);
+ auto results = builder.build();
+ ASSERT_TRUE(results);
+ auto built = *results;
+ EXPECT_TRUE(HeapType::isSubType(built[1], built[0]));
+ }
+
+ {
+ // Depth subtyping
+ TypeBuilder builder(2);
+ builder[0] = Struct({Field(anyref, Immutable)});
+ builder[1] = Struct({Field(eqref, Immutable)});
+ builder[1].subTypeOf(builder[0]);
+ auto results = builder.build();
+ ASSERT_TRUE(results);
+ auto built = *results;
+ EXPECT_TRUE(HeapType::isSubType(built[1], built[0]));
+ }
+
+ {
+ // Width subtyping
+ TypeBuilder builder(2);
+ builder[0] = Struct({Field(anyref, Immutable)});
+ builder[1] = Struct({Field(anyref, Immutable), Field(anyref, Immutable)});
+ builder[1].subTypeOf(builder[0]);
+ auto results = builder.build();
+ ASSERT_TRUE(results);
+ auto built = *results;
+ EXPECT_TRUE(HeapType::isSubType(built[1], built[0]));
+ }
+
+ {
+ // Nested structs
+ TypeBuilder builder(4);
+ auto ref0 = builder.getTempRefType(builder[0], Nullable);
+ auto ref1 = builder.getTempRefType(builder[1], Nullable);
+ builder[0] = Struct({Field(anyref, Immutable)});
+ builder[1] = Struct({Field(eqref, Immutable)});
+ builder[2] = Struct({Field(ref0, Immutable)});
+ builder[3] = Struct({Field(ref1, Immutable)});
+ builder[1].subTypeOf(builder[0]);
+ builder[3].subTypeOf(builder[2]);
+ auto results = builder.build();
+ ASSERT_TRUE(results);
+ auto built = *results;
+ EXPECT_TRUE(HeapType::isSubType(built[3], built[2]));
+ }
+
+ {
+ // Recursive structs
+ TypeBuilder builder(2);
+ auto ref0 = builder.getTempRefType(builder[0], Nullable);
+ auto ref1 = builder.getTempRefType(builder[1], Nullable);
+ builder[0] = Struct({Field(ref0, Immutable)});
+ builder[1] = Struct({Field(ref1, Immutable)});
+ builder[1].subTypeOf(builder[0]);
+ auto results = builder.build();
+ ASSERT_TRUE(results);
+ auto built = *results;
+ EXPECT_TRUE(HeapType::isSubType(built[1], built[0]));
+ }
+}
+
+TEST_F(IsorecursiveTest, TestSubtypeErrors) {
+ Type anyref = Type(HeapType::any, Nullable);
+ Type eqref = Type(HeapType::eq, Nullable);
+ Type funcref = Type(HeapType::func, Nullable);
+
+ {
+ // Incompatible signatures.
+ TypeBuilder builder(2);
+ builder[0] = Signature(Type::none, anyref);
+ builder[1] = Signature(anyref, Type::none);
+ builder[1].subTypeOf(builder[0]);
+ EXPECT_FALSE(builder.build());
+ }
+
+ {
+ // Signatures incompatible in tuple size.
+ TypeBuilder builder(2);
+ builder[0] = Signature(Type::none, {anyref, anyref});
+ builder[1] = Signature(Type::none, {anyref, anyref, anyref});
+ builder[1].subTypeOf(builder[0]);
+ EXPECT_FALSE(builder.build());
+ }
+
+ {
+ // Mutable array fields are invariant.
+ TypeBuilder builder(2);
+ builder[0] = Array(Field(anyref, Mutable));
+ builder[1] = Array(Field(eqref, Mutable));
+ builder[1].subTypeOf(builder[0]);
+ EXPECT_FALSE(builder.build());
+ }
+
+ {
+ // Incompatible struct prefixes
+ TypeBuilder builder(2);
+ builder[0] = Struct({Field(anyref, Immutable), Field(anyref, Immutable)});
+ builder[1] = Struct({Field(funcref, Immutable), Field(anyref, Immutable)});
+ builder[1].subTypeOf(builder[0]);
+ EXPECT_FALSE(builder.build());
+ }
}
// Test SubTypes utility code.
diff --git a/test/heap-types.wast b/test/heap-types.wast
index 35e866e9b..b8093312e 100644
--- a/test/heap-types.wast
+++ b/test/heap-types.wast
@@ -30,8 +30,8 @@
(type $words (array (mut i32)))
(type $parent (struct))
- (type $child (struct i32))
- (type $grandchild (struct i32 i64))
+ (type $child (struct_subtype i32 $parent))
+ (type $grandchild (struct_subtype i32 i64 $child))
(type $nested-child-struct (struct (field (mut (ref $child)))))
(type $nested-child-array (array (mut (ref $child))))
diff --git a/test/heap-types.wast.from-wast b/test/heap-types.wast.from-wast
index dc41451cd..e9fe8b938 100644
--- a/test/heap-types.wast.from-wast
+++ b/test/heap-types.wast.from-wast
@@ -6,13 +6,14 @@
(type $struct.C (struct (field $named-mut (mut f32))))
(type $matrix (array (mut (ref null $vector))))
(type $bytes (array (mut i8)))
- (type $grandchild (struct (field i32) (field i64)))
+ (type $parent (struct ))
+ (type $child (struct_subtype (field i32) $parent))
+ (type $grandchild (struct_subtype (field i32) (field i64) $child))
(type $anyref_=>_none (func (param anyref)))
(type $ref?|$vector|_=>_none (func (param (ref null $vector))))
(type $nested-child-struct (struct (field (mut (ref $child)))))
(type $words (array (mut i32)))
(type $nested-child-array (array (mut (ref $child))))
- (type $child (struct (field i32)))
(type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B| (func (param (ref $struct.A) (ref null $struct.A) (ref null $grandchild) (ref null $struct.C) (ref null $nested-child-struct)) (result (ref $struct.B))))
(type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix| (func (param (ref $vector) (ref null $nested-child-array) (ref null $grandchild)) (result (ref $matrix))))
(type $ref?|$struct.C|_=>_none (func (param (ref null $struct.C))))
@@ -20,7 +21,7 @@
(type $none_=>_ref|$vector| (func (result (ref $vector))))
(type $none_=>_ref|$bytes| (func (result (ref $bytes))))
(global $struct.new-in-global (ref $struct.A) (struct.new_default $struct.A))
- (func $structs (param $x (ref $struct.A)) (param $struct.A.prime (ref null $struct.A)) (param $grandchild (ref null $grandchild)) (param $struct.C (ref null $struct.C)) (param $nested-child-struct (ref null $nested-child-struct)) (result (ref $struct.B))
+ (func $structs (type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B|) (param $x (ref $struct.A)) (param $struct.A.prime (ref null $struct.A)) (param $grandchild (ref null $grandchild)) (param $struct.C (ref null $struct.C)) (param $nested-child-struct (ref null $nested-child-struct)) (result (ref $struct.B))
(local $tA (ref null $struct.A))
(local $tB (ref null $struct.B))
(local $tc (ref null $struct.C))
@@ -115,7 +116,7 @@
)
(unreachable)
)
- (func $arrays (param $x (ref $vector)) (param $nested-child-array (ref null $nested-child-array)) (param $grandchild (ref null $grandchild)) (result (ref $matrix))
+ (func $arrays (type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix|) (param $x (ref $vector)) (param $nested-child-array (ref null $nested-child-array)) (param $grandchild (ref null $grandchild)) (result (ref $matrix))
(local $tv (ref null $vector))
(local $tm (ref null $matrix))
(local $tb (ref null $bytes))
@@ -174,7 +175,7 @@
)
(unreachable)
)
- (func $ref.is_X (param $x anyref)
+ (func $ref.is_X (type $anyref_=>_none) (param $x anyref)
(if
(ref.is_func
(local.get $x)
@@ -194,7 +195,7 @@
(unreachable)
)
)
- (func $ref.as_X (param $x anyref)
+ (func $ref.as_X (type $anyref_=>_none) (param $x anyref)
(drop
(ref.as_non_null
(local.get $x)
@@ -216,7 +217,7 @@
)
)
)
- (func $br_on_X (param $x anyref)
+ (func $br_on_X (type $anyref_=>_none) (param $x anyref)
(local $y anyref)
(local $z anyref)
(local $temp-func funcref)
@@ -298,7 +299,7 @@
)
)
)
- (func $unreachables-1
+ (func $unreachables-1 (type $none_=>_none)
(drop
(block ;; (replaces something unreachable we can't emit)
(drop
@@ -308,13 +309,13 @@
)
)
)
- (func $unreachables-2 (param $struct.C (ref null $struct.C))
+ (func $unreachables-2 (type $ref?|$struct.C|_=>_none) (param $struct.C (ref null $struct.C))
(struct.set $struct.C $named-mut
(local.get $struct.C)
(unreachable)
)
)
- (func $unreachables-3
+ (func $unreachables-3 (type $none_=>_none)
(block ;; (replaces something unreachable we can't emit)
(drop
(unreachable)
@@ -325,7 +326,7 @@
(unreachable)
)
)
- (func $unreachables-4
+ (func $unreachables-4 (type $none_=>_none)
(block ;; (replaces something unreachable we can't emit)
(drop
(unreachable)
@@ -336,7 +337,7 @@
(unreachable)
)
)
- (func $unreachables-array-1
+ (func $unreachables-array-1 (type $none_=>_none)
(block ;; (replaces something unreachable we can't emit)
(drop
(unreachable)
@@ -347,13 +348,13 @@
(unreachable)
)
)
- (func $unreachables-array-2 (param $vector (ref null $vector))
+ (func $unreachables-array-2 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(array.get $vector
(local.get $vector)
(unreachable)
)
)
- (func $unreachables-array-3
+ (func $unreachables-array-3 (type $none_=>_none)
(block ;; (replaces something unreachable we can't emit)
(drop
(unreachable)
@@ -367,28 +368,28 @@
(unreachable)
)
)
- (func $unreachables-array-4 (param $vector (ref null $vector))
+ (func $unreachables-array-4 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(array.set $vector
(local.get $vector)
(unreachable)
(f64.const 2.18281828)
)
)
- (func $unreachables-array-5 (param $vector (ref null $vector))
+ (func $unreachables-array-5 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(array.set $vector
(local.get $vector)
(i32.const 2)
(unreachable)
)
)
- (func $unreachables-array-6
+ (func $unreachables-array-6 (type $none_=>_none)
(drop
(array.len
(unreachable)
)
)
)
- (func $array-copy (param $x (ref $vector)) (param $y (ref null $vector))
+ (func $array-copy (type $ref|$vector|_ref?|$vector|_=>_none) (param $x (ref $vector)) (param $y (ref null $vector))
(array.copy $vector $vector
(local.get $x)
(i32.const 11)
@@ -397,7 +398,7 @@
(i32.const 1337)
)
)
- (func $array-init (result (ref $vector))
+ (func $array-init (type $none_=>_ref|$vector|) (result (ref $vector))
(array.init_static $vector
(f64.const 1)
(f64.const 2)
@@ -405,14 +406,14 @@
(f64.const 8)
)
)
- (func $array-init-packed (result (ref $bytes))
+ (func $array-init-packed (type $none_=>_ref|$bytes|) (result (ref $bytes))
(array.init_static $bytes
(i32.const 4)
(i32.const 2)
(i32.const 1)
)
)
- (func $static-operations
+ (func $static-operations (type $none_=>_none)
(local $temp.A (ref null $struct.A))
(local $temp.B (ref null $struct.B))
(drop
diff --git a/test/heap-types.wast.fromBinary b/test/heap-types.wast.fromBinary
index f16e07c7f..fd2dbeed6 100644
--- a/test/heap-types.wast.fromBinary
+++ b/test/heap-types.wast.fromBinary
@@ -6,13 +6,14 @@
(type $matrix (array (mut (ref null $vector))))
(type $bytes (array (mut i8)))
(type $struct.C (struct (field $named-mut (mut f32))))
- (type $grandchild (struct (field i32) (field i64)))
+ (type $parent (struct ))
+ (type $child (struct_subtype (field i32) $parent))
+ (type $grandchild (struct_subtype (field i32) (field i64) $child))
(type $anyref_=>_none (func (param anyref)))
(type $ref?|$vector|_=>_none (func (param (ref null $vector))))
(type $nested-child-struct (struct (field (mut (ref $child)))))
(type $words (array (mut i32)))
(type $nested-child-array (array (mut (ref $child))))
- (type $child (struct (field i32)))
(type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B| (func (param (ref $struct.A) (ref null $struct.A) (ref null $grandchild) (ref null $struct.C) (ref null $nested-child-struct)) (result (ref $struct.B))))
(type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix| (func (param (ref $vector) (ref null $nested-child-array) (ref null $grandchild)) (result (ref $matrix))))
(type $ref?|$struct.C|_=>_none (func (param (ref null $struct.C))))
@@ -20,7 +21,7 @@
(type $none_=>_ref|$vector| (func (result (ref $vector))))
(type $none_=>_ref|$bytes| (func (result (ref $bytes))))
(global $struct.new-in-global (ref $struct.A) (struct.new_default $struct.A))
- (func $structs (param $x (ref $struct.A)) (param $struct.A.prime (ref null $struct.A)) (param $grandchild (ref null $grandchild)) (param $struct.C (ref null $struct.C)) (param $nested-child-struct (ref null $nested-child-struct)) (result (ref $struct.B))
+ (func $structs (type $ref|$struct.A|_ref?|$struct.A|_ref?|$grandchild|_ref?|$struct.C|_ref?|$nested-child-struct|_=>_ref|$struct.B|) (param $x (ref $struct.A)) (param $struct.A.prime (ref null $struct.A)) (param $grandchild (ref null $grandchild)) (param $struct.C (ref null $struct.C)) (param $nested-child-struct (ref null $nested-child-struct)) (result (ref $struct.B))
(local $tA (ref null $struct.A))
(local $tB (ref null $struct.B))
(local $tc (ref null $struct.C))
@@ -113,7 +114,7 @@
)
(unreachable)
)
- (func $arrays (param $x (ref $vector)) (param $nested-child-array (ref null $nested-child-array)) (param $grandchild (ref null $grandchild)) (result (ref $matrix))
+ (func $arrays (type $ref|$vector|_ref?|$nested-child-array|_ref?|$grandchild|_=>_ref|$matrix|) (param $x (ref $vector)) (param $nested-child-array (ref null $nested-child-array)) (param $grandchild (ref null $grandchild)) (result (ref $matrix))
(local $tv (ref null $vector))
(local $tm (ref null $matrix))
(local $tb (ref null $bytes))
@@ -172,7 +173,7 @@
)
(unreachable)
)
- (func $ref.is_X (param $x anyref)
+ (func $ref.is_X (type $anyref_=>_none) (param $x anyref)
(if
(ref.is_func
(local.get $x)
@@ -192,7 +193,7 @@
(unreachable)
)
)
- (func $ref.as_X (param $x anyref)
+ (func $ref.as_X (type $anyref_=>_none) (param $x anyref)
(drop
(ref.as_non_null
(local.get $x)
@@ -214,7 +215,7 @@
)
)
)
- (func $br_on_X (param $x anyref)
+ (func $br_on_X (type $anyref_=>_none) (param $x anyref)
(local $y anyref)
(local $z anyref)
(local $temp-func funcref)
@@ -296,40 +297,40 @@
)
)
)
- (func $unreachables-1
+ (func $unreachables-1 (type $none_=>_none)
(unreachable)
)
- (func $unreachables-2 (param $struct.C (ref null $struct.C))
+ (func $unreachables-2 (type $ref?|$struct.C|_=>_none) (param $struct.C (ref null $struct.C))
(drop
(local.get $struct.C)
)
(unreachable)
)
- (func $unreachables-3
+ (func $unreachables-3 (type $none_=>_none)
(unreachable)
)
- (func $unreachables-4
+ (func $unreachables-4 (type $none_=>_none)
(unreachable)
)
- (func $unreachables-array-1
+ (func $unreachables-array-1 (type $none_=>_none)
(unreachable)
)
- (func $unreachables-array-2 (param $vector (ref null $vector))
+ (func $unreachables-array-2 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(drop
(local.get $vector)
)
(unreachable)
)
- (func $unreachables-array-3
+ (func $unreachables-array-3 (type $none_=>_none)
(unreachable)
)
- (func $unreachables-array-4 (param $vector (ref null $vector))
+ (func $unreachables-array-4 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(drop
(local.get $vector)
)
(unreachable)
)
- (func $unreachables-array-5 (param $vector (ref null $vector))
+ (func $unreachables-array-5 (type $ref?|$vector|_=>_none) (param $vector (ref null $vector))
(drop
(local.get $vector)
)
@@ -338,10 +339,10 @@
)
(unreachable)
)
- (func $unreachables-array-6
+ (func $unreachables-array-6 (type $none_=>_none)
(unreachable)
)
- (func $array-copy (param $x (ref $vector)) (param $y (ref null $vector))
+ (func $array-copy (type $ref|$vector|_ref?|$vector|_=>_none) (param $x (ref $vector)) (param $y (ref null $vector))
(array.copy $vector $vector
(local.get $x)
(i32.const 11)
@@ -350,7 +351,7 @@
(i32.const 1337)
)
)
- (func $array-init (result (ref $vector))
+ (func $array-init (type $none_=>_ref|$vector|) (result (ref $vector))
(array.init_static $vector
(f64.const 1)
(f64.const 2)
@@ -358,14 +359,14 @@
(f64.const 8)
)
)
- (func $array-init-packed (result (ref $bytes))
+ (func $array-init-packed (type $none_=>_ref|$bytes|) (result (ref $bytes))
(array.init_static $bytes
(i32.const 4)
(i32.const 2)
(i32.const 1)
)
)
- (func $static-operations
+ (func $static-operations (type $none_=>_none)
(local $temp.A (ref null $struct.A))
(local $temp.B (ref null $struct.B))
(drop
diff --git a/test/heap-types.wast.fromBinary.noDebugInfo b/test/heap-types.wast.fromBinary.noDebugInfo
index 53c3b0bd6..e1b90ef4c 100644
--- a/test/heap-types.wast.fromBinary.noDebugInfo
+++ b/test/heap-types.wast.fromBinary.noDebugInfo
@@ -6,13 +6,14 @@
(type $[mut:ref?|[mut:f64]|] (array (mut (ref null $[mut:f64]))))
(type $[mut:i8] (array (mut i8)))
(type ${mut:f32} (struct (field (mut f32))))
- (type ${i32_i64} (struct (field i32) (field i64)))
+ (type ${} (struct ))
+ (type ${i32} (struct_subtype (field i32) ${}))
+ (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
(type $anyref_=>_none (func (param anyref)))
(type $ref?|[mut:f64]|_=>_none (func (param (ref null $[mut:f64]))))
(type ${mut:ref|{i32}|} (struct (field (mut (ref ${i32})))))
(type $[mut:i32] (array (mut i32)))
(type $[mut:ref|{i32}|] (array (mut (ref ${i32}))))
- (type ${i32} (struct (field i32)))
(type $ref|{i32_f32_f64}|_ref?|{i32_f32_f64}|_ref?|{i32_i64}|_ref?|{mut:f32}|_ref?|{mut:ref|{i32}|}|_=>_ref|{i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}| (func (param (ref ${i32_f32_f64}) (ref null ${i32_f32_f64}) (ref null ${i32_i64}) (ref null ${mut:f32}) (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}))))
(type $ref|[mut:f64]|_ref?|[mut:ref|{i32}|]|_ref?|{i32_i64}|_=>_ref|[mut:ref?|[mut:f64]|]| (func (param (ref $[mut:f64]) (ref null $[mut:ref|{i32}|]) (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|]))))
(type $ref?|{mut:f32}|_=>_none (func (param (ref null ${mut:f32}))))
@@ -20,7 +21,7 @@
(type $none_=>_ref|[mut:f64]| (func (result (ref $[mut:f64]))))
(type $none_=>_ref|[mut:i8]| (func (result (ref $[mut:i8]))))
(global $global$0 (ref ${i32_f32_f64}) (struct.new_default ${i32_f32_f64}))
- (func $0 (param $0 (ref ${i32_f32_f64})) (param $1 (ref null ${i32_f32_f64})) (param $2 (ref null ${i32_i64})) (param $3 (ref null ${mut:f32})) (param $4 (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}))
+ (func $0 (type $ref|{i32_f32_f64}|_ref?|{i32_f32_f64}|_ref?|{i32_i64}|_ref?|{mut:f32}|_ref?|{mut:ref|{i32}|}|_=>_ref|{i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}|) (param $0 (ref ${i32_f32_f64})) (param $1 (ref null ${i32_f32_f64})) (param $2 (ref null ${i32_i64})) (param $3 (ref null ${mut:f32})) (param $4 (ref null ${mut:ref|{i32}|})) (result (ref ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}))
(local $5 (ref null ${i32_f32_f64}))
(local $6 (ref null ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}))
(local $7 (ref null ${mut:f32}))
@@ -113,7 +114,7 @@
)
(unreachable)
)
- (func $1 (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:ref|{i32}|])) (param $2 (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|]))
+ (func $1 (type $ref|[mut:f64]|_ref?|[mut:ref|{i32}|]|_ref?|{i32_i64}|_=>_ref|[mut:ref?|[mut:f64]|]|) (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:ref|{i32}|])) (param $2 (ref null ${i32_i64})) (result (ref $[mut:ref?|[mut:f64]|]))
(local $3 (ref null $[mut:f64]))
(local $4 (ref null $[mut:ref?|[mut:f64]|]))
(local $5 (ref null $[mut:i8]))
@@ -172,7 +173,7 @@
)
(unreachable)
)
- (func $2 (param $0 anyref)
+ (func $2 (type $anyref_=>_none) (param $0 anyref)
(if
(ref.is_func
(local.get $0)
@@ -192,7 +193,7 @@
(unreachable)
)
)
- (func $3 (param $0 anyref)
+ (func $3 (type $anyref_=>_none) (param $0 anyref)
(drop
(ref.as_non_null
(local.get $0)
@@ -214,7 +215,7 @@
)
)
)
- (func $4 (param $0 anyref)
+ (func $4 (type $anyref_=>_none) (param $0 anyref)
(local $1 anyref)
(local $2 anyref)
(local $3 funcref)
@@ -296,40 +297,40 @@
)
)
)
- (func $5
+ (func $5 (type $none_=>_none)
(unreachable)
)
- (func $6 (param $0 (ref null ${mut:f32}))
+ (func $6 (type $ref?|{mut:f32}|_=>_none) (param $0 (ref null ${mut:f32}))
(drop
(local.get $0)
)
(unreachable)
)
- (func $7
+ (func $7 (type $none_=>_none)
(unreachable)
)
- (func $8
+ (func $8 (type $none_=>_none)
(unreachable)
)
- (func $9
+ (func $9 (type $none_=>_none)
(unreachable)
)
- (func $10 (param $0 (ref null $[mut:f64]))
+ (func $10 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64]))
(drop
(local.get $0)
)
(unreachable)
)
- (func $11
+ (func $11 (type $none_=>_none)
(unreachable)
)
- (func $12 (param $0 (ref null $[mut:f64]))
+ (func $12 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64]))
(drop
(local.get $0)
)
(unreachable)
)
- (func $13 (param $0 (ref null $[mut:f64]))
+ (func $13 (type $ref?|[mut:f64]|_=>_none) (param $0 (ref null $[mut:f64]))
(drop
(local.get $0)
)
@@ -338,10 +339,10 @@
)
(unreachable)
)
- (func $14
+ (func $14 (type $none_=>_none)
(unreachable)
)
- (func $15 (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:f64]))
+ (func $15 (type $ref|[mut:f64]|_ref?|[mut:f64]|_=>_none) (param $0 (ref $[mut:f64])) (param $1 (ref null $[mut:f64]))
(array.copy $[mut:f64] $[mut:f64]
(local.get $0)
(i32.const 11)
@@ -350,7 +351,7 @@
(i32.const 1337)
)
)
- (func $16 (result (ref $[mut:f64]))
+ (func $16 (type $none_=>_ref|[mut:f64]|) (result (ref $[mut:f64]))
(array.init_static $[mut:f64]
(f64.const 1)
(f64.const 2)
@@ -358,14 +359,14 @@
(f64.const 8)
)
)
- (func $17 (result (ref $[mut:i8]))
+ (func $17 (type $none_=>_ref|[mut:i8]|) (result (ref $[mut:i8]))
(array.init_static $[mut:i8]
(i32.const 4)
(i32.const 2)
(i32.const 1)
)
)
- (func $18
+ (func $18 (type $none_=>_none)
(local $0 (ref null ${i32_f32_f64}))
(local $1 (ref null ${i8_mut:i16_ref|{i32_f32_f64}|_mut:ref|{i32_f32_f64}|}))
(drop
diff --git a/test/kitchen_sink.wast.from-wast b/test/kitchen_sink.wast.from-wast
index bdf6279b7..db039b252 100644
--- a/test/kitchen_sink.wast.from-wast
+++ b/test/kitchen_sink.wast.from-wast
@@ -2,7 +2,7 @@
(type $0 (func (result i32)))
(memory $0 4096 4096)
(data (i32.const 1026) "\14\00")
- (func $kitchensink (result i32)
+ (func $kitchensink (type $0) (result i32)
(block $block0 (result i32)
(drop
(i32.add
diff --git a/test/kitchen_sink.wast.fromBinary b/test/kitchen_sink.wast.fromBinary
index e0d20d32f..ad698edb1 100644
--- a/test/kitchen_sink.wast.fromBinary
+++ b/test/kitchen_sink.wast.fromBinary
@@ -2,7 +2,7 @@
(type $0 (func (result i32)))
(memory $0 4096 4096)
(data (i32.const 1026) "\14\00")
- (func $kitchensink (result i32)
+ (func $kitchensink (type $0) (result i32)
(drop
(i32.add
(i32.const 10)
diff --git a/test/kitchen_sink.wast.fromBinary.noDebugInfo b/test/kitchen_sink.wast.fromBinary.noDebugInfo
index 18e0ddb7a..791956d4b 100644
--- a/test/kitchen_sink.wast.fromBinary.noDebugInfo
+++ b/test/kitchen_sink.wast.fromBinary.noDebugInfo
@@ -2,7 +2,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 4096 4096)
(data (i32.const 1026) "\14\00")
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(drop
(i32.add
(i32.const 10)
diff --git a/test/lit/array-new-seg-note-count.wast b/test/lit/array-new-seg-note-count.wast
index 45c08e313..43720e731 100644
--- a/test/lit/array-new-seg-note-count.wast
+++ b/test/lit/array-new-seg-note-count.wast
@@ -10,7 +10,7 @@
;; CHECK: (data "")
(data "")
- ;; CHECK: (func $test (result (ref $vec))
+ ;; CHECK: (func $test (type $none_=>_ref|$vec|) (result (ref $vec))
;; CHECK-NEXT: (array.new_data $vec 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
diff --git a/test/lit/arrays.wast b/test/lit/arrays.wast
index bccbaeb09..8cadc14fb 100644
--- a/test/lit/arrays.wast
+++ b/test/lit/arrays.wast
@@ -45,12 +45,12 @@
(elem func $len $impossible-len $unreachable-len)
- ;; CHECK: (func $len (param $a (ref array)) (result i32)
+ ;; CHECK: (func $len (type $ref|array|_=>_i32) (param $a (ref array)) (result i32)
;; CHECK-NEXT: (array.len
;; CHECK-NEXT: (local.get $a)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $len (param $a (ref array)) (result i32)
+ ;; ROUNDTRIP: (func $len (type $ref|array|_=>_i32) (param $a (ref array)) (result i32)
;; ROUNDTRIP-NEXT: (array.len
;; ROUNDTRIP-NEXT: (local.get $a)
;; ROUNDTRIP-NEXT: )
@@ -62,12 +62,12 @@
)
)
- ;; CHECK: (func $impossible-len (param $none nullref) (result i32)
+ ;; CHECK: (func $impossible-len (type $nullref_=>_i32) (param $none nullref) (result i32)
;; CHECK-NEXT: (array.len
;; CHECK-NEXT: (local.get $none)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $impossible-len (param $none nullref) (result i32)
+ ;; ROUNDTRIP: (func $impossible-len (type $nullref_=>_i32) (param $none nullref) (result i32)
;; ROUNDTRIP-NEXT: (array.len
;; ROUNDTRIP-NEXT: (local.get $none)
;; ROUNDTRIP-NEXT: )
@@ -78,12 +78,12 @@
)
)
- ;; CHECK: (func $unreachable-len (param $a arrayref) (result i32)
+ ;; CHECK: (func $unreachable-len (type $arrayref_=>_i32) (param $a arrayref) (result i32)
;; CHECK-NEXT: (array.len
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $unreachable-len (param $a arrayref) (result i32)
+ ;; ROUNDTRIP: (func $unreachable-len (type $arrayref_=>_i32) (param $a arrayref) (result i32)
;; ROUNDTRIP-NEXT: (unreachable)
;; ROUNDTRIP-NEXT: )
(func $unreachable-len (param $a arrayref) (result i32)
@@ -92,12 +92,12 @@
)
)
- ;; CHECK: (func $unannotated-len (param $a arrayref) (result i32)
+ ;; CHECK: (func $unannotated-len (type $arrayref_=>_i32) (param $a arrayref) (result i32)
;; CHECK-NEXT: (array.len
;; CHECK-NEXT: (local.get $a)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $unannotated-len (param $a arrayref) (result i32)
+ ;; ROUNDTRIP: (func $unannotated-len (type $arrayref_=>_i32) (param $a arrayref) (result i32)
;; ROUNDTRIP-NEXT: (array.len
;; ROUNDTRIP-NEXT: (local.get $a)
;; ROUNDTRIP-NEXT: )
@@ -108,13 +108,13 @@
)
)
- ;; CHECK: (func $new-data (result (ref $byte-array))
+ ;; CHECK: (func $new-data (type $none_=>_ref|$byte-array|) (result (ref $byte-array))
;; CHECK-NEXT: (array.new_data $byte-array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $new-data (result (ref $byte-array))
+ ;; ROUNDTRIP: (func $new-data (type $none_=>_ref|$byte-array|) (result (ref $byte-array))
;; ROUNDTRIP-NEXT: (array.new_data $byte-array 0
;; ROUNDTRIP-NEXT: (i32.const 0)
;; ROUNDTRIP-NEXT: (i32.const 5)
@@ -127,13 +127,13 @@
)
)
- ;; CHECK: (func $new-elem (result (ref $func-array))
+ ;; CHECK: (func $new-elem (type $none_=>_ref|$func-array|) (result (ref $func-array))
;; CHECK-NEXT: (array.new_elem $func-array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; ROUNDTRIP: (func $new-elem (result (ref $func-array))
+ ;; ROUNDTRIP: (func $new-elem (type $none_=>_ref|$func-array|) (result (ref $func-array))
;; ROUNDTRIP-NEXT: (array.new_elem $func-array 0
;; ROUNDTRIP-NEXT: (i32.const 0)
;; ROUNDTRIP-NEXT: (i32.const 3)
diff --git a/test/lit/binary/annotated-array-len.test b/test/lit/binary/annotated-array-len.test
index a8eb08fe7..62e51fcf3 100644
--- a/test/lit/binary/annotated-array-len.test
+++ b/test/lit/binary/annotated-array-len.test
@@ -5,9 +5,9 @@
;; RUN: wasm-dis %s.wasm -all --nominal | filecheck %s
-;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+;; CHECK: (type $none_=>_i32 (func (result i32)))
-;; CHECK: (type $[mut:i8] (array_subtype (mut i8) data))
+;; CHECK: (type $[mut:i8] (array (mut i8)))
;; CHECK: (func $0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (array.len
diff --git a/test/lit/binary/prototype-nominal-format.test b/test/lit/binary/prototype-nominal-format.test
index 98ed51158..1f9d27951 100644
--- a/test/lit/binary/prototype-nominal-format.test
+++ b/test/lit/binary/prototype-nominal-format.test
@@ -4,14 +4,14 @@
;; RUN: wasm-dis %s.wasm -all --nominal | filecheck %s
;; CHECK: (module
-;; CHECK-NEXT: (type $super-struct (struct_subtype (field i32) data))
-;; CHECK-NEXT: (type $sub-struct (struct_subtype (field i32) (field i64) data))
-;; CHECK-NEXT: (type $none_=>_ref|$super-struct| (func_subtype (result (ref $super-struct)) func))
-;; CHECK-NEXT: (type $none_=>_ref|$sub-struct| (func_subtype (result (ref $sub-struct)) func))
-;; CHECK-NEXT: (type $none_=>_ref|$super-array| (func_subtype (result (ref $super-array)) func))
-;; CHECK-NEXT: (type $none_=>_ref|$sub-array| (func_subtype (result (ref $sub-array)) func))
-;; CHECK-NEXT: (type $super-array (array_subtype (ref $super-struct) data))
-;; CHECK-NEXT: (type $sub-array (array_subtype (ref $sub-struct) data))
+;; CHECK-NEXT: (type $super-struct (struct (field i32)))
+;; CHECK-NEXT: (type $sub-struct (struct (field i32) (field i64)))
+;; CHECK-NEXT: (type $none_=>_ref|$super-struct| (func (result (ref $super-struct))))
+;; CHECK-NEXT: (type $none_=>_ref|$sub-struct| (func (result (ref $sub-struct))))
+;; CHECK-NEXT: (type $none_=>_ref|$super-array| (func (result (ref $super-array))))
+;; CHECK-NEXT: (type $none_=>_ref|$sub-array| (func (result (ref $sub-array))))
+;; CHECK-NEXT: (type $super-array (array (ref $super-struct)))
+;; CHECK-NEXT: (type $sub-array (array (ref $sub-struct)))
;; CHECK-NEXT: (func $make-super-struct (type $none_=>_ref|$super-struct|) (result (ref $super-struct))
;; CHECK-NEXT: (call $make-sub-struct)
;; CHECK-NEXT: )
diff --git a/test/lit/extern-conversions.wast b/test/lit/extern-conversions.wast
index d3ad4d2d5..a421031c9 100644
--- a/test/lit/extern-conversions.wast
+++ b/test/lit/extern-conversions.wast
@@ -15,7 +15,7 @@
;; CHECK: (export "int" (func $extern.internalize))
- ;; CHECK: (func $extern.externalize (param $0 (ref any)) (result (ref extern))
+ ;; CHECK: (func $extern.externalize (type $ref|any|_=>_ref|extern|) (param $0 (ref any)) (result (ref extern))
;; CHECK-NEXT: (extern.externalize
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
@@ -26,7 +26,7 @@
)
)
- ;; CHECK: (func $extern.internalize (param $0 externref) (result anyref)
+ ;; CHECK: (func $extern.internalize (type $externref_=>_anyref) (param $0 externref) (result anyref)
;; CHECK-NEXT: (extern.internalize
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
diff --git a/test/lit/gc-eh.wast b/test/lit/gc-eh.wast
index 335bad525..df2f3b416 100644
--- a/test/lit/gc-eh.wast
+++ b/test/lit/gc-eh.wast
@@ -7,7 +7,7 @@
(module
;; CHECK: (type $A (struct (field (mut i32))))
- ;; NOMNL: (type $A (struct_subtype (field (mut i32)) data))
+ ;; NOMNL: (type $A (struct (field (mut i32))))
(type $A (struct
(field (mut i32))
))
@@ -16,7 +16,7 @@
;; NOMNL: (tag $tagA (param (ref $A)))
(tag $tagA (param (ref $A)))
- ;; CHECK: (func $foo (result (ref null $A))
+ ;; CHECK: (func $foo (type $none_=>_ref?|$A|) (result (ref null $A))
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
diff --git a/test/lit/gc-read-write-effects.wast b/test/lit/gc-read-write-effects.wast
index b7ba2d065..da869e9b9 100644
--- a/test/lit/gc-read-write-effects.wast
+++ b/test/lit/gc-read-write-effects.wast
@@ -8,7 +8,7 @@
(module
;; CHECK: (type $A (struct (field (mut i32))))
- ;; NOMNL: (type $A (struct_subtype (field (mut i32)) data))
+ ;; NOMNL: (type $A (struct (field (mut i32))))
(type $A (struct
(field (mut i32))
))
@@ -24,7 +24,7 @@
;; a.0 = 10
;; return a.0
;;
- ;; CHECK: (func $test (param $x (ref null $A)) (result i32)
+ ;; CHECK: (func $test (type $ref?|$A|_=>_i32) (param $x (ref null $A)) (result i32)
;; CHECK-NEXT: (local $y i32)
;; CHECK-NEXT: (local.set $y
;; CHECK-NEXT: (struct.get $A 0
diff --git a/test/lit/heap-types.wast b/test/lit/heap-types.wast
index 13d37217e..dc71eb41e 100644
--- a/test/lit/heap-types.wast
+++ b/test/lit/heap-types.wast
@@ -11,9 +11,9 @@
(module
;; CHECK: (type $struct.A (struct (field i32)))
(type $struct.A (struct i32))
- ;; NOMNL: (type $struct.B (struct_subtype (field i32) data))
+ ;; NOMNL: (type $struct.B (struct (field i32)))
(type $struct.B (struct i32))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $struct.A
;; CHECK-NEXT: (ref.null none)
@@ -37,9 +37,9 @@
(module
;; CHECK: (type $struct.A (struct (field i32)))
(type $struct.A (struct i32))
- ;; NOMNL: (type $struct.B (struct_subtype (field i32) data))
+ ;; NOMNL: (type $struct.B (struct (field i32)))
(type $struct.B (struct i32))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct.A
;; CHECK-NEXT: (ref.null none)
@@ -62,9 +62,9 @@
(module
;; CHECK: (type $struct.A (struct (field i32)))
- ;; NOMNL: (type $struct.A (struct_subtype (field i32) data))
+ ;; NOMNL: (type $struct.A (struct (field i32)))
(type $struct.A (struct i32))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.new_default $struct.A)
;; CHECK-NEXT: )
@@ -83,9 +83,9 @@
(module
;; CHECK: (type $vector (array (mut f64)))
- ;; NOMNL: (type $vector (array_subtype (mut f64) data))
+ ;; NOMNL: (type $vector (array (mut f64)))
(type $vector (array (mut f64)))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (array.new $vector
;; CHECK-NEXT: (f64.const 3.14159)
@@ -113,9 +113,9 @@
(module
;; CHECK: (type $vector (array (mut f64)))
- ;; NOMNL: (type $vector (array_subtype (mut f64) data))
+ ;; NOMNL: (type $vector (array (mut f64)))
(type $vector (array (mut f64)))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (array.init_static $vector
;; CHECK-NEXT: (f64.const 1)
diff --git a/test/lit/isorecursive-good.wast b/test/lit/isorecursive-good.wast
index 2d38bc9d2..350aabcf9 100644
--- a/test/lit/isorecursive-good.wast
+++ b/test/lit/isorecursive-good.wast
@@ -9,8 +9,8 @@
(rec
;; HYBRID: (rec
- ;; HYBRID-NEXT: (type $super-struct (struct_subtype (field i32) data))
- ;; NOMINAL: (type $super-struct (struct_subtype (field i32) data))
+ ;; HYBRID-NEXT: (type $super-struct (struct (field i32)))
+ ;; NOMINAL: (type $super-struct (struct (field i32)))
(type $super-struct (struct i32))
;; HYBRID: (type $sub-struct (struct_subtype (field i32) (field i64) $super-struct))
;; NOMINAL: (type $sub-struct (struct_subtype (field i32) (field i64) $super-struct))
@@ -19,8 +19,8 @@
(rec
;; HYBRID: (rec
- ;; HYBRID-NEXT: (type $super-array (array_subtype (ref $super-struct) data))
- ;; NOMINAL: (type $super-array (array_subtype (ref $super-struct) data))
+ ;; HYBRID-NEXT: (type $super-array (array (ref $super-struct)))
+ ;; NOMINAL: (type $super-array (array (ref $super-struct)))
(type $super-array (array (ref $super-struct)))
;; HYBRID: (type $sub-array (array_subtype (ref $sub-struct) $super-array))
;; NOMINAL: (type $sub-array (array_subtype (ref $sub-struct) $super-array))
diff --git a/test/lit/isorecursive-output-ordering.wast b/test/lit/isorecursive-output-ordering.wast
index b7fd614e5..a287158f2 100644
--- a/test/lit/isorecursive-output-ordering.wast
+++ b/test/lit/isorecursive-output-ordering.wast
@@ -9,22 +9,22 @@
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $unused-6 (struct_subtype data))
+ ;; CHECK-NEXT: (type $unused-6 (struct ))
- ;; CHECK: (type $used-a-bit (struct_subtype data))
+ ;; CHECK: (type $used-a-bit (struct ))
;; CHECK: (rec
- ;; CHECK-NEXT: (type $unused-1 (struct_subtype data))
+ ;; CHECK-NEXT: (type $unused-1 (struct ))
(type $unused-1 (struct_subtype data))
- ;; CHECK: (type $unused-2 (struct_subtype data))
+ ;; CHECK: (type $unused-2 (struct ))
(type $unused-2 (struct_subtype data))
- ;; CHECK: (type $unused-3 (struct_subtype data))
+ ;; CHECK: (type $unused-3 (struct ))
(type $unused-3 (struct_subtype data))
- ;; CHECK: (type $unused-4 (struct_subtype data))
+ ;; CHECK: (type $unused-4 (struct ))
(type $unused-4 (struct_subtype data))
- ;; CHECK: (type $used-a-lot (struct_subtype data))
+ ;; CHECK: (type $used-a-lot (struct ))
(type $used-a-lot (struct_subtype data))
- ;; CHECK: (type $unused-5 (struct_subtype data))
+ ;; CHECK: (type $unused-5 (struct ))
(type $unused-5 (struct_subtype data))
)
@@ -47,9 +47,9 @@
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $leaf (struct_subtype data))
+ ;; CHECK-NEXT: (type $leaf (struct ))
(type $leaf (struct_subtype data))
- ;; CHECK: (type $unused (struct_subtype data))
+ ;; CHECK: (type $unused (struct ))
(type $unused (struct_subtype data))
)
@@ -57,12 +57,12 @@
;; CHECK: (rec
;; CHECK-NEXT: (type $shrub (struct_subtype $leaf))
- ;; CHECK: (type $used-a-ton (struct_subtype data))
+ ;; CHECK: (type $used-a-ton (struct ))
;; CHECK: (rec
- ;; CHECK-NEXT: (type $twig (struct_subtype data))
+ ;; CHECK-NEXT: (type $twig (struct ))
(type $twig (struct_subtype data))
- ;; CHECK: (type $used-a-bit (struct_subtype (field (ref $leaf)) data))
+ ;; CHECK: (type $used-a-bit (struct (field (ref $leaf))))
(type $used-a-bit (struct_subtype (ref $leaf) data))
)
@@ -73,7 +73,7 @@
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $root (struct_subtype data))
+ ;; CHECK-NEXT: (type $root (struct ))
(type $root (struct_subtype data))
;; CHECK: (type $used-a-lot (struct_subtype $twig))
(type $used-a-lot (struct_subtype $twig))
@@ -99,7 +99,7 @@
;; Test that basic heap type children do not trigger assertions.
(rec
- ;; CHECK: (type $contains-basic (struct_subtype (field (ref any)) data))
+ ;; CHECK: (type $contains-basic (struct (field (ref any))))
(type $contains-basic (struct_subtype (ref any) data))
)
diff --git a/test/lit/isorecursive-singleton-group.wast b/test/lit/isorecursive-singleton-group.wast
index bde2848bf..f5f91c516 100644
--- a/test/lit/isorecursive-singleton-group.wast
+++ b/test/lit/isorecursive-singleton-group.wast
@@ -10,7 +10,7 @@
(rec
- ;; CHECK: (type $singleton (struct_subtype data))
+ ;; CHECK: (type $singleton (struct ))
(type $singleton (struct_subtype data))
)
diff --git a/test/lit/isorecursive-whole-group.wast b/test/lit/isorecursive-whole-group.wast
index 70f2f1e4e..c202814c3 100644
--- a/test/lit/isorecursive-whole-group.wast
+++ b/test/lit/isorecursive-whole-group.wast
@@ -11,9 +11,9 @@
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $used (struct_subtype data))
+ ;; CHECK-NEXT: (type $used (struct ))
(type $used (struct_subtype data))
- ;; CHECK: (type $unused (struct_subtype data))
+ ;; CHECK: (type $unused (struct ))
(type $unused (struct_subtype data))
)
diff --git a/test/lit/lub-bug-3843.wast b/test/lit/lub-bug-3843.wast
index 768d47fdc..8bf384c71 100644
--- a/test/lit/lub-bug-3843.wast
+++ b/test/lit/lub-bug-3843.wast
@@ -1,5 +1,5 @@
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
-;; RUN: wasm-opt %s -all --precompute -S -o - | filecheck %s
+;; RUN: wasm-opt %s -all --precompute --structural -S -o - | filecheck %s
;; RUN: wasm-opt %s -all --precompute --nominal -S -o - | filecheck %s --check-prefix NOMNL
;; Regression test for a bug (#3843) in which the LUB calculation done during
@@ -8,7 +8,7 @@
(module
;; CHECK: (type $A (struct (field (ref null $C))))
- ;; NOMNL: (type $A (struct_subtype (field (ref null $C)) data))
+ ;; NOMNL: (type $A (struct (field (ref null $C))))
(type $A (struct (field (ref null $C))))
;; CHECK: (type $B (struct (field (ref null $D))))
@@ -18,7 +18,7 @@
;; CHECK: (type $C (struct (field (mut (ref $A)))))
;; CHECK: (type $D (struct (field (mut (ref $A))) (field (mut (ref $A)))))
- ;; NOMNL: (type $C (struct_subtype (field (mut (ref $A))) data))
+ ;; NOMNL: (type $C (struct (field (mut (ref $A)))))
;; NOMNL: (type $D (struct_subtype (field (mut (ref $A))) (field (mut (ref $A))) $C))
(type $D (struct_subtype (field (mut (ref $A))) (field (mut (ref $A))) $C))
diff --git a/test/lit/memory64-limits.wast b/test/lit/memory64-limits.wast
index f2d395a13..aecfee725 100644
--- a/test/lit/memory64-limits.wast
+++ b/test/lit/memory64-limits.wast
@@ -1,31 +1,32 @@
+;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s
-;; CHECK: (module
-;; CHECK-NEXT: (type $none_=>_i64 (func (result i64)))
-;; CHECK-NEXT: (type $none_=>_none (func))
-;; CHECK-NEXT: (memory $0 i64 1 4294967296)
-;; CHECK-NEXT: (func $load_i64 (result i64)
-;; CHECK-NEXT: (i64.load offset=8589934592
-;; CHECK-NEXT: (i64.const 4294967296)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (func $store
-;; CHECK-NEXT: (i64.store offset=8589934592
-;; CHECK-NEXT: (i64.const 4294967296)
-;; CHECK-NEXT: (i64.const 123)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT:)
(module
+ ;; CHECK: (type $none_=>_i64 (func (result i64)))
+
+ ;; CHECK: (type $none_=>_none (func))
+
+ ;; CHECK: (memory $0 i64 1 4294967296)
(memory $0 i64 1 4294967296)
+ ;; CHECK: (func $load_i64 (type $none_=>_i64) (result i64)
+ ;; CHECK-NEXT: (i64.load offset=8589934592
+ ;; CHECK-NEXT: (i64.const 4294967296)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
(func $load_i64 (result i64)
(i64.load offset=8589934592
(i64.const 0x100000000)
)
)
+ ;; CHECK: (func $store (type $none_=>_none)
+ ;; CHECK-NEXT: (i64.store offset=8589934592
+ ;; CHECK-NEXT: (i64.const 4294967296)
+ ;; CHECK-NEXT: (i64.const 123)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
(func $store (result)
(i64.store offset=8589934592
(i64.const 0x100000000)
diff --git a/test/lit/memory64-ops.wast b/test/lit/memory64-ops.wast
index 5ed44df59..e6c4ca4ec 100644
--- a/test/lit/memory64-ops.wast
+++ b/test/lit/memory64-ops.wast
@@ -6,7 +6,7 @@
;; CHECK: (memory $mem i64 1)
(memory $mem i64 1)
- ;; CHECK: (func $get_heap_size (result i64)
+ ;; CHECK: (func $get_heap_size (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (i64.shl
;; CHECK-NEXT: (memory.size)
;; CHECK-NEXT: (i64.const 16)
@@ -19,7 +19,7 @@
)
)
- ;; CHECK: (func $grow-heap (result i64)
+ ;; CHECK: (func $grow-heap (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (memory.grow
;; CHECK-NEXT: (i64.const 32)
;; CHECK-NEXT: )
diff --git a/test/lit/nominal-chain.wast b/test/lit/nominal-chain.wast
index 1403fbea4..7a1b3c933 100644
--- a/test/lit/nominal-chain.wast
+++ b/test/lit/nominal-chain.wast
@@ -7,7 +7,7 @@
;; types.
(module
- ;; CHECK: (type $root (struct_subtype data))
+ ;; CHECK: (type $root (struct ))
;; CHECK: (type $trunk (struct_subtype (field i32) $root))
diff --git a/test/lit/nominal-func.wast b/test/lit/nominal-func.wast
index 9e59d6900..600b16bf6 100644
--- a/test/lit/nominal-func.wast
+++ b/test/lit/nominal-func.wast
@@ -6,7 +6,7 @@
;; This will be the "canonical" function type rather than $foo_t
(type $bad_t (func))
- ;; CHECK: (type $foo_t (func_subtype func))
+ ;; CHECK: (type $foo_t (func))
(type $foo_t (func))
;; CHECK: (func $foo (type $foo_t)
diff --git a/test/lit/nominal-good.wast b/test/lit/nominal-good.wast
index 10ecc2901..ec64b466c 100644
--- a/test/lit/nominal-good.wast
+++ b/test/lit/nominal-good.wast
@@ -1,14 +1,16 @@
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s -all --nominal -S -o - | filecheck %s --check-prefix NOMINAL
;; RUN: wasm-opt %s -all --nominal --roundtrip -S -o - | filecheck %s --check-prefix NOMINAL
-;; RUN: wasm-opt %s -all -S -o - | filecheck %s --check-prefix EQUIREC
-;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s --check-prefix EQUIREC
+;; RUN: wasm-opt %s -all --hybrid -S -o - | filecheck %s --check-prefix NOMINAL
+;; RUN: wasm-opt %s -all --hybrid --roundtrip -S -o - | filecheck %s --check-prefix NOMINAL
;; RUN: wasm-opt %s -all --structural -S -o - | filecheck %s --check-prefix EQUIREC
;; RUN: wasm-opt %s -all --structural --roundtrip -S -o - | filecheck %s --check-prefix EQUIREC
+;; Note that --hybrid and --nominal have the same output, so they share the NOMINAL prefix.
+
(module
- ;; NOMINAL: (type $super-struct (struct_subtype (field i32) data))
+ ;; NOMINAL: (type $super-struct (struct (field i32)))
;; EQUIREC: (type $super-struct (struct (field i32)))
(type $super-struct (struct i32))
@@ -16,7 +18,7 @@
;; EQUIREC: (type $sub-struct (struct (field i32) (field i64)))
(type $sub-struct (struct_subtype i32 i64 $super-struct))
- ;; NOMINAL: (type $super-array (array_subtype (ref $super-struct) data))
+ ;; NOMINAL: (type $super-array (array (ref $super-struct)))
;; EQUIREC: (type $super-array (array (ref $super-struct)))
(type $super-array (array (ref $super-struct)))
diff --git a/test/lit/nominal-named-field.wast b/test/lit/nominal-named-field.wast
index 297ad0a9a..e7a5f9628 100644
--- a/test/lit/nominal-named-field.wast
+++ b/test/lit/nominal-named-field.wast
@@ -6,7 +6,7 @@
;; RUN: wasm-opt %s -all --nominal --roundtrip -S -o - | filecheck %s
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) (field f32) (field $named f64) data))
+ ;; CHECK: (type $struct (struct (field (mut i32)) (field f32) (field $named f64)))
(type $struct (struct
(field (mut i32))
(field f32)
diff --git a/test/lit/nominal-to-isorecursive.wast b/test/lit/nominal-to-isorecursive.wast
index 0d31a37a4..783191eb5 100644
--- a/test/lit/nominal-to-isorecursive.wast
+++ b/test/lit/nominal-to-isorecursive.wast
@@ -8,11 +8,11 @@
(module
;; CHECK: (rec
- ;; CHECK-NEXT: (type $make-super-t (func_subtype (result (ref $super)) func))
+ ;; CHECK-NEXT: (type $make-super-t (func (result (ref $super))))
- ;; CHECK: (type $make-sub-t (func_subtype (result (ref $sub)) func))
+ ;; CHECK: (type $make-sub-t (func (result (ref $sub))))
- ;; CHECK: (type $super (struct_subtype (field i32) data))
+ ;; CHECK: (type $super (struct (field i32)))
(type $super (struct i32))
;; CHECK: (type $sub (struct_subtype (field i32) $super))
(type $sub (struct_subtype i32 $super))
diff --git a/test/lit/non-nullable-locals.wast b/test/lit/non-nullable-locals.wast
index 2a469b9e1..4d5321b58 100644
--- a/test/lit/non-nullable-locals.wast
+++ b/test/lit/non-nullable-locals.wast
@@ -13,7 +13,7 @@
;; CHECK: (elem declare func $helper)
- ;; CHECK: (func $no-uses
+ ;; CHECK: (func $no-uses (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -22,7 +22,7 @@
(local $x (ref func))
)
- ;; CHECK: (func $func-scope
+ ;; CHECK: (func $func-scope (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $helper)
@@ -42,7 +42,7 @@
)
)
- ;; CHECK: (func $inner-scope
+ ;; CHECK: (func $inner-scope (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (block $b
;; CHECK-NEXT: (local.set $x
@@ -66,7 +66,7 @@
)
)
- ;; CHECK: (func $func-to-inner
+ ;; CHECK: (func $func-to-inner (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $helper)
@@ -90,7 +90,7 @@
)
)
- ;; CHECK: (func $inner-to-func
+ ;; CHECK: (func $inner-to-func (type $none_=>_none)
;; CHECK-NEXT: (local $x funcref)
;; CHECK-NEXT: (block $b
;; CHECK-NEXT: (local.set $x
@@ -115,7 +115,7 @@
)
)
- ;; CHECK: (func $if-condition
+ ;; CHECK: (func $if-condition (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (call $helper2
@@ -149,7 +149,7 @@
)
)
- ;; CHECK: (func $get-without-set-but-param (param $x (ref func))
+ ;; CHECK: (func $get-without-set-but-param (type $ref|func|_=>_none) (param $x (ref func))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -162,12 +162,12 @@
)
)
- ;; CHECK: (func $helper
+ ;; CHECK: (func $helper (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $helper)
- ;; CHECK: (func $helper2 (param $0 funcref) (result i32)
+ ;; CHECK: (func $helper2 (type $funcref_=>_i32) (param $0 funcref) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $helper2 (param funcref) (result i32)
diff --git a/test/lit/parse-double-unreachable.wast b/test/lit/parse-double-unreachable.wast
index 0dd657a62..333eb6fa9 100644
--- a/test/lit/parse-double-unreachable.wast
+++ b/test/lit/parse-double-unreachable.wast
@@ -7,7 +7,7 @@
(module
- ;; CHECK: (type $array (array_subtype i8 data))
+ ;; CHECK: (type $array (array i8))
(type $array (array i8))
(type $func (func (result i32)))
diff --git a/test/lit/parse-nominal-types-extends.wast b/test/lit/parse-nominal-types-extends.wast
index 9dbf6a0de..e7641937d 100644
--- a/test/lit/parse-nominal-types-extends.wast
+++ b/test/lit/parse-nominal-types-extends.wast
@@ -10,7 +10,7 @@
(module
(type $sub (func) (extends $super))
- ;; CHECK: (type $super (func_subtype func))
+ ;; CHECK: (type $super (func))
(type $super (func))
;; CHECK: (global $g (ref null $super) (ref.null nofunc))
@@ -21,7 +21,7 @@
(module
(type $sub (func (param i32) (result i32)) (extends $super))
- ;; CHECK: (type $super (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $super (func (param i32) (result i32)))
(type $super (func (param i32) (result i32)))
;; CHECK: (global $g (ref null $super) (ref.null nofunc))
@@ -32,7 +32,7 @@
(module
(type $sub (struct) (extends $super))
- ;; CHECK: (type $super (struct_subtype data))
+ ;; CHECK: (type $super (struct ))
(type $super (struct))
;; CHECK: (global $g (ref null $super) (ref.null none))
@@ -43,7 +43,7 @@
(module
(type $sub (struct i32 (field i64)) (extends $super))
- ;; CHECK: (type $super (struct_subtype (field i32) (field i64) data))
+ ;; CHECK: (type $super (struct (field i32) (field i64)))
(type $super (struct (field i32) i64))
;; CHECK: (global $g (ref null $super) (ref.null none))
@@ -54,7 +54,7 @@
(module
(type $sub (array i8) (extends $super))
- ;; CHECK: (type $super (array_subtype i8 data))
+ ;; CHECK: (type $super (array i8))
(type $super (array i8))
;; CHECK: (global $g (ref null $super) (ref.null none))
diff --git a/test/lit/parse-nominal-types.wast b/test/lit/parse-nominal-types.wast
index 6bb0c8383..45f110a36 100644
--- a/test/lit/parse-nominal-types.wast
+++ b/test/lit/parse-nominal-types.wast
@@ -10,7 +10,7 @@
(module
(type $sub (func_subtype $super))
- ;; CHECK: (type $super (func_subtype func))
+ ;; CHECK: (type $super (func))
(type $super (func_subtype func))
;; CHECK: (global $g (ref null $super) (ref.null nofunc))
@@ -21,7 +21,7 @@
(module
(type $sub (func_subtype (param i32) (result i32) $super))
- ;; CHECK: (type $super (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $super (func (param i32) (result i32)))
(type $super (func_subtype (param i32) (result i32) func))
;; CHECK: (global $g (ref null $super) (ref.null nofunc))
@@ -32,7 +32,7 @@
(module
(type $sub (struct_subtype $super))
- ;; CHECK: (type $super (struct_subtype data))
+ ;; CHECK: (type $super (struct ))
(type $super (struct_subtype data))
;; CHECK: (global $g (ref null $super) (ref.null none))
@@ -43,7 +43,7 @@
(module
(type $sub (struct_subtype i32 (field i64) $super))
- ;; CHECK: (type $super (struct_subtype (field i32) (field i64) data))
+ ;; CHECK: (type $super (struct (field i32) (field i64)))
(type $super (struct_subtype (field i32) i64 data))
;; CHECK: (global $g (ref null $super) (ref.null none))
@@ -54,7 +54,7 @@
(module
(type $sub (array_subtype i8 $super))
- ;; CHECK: (type $super (array_subtype i8 data))
+ ;; CHECK: (type $super (array i8))
(type $super (array_subtype i8 data))
;; CHECK: (global $g (ref null $super) (ref.null none))
diff --git a/test/lit/passes/Oz.wast b/test/lit/passes/Oz.wast
index 59bfe46c3..07385a4a4 100644
--- a/test/lit/passes/Oz.wast
+++ b/test/lit/passes/Oz.wast
@@ -5,13 +5,14 @@
(module
(memory 100 100)
- ;; CHECK: (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
+ ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32)))
+ ;; CHECK: (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32)))
- ;; CHECK: (type $none_=>_v128 (func (result v128)))
+ ;; CHECK: (type $none_=>_v128 (func (result v128)))
;; CHECK: (memory $0 100 100)
@@ -37,7 +38,7 @@
;; CHECK: (export "precompute-simd" (func $precompute-simd))
- ;; CHECK: (func $basics (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $basics (type $i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (i32.add
@@ -59,7 +60,7 @@
)
(i32.add (local.get $x2) (local.get $y2))
)
- ;; CHECK: (func $8 (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
+ ;; CHECK: (func $8 (type $i32_i32_i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
;; CHECK-NEXT: (i32.store
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (i32.add
@@ -131,7 +132,7 @@
)
)
- ;; CHECK: (func $9 (; has Stack IR ;) (param $0 i32) (result i32)
+ ;; CHECK: (func $9 (type $i32_=>_i32) (; has Stack IR ;) (param $0 i32) (result i32)
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const -4)
@@ -147,7 +148,7 @@
)
)
- ;; CHECK: (func $10 (; has Stack IR ;) (param $0 i32) (result i32)
+ ;; CHECK: (func $10 (type $i32_=>_i32) (; has Stack IR ;) (param $0 i32) (result i32)
;; CHECK-NEXT: (i32.shl
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 31)
@@ -163,7 +164,7 @@
)
)
- ;; CHECK: (func $11 (; has Stack IR ;) (param $0 i32) (result i32)
+ ;; CHECK: (func $11 (type $i32_=>_i32) (; has Stack IR ;) (param $0 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (return
@@ -193,7 +194,7 @@
)
(i32.const 0)
)
- ;; CHECK: (func $12 (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $12 (type $i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $1
;; CHECK-NEXT: (local.get $0)
@@ -225,7 +226,7 @@
)
(i32.const 0)
)
- ;; CHECK: (func $13 (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $13 (type $i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $1)
@@ -250,7 +251,7 @@
(i32.const 0)
)
- ;; CHECK: (func $14 (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $14 (type $i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 0)
@@ -275,7 +276,7 @@
(i32.const 0)
)
- ;; CHECK: (func $precompute-simd (; has Stack IR ;) (result v128)
+ ;; CHECK: (func $precompute-simd (type $none_=>_v128) (; has Stack IR ;) (result v128)
;; CHECK-NEXT: (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
;; CHECK-NEXT: )
(func $precompute-simd (export "precompute-simd") (result v128)
diff --git a/test/lit/passes/catch-pop-fixup-eh.wast b/test/lit/passes/catch-pop-fixup-eh.wast
index 813bb6899..f50a21a05 100644
--- a/test/lit/passes/catch-pop-fixup-eh.wast
+++ b/test/lit/passes/catch-pop-fixup-eh.wast
@@ -17,7 +17,7 @@
;; CHECK: (tag $e-struct.A (param (ref $struct.A)))
(tag $e-struct.A (param (ref $struct.A)))
- ;; CHECK: (func $pop-within-block1
+ ;; CHECK: (func $pop-within-block1 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -49,7 +49,7 @@
)
)
- ;; CHECK: (func $pop-within-block2
+ ;; CHECK: (func $pop-within-block2 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -97,7 +97,7 @@
)
)
- ;; CHECK: (func $pop-within-block3 (result i32)
+ ;; CHECK: (func $pop-within-block3 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try (result i32)
;; CHECK-NEXT: (do
@@ -138,11 +138,11 @@
)
)
- ;; CHECK: (func $helper
+ ;; CHECK: (func $helper (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $helper)
- ;; CHECK: (func $pop-within-implicit-block1
+ ;; CHECK: (func $pop-within-implicit-block1 (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -171,7 +171,7 @@
)
)
- ;; CHECK: (func $pop-within-implicit-block2
+ ;; CHECK: (func $pop-within-implicit-block2 (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -202,7 +202,7 @@
)
)
- ;; CHECK: (func $pop-within-try (result i32)
+ ;; CHECK: (func $pop-within-try (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try (result i32)
;; CHECK-NEXT: (do
@@ -242,7 +242,7 @@
)
)
- ;; CHECK: (func $pop-within-if-condition (result i32)
+ ;; CHECK: (func $pop-within-if-condition (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try $try (result i32)
;; CHECK-NEXT: (do
;; CHECK-NEXT: (i32.const 0)
@@ -273,7 +273,7 @@
)
)
- ;; CHECK: (func $pop-within-block-within-if-condition
+ ;; CHECK: (func $pop-within-block-within-if-condition (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -317,7 +317,7 @@
)
)
- ;; CHECK: (func $pop-tuple-within-block
+ ;; CHECK: (func $pop-tuple-within-block (type $none_=>_none)
;; CHECK-NEXT: (local $x (i32 f32))
;; CHECK-NEXT: (local $1 (i32 f32))
;; CHECK-NEXT: (try $try
@@ -354,7 +354,7 @@
)
)
- ;; CHECK: (func $pop-non-defaultable-type-within-block
+ ;; CHECK: (func $pop-non-defaultable-type-within-block (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref $struct.A))
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/cfp.wast b/test/lit/passes/cfp.wast
index b1790bd17..e7ca52e6f 100644
--- a/test/lit/passes/cfp.wast
+++ b/test/lit/passes/cfp.wast
@@ -4,9 +4,9 @@
;; name getting in the way)
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
;; CHECK: (func $impossible-get (type $none_=>_none)
;; CHECK-NEXT: (local $struct (ref null $struct))
@@ -32,9 +32,9 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field i64) data))
+ ;; CHECK: (type $struct (struct (field i64)))
(type $struct (struct i64))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $test (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -71,9 +71,9 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field f32) data))
+ ;; CHECK: (type $struct (struct (field f32)))
(type $struct (struct f32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $test (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -109,9 +109,9 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field f32) data))
+ ;; CHECK: (type $struct (struct (field f32)))
(type $struct (struct f32))
- ;; CHECK: (type $f32_ref?|$struct|_=>_none (func_subtype (param f32 (ref null $struct)) func))
+ ;; CHECK: (type $f32_ref?|$struct|_=>_none (func (param f32 (ref null $struct))))
;; CHECK: (func $test (type $f32_ref?|$struct|_=>_none) (param $f f32) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -143,11 +143,11 @@
;; Create in one function, get in another. The 10 should be forwarded to the
;; get.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -187,12 +187,12 @@
;; As before, but with the order of functions reversed to check for any ordering
;; issues.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $get (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -233,9 +233,9 @@
;; Different values assigned in the same function, in different struct.news,
;; so we cannot optimize the struct.get away.
(module
- ;; CHECK: (type $struct (struct_subtype (field f32) data))
+ ;; CHECK: (type $struct (struct (field f32)))
(type $struct (struct f32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $test (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -275,11 +275,11 @@
;; Different values assigned in different functions, and one is a struct.set.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -326,11 +326,11 @@
;; As the last testcase, but the values happen to coincide, so we can optimize
;; the get into a constant.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -381,13 +381,13 @@
;; Check that we look into the fallthrough value that is assigned.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $i32_ref?|$struct|_=>_none (func_subtype (param i32 (ref null $struct)) func))
+ ;; CHECK: (type $i32_ref?|$struct|_=>_none (func (param i32 (ref null $struct))))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -454,9 +454,9 @@
;; Test a function reference instead of a number.
(module
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $struct (struct_subtype (field funcref) data))
+ ;; CHECK: (type $struct (struct (field funcref)))
(type $struct (struct funcref))
;; CHECK: (elem declare func $test)
@@ -494,7 +494,7 @@
;; Test for unreachable creations, sets, and gets.
(module
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -545,11 +545,11 @@
;; subtype, the get must trap anyhow (the reference it receives can
;; only be null in this closed world).
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$substruct|_=>_none (func_subtype (param (ref null $substruct)) func))
+ ;; CHECK: (type $ref?|$substruct|_=>_none (func (param (ref null $substruct))))
;; CHECK: (type $substruct (struct_subtype (field i32) $struct))
(type $substruct (struct_subtype i32 $struct))
@@ -592,11 +592,11 @@
;; will optimize the result to the only possible value. (In practice, though,
;; it will trap anyhow.)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $ref?|$substruct|_=>_none (func_subtype (param (ref null $substruct)) func))
+ ;; CHECK: (type $ref?|$substruct|_=>_none (func (param (ref null $substruct))))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) $struct))
(type $substruct (struct_subtype (mut i32) $struct))
@@ -648,16 +648,16 @@
;; reference to the subtype (we never create a supertype) and so we
;; can optimize.
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -699,14 +699,14 @@
;; Subtyping: Create both a subtype and a supertype, with identical constants
;; for the shared field, and get the supertype.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -759,14 +759,14 @@
;; for the shared field, preventing optimization, as a get of the
;; supertype may receive an instance of the subtype.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -815,16 +815,16 @@
;; shared between the types, but we only create the substruct with
;; one value, so we can optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$substruct|_=>_none (func_subtype (param (ref null $substruct)) func))
+ ;; CHECK: (type $ref?|$substruct|_=>_none (func (param (ref null $substruct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -875,15 +875,15 @@
;; As above, but add a set of $struct. The set prevents the optimization.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
- ;; CHECK: (type $ref?|$substruct|_=>_none (func_subtype (param (ref null $substruct)) func))
+ ;; CHECK: (type $ref?|$substruct|_=>_none (func (param (ref null $substruct))))
;; CHECK: (func $create (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -938,7 +938,7 @@
;; Multi-level subtyping, check that we propagate not just to the immediate
;; supertype but all the way as needed.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct1 (struct (field i32)))
;; CHECK: (type $struct2 (struct_subtype (field i32) (field f64) $struct1))
@@ -949,9 +949,9 @@
(type $struct1 (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func_subtype (param (ref null $struct1) (ref null $struct2) (ref null $struct3)) func))
+ ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func (param (ref null $struct1) (ref null $struct2) (ref null $struct3))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -1075,7 +1075,7 @@
;; different values in the sub-most type. Create the top and bottom types, but
;; not the middle one.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field i32) (field i32) data))
+ ;; CHECK: (type $struct1 (struct (field i32) (field i32)))
;; CHECK: (type $struct2 (struct_subtype (field i32) (field i32) (field f64) (field f64) $struct1))
@@ -1086,9 +1086,9 @@
(type $struct2 (struct_subtype i32 i32 f64 f64 $struct1))
- ;; CHECK: (type $anyref_=>_none (func_subtype (param anyref) func))
+ ;; CHECK: (type $anyref_=>_none (func (param anyref)))
- ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func_subtype (param (ref null $struct1) (ref null $struct2) (ref null $struct3)) func))
+ ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func (param (ref null $struct1) (ref null $struct2) (ref null $struct3))))
;; CHECK: (func $create (type $anyref_=>_none) (param $any anyref)
;; CHECK-NEXT: (drop
@@ -1307,16 +1307,16 @@
;; Multi-level subtyping with a different value in the middle of the chain. We
;; can only optimize $struct3.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct1 (struct (field (mut i32))))
(type $struct1 (struct (mut i32)))
;; CHECK: (type $struct2 (struct_subtype (field (mut i32)) (field f64) $struct1))
(type $struct2 (struct_subtype (mut i32) f64 $struct1))
;; CHECK: (type $struct3 (struct_subtype (field (mut i32)) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype (mut i32) f64 anyref $struct2))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func_subtype (param (ref null $struct1) (ref null $struct2) (ref null $struct3)) func))
+ ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func (param (ref null $struct1) (ref null $struct2) (ref null $struct3))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -1403,7 +1403,7 @@
;; As above, but add not just a new of the middle class with a different value
;; but also a set. That prevents all optimizations.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct1 (struct (field (mut i32))))
;; CHECK: (type $struct2 (struct_subtype (field (mut i32)) (field f64) $struct1))
(type $struct2 (struct_subtype (mut i32) f64 $struct1))
@@ -1413,9 +1413,9 @@
;; CHECK: (type $struct3 (struct_subtype (field (mut i32)) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype (mut i32) f64 anyref $struct2))
- ;; CHECK: (type $ref?|$struct2|_=>_none (func_subtype (param (ref null $struct2)) func))
+ ;; CHECK: (type $ref?|$struct2|_=>_none (func (param (ref null $struct2))))
- ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func_subtype (param (ref null $struct1) (ref null $struct2) (ref null $struct3)) func))
+ ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_ref?|$struct3|_=>_none (func (param (ref null $struct1) (ref null $struct2) (ref null $struct3))))
;; CHECK: (func $create (type $ref?|$struct2|_=>_none) (param $struct2 (ref null $struct2))
;; CHECK-NEXT: (drop
@@ -1506,12 +1506,12 @@
;; Test for a struct with multiple fields, some of which are constant and hence
;; optimizable, and some not. Also test that some have the same type.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) (field f64) (field i32) (field f64) (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32) (field f64) (field i32) (field f64) (field i32)))
(type $struct (struct i32 f64 i32 f64 i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -1630,7 +1630,7 @@
;; sets, and the final subtype C has a create and a get. The set to A should
;; apply to it, preventing optimization.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
@@ -1641,11 +1641,11 @@
(type $B (struct_subtype (mut i32) $A))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CHECK: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; CHECK: (type $ref|$C|_=>_none (func_subtype (param (ref $C)) func))
+ ;; CHECK: (type $ref|$C|_=>_none (func (param (ref $C))))
;; CHECK: (func $create (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -1692,10 +1692,10 @@
;; Copies of a field to itself can be ignored. As a result, we can optimize both
;; of the gets here.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_ref?|$struct|_=>_none (func_subtype (param (ref null $struct) (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_ref?|$struct|_=>_none (func (param (ref null $struct) (ref null $struct))))
;; CHECK: (func $test (type $ref?|$struct|_ref?|$struct|_=>_none) (param $struct (ref null $struct)) (param $other (ref null $struct))
;; CHECK-NEXT: (drop
@@ -1746,11 +1746,11 @@
;; Test of a near-copy, of a similar looking field (same index, and same field
;; type) but in a different struct.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32)) (field (mut i32))))
(type $struct (struct (mut f32) (mut i32)))
- ;; CHECK: (type $ref?|$struct|_ref?|$other|_=>_none (func_subtype (param (ref null $struct) (ref null $other)) func))
+ ;; CHECK: (type $ref?|$struct|_ref?|$other|_=>_none (func (param (ref null $struct) (ref null $other))))
- ;; CHECK: (type $other (struct_subtype (field (mut f64)) (field (mut i32)) data))
+ ;; CHECK: (type $other (struct (field (mut f64)) (field (mut i32))))
(type $other (struct (mut f64) (mut i32)))
;; CHECK: (func $test (type $ref?|$struct|_ref?|$other|_=>_none) (param $struct (ref null $struct)) (param $other (ref null $other))
@@ -1793,10 +1793,10 @@
;; Test of a near-copy, of a different index.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32)) (field (mut i32))))
(type $struct (struct (mut i32) (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $test (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
@@ -1839,10 +1839,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -1881,10 +1881,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global (mut i32) (i32.const 42))
(global $global (mut i32) (i32.const 42))
@@ -1917,10 +1917,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -1968,10 +1968,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2014,10 +2014,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2064,17 +2064,17 @@
;; Test a global type other than i32. Arrays of structs are a realistic case
;; as they are used to implement itables.
- ;; CHECK: (type $itable (array_subtype (ref $vtable) data))
+ ;; CHECK: (type $itable (array (ref $vtable)))
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct funcref))
(type $itable (array (ref $vtable)))
- ;; CHECK: (type $object (struct_subtype (field $itable (ref $itable)) data))
+ ;; CHECK: (type $object (struct (field $itable (ref $itable))))
(type $object (struct (field $itable (ref $itable))))
- ;; CHECK: (type $ref?|$object|_=>_funcref (func_subtype (param (ref null $object)) (result funcref) func))
+ ;; CHECK: (type $ref?|$object|_=>_funcref (func (param (ref null $object)) (result funcref)))
;; CHECK: (global $global (ref $itable) (array.init_static $itable
;; CHECK-NEXT: (struct.new $vtable
diff --git a/test/lit/passes/coalesce-locals-eh.wast b/test/lit/passes/coalesce-locals-eh.wast
index 9a3289776..3f94924a1 100644
--- a/test/lit/passes/coalesce-locals-eh.wast
+++ b/test/lit/passes/coalesce-locals-eh.wast
@@ -4,7 +4,7 @@
(module
;; CHECK: (tag $e (param))
- ;; CHECK: (func $bar (result i32)
+ ;; CHECK: (func $bar (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1984)
;; CHECK-NEXT: )
(func $bar (result i32)
@@ -12,7 +12,7 @@
)
(tag $e)
- ;; CHECK: (func $bug-cfg-traversal (param $0 i32) (result i32)
+ ;; CHECK: (func $bug-cfg-traversal (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (local.set $0
diff --git a/test/lit/passes/coalesce-locals-gc-nn.wast b/test/lit/passes/coalesce-locals-gc-nn.wast
index 69e96ac62..438759dc3 100644
--- a/test/lit/passes/coalesce-locals-gc-nn.wast
+++ b/test/lit/passes/coalesce-locals-gc-nn.wast
@@ -3,7 +3,7 @@
;; RUN: | filecheck %s
(module
- ;; CHECK: (func $nn-locals (param $0 (ref any))
+ ;; CHECK: (func $nn-locals (type $ref|any|_=>_none) (param $0 (ref any))
;; CHECK-NEXT: (local $1 ((ref any) (ref any)))
;; CHECK-NEXT: (local $2 ((ref any) (ref any)))
;; CHECK-NEXT: (local.set $1
@@ -82,7 +82,7 @@
)
)
- ;; CHECK: (func $unreachable-get-of-non-nullable
+ ;; CHECK: (func $unreachable-get-of-non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref any))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (drop
diff --git a/test/lit/passes/coalesce-locals-gc.wast b/test/lit/passes/coalesce-locals-gc.wast
index f8694ce86..db46d4afc 100644
--- a/test/lit/passes/coalesce-locals-gc.wast
+++ b/test/lit/passes/coalesce-locals-gc.wast
@@ -15,13 +15,13 @@
(type $A (struct_subtype (field (ref null data)) data))
- ;; CHECK: (type $B (struct (field (ref data))))
+ ;; CHECK: (type $B (struct_subtype (field (ref data)) $A))
(type $B (struct_subtype (field (ref data)) $A))
;; CHECK: (global $global (ref null $array) (ref.null none))
(global $global (ref null $array) (ref.null $array))
- ;; CHECK: (func $test-dead-get-non-nullable (param $0 (ref data))
+ ;; CHECK: (func $test-dead-get-non-nullable (type $ref|data|_=>_none) (param $0 (ref data))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref data))
@@ -39,7 +39,7 @@
)
)
- ;; CHECK: (func $br_on_null (param $0 (ref null $array)) (result (ref null $array))
+ ;; CHECK: (func $br_on_null (type $ref?|$array|_=>_ref?|$array|) (param $0 (ref null $array)) (result (ref null $array))
;; CHECK-NEXT: (block $label$1 (result (ref null $array))
;; CHECK-NEXT: (block $label$2
;; CHECK-NEXT: (br $label$1
@@ -75,7 +75,7 @@
)
)
- ;; CHECK: (func $nn-dead
+ ;; CHECK: (func $nn-dead (type $none_=>_none)
;; CHECK-NEXT: (local $0 funcref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.func $nn-dead)
@@ -114,7 +114,7 @@
)
)
- ;; CHECK: (func $nn-dead-nameless
+ ;; CHECK: (func $nn-dead-nameless (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref func))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.func $nn-dead)
@@ -145,7 +145,7 @@
)
)
- ;; CHECK: (func $unreachable-get-null
+ ;; CHECK: (func $unreachable-get-null (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 i31ref)
;; CHECK-NEXT: (unreachable)
@@ -174,7 +174,7 @@
)
)
- ;; CHECK: (func $remove-tee-refinalize (param $0 (ref null $A)) (param $1 (ref null $B)) (result dataref)
+ ;; CHECK: (func $remove-tee-refinalize (type $ref?|$A|_ref?|$B|_=>_dataref) (param $0 (ref null $A)) (param $1 (ref null $B)) (result dataref)
;; CHECK-NEXT: (struct.get $A 0
;; CHECK-NEXT: (block (result (ref null $A))
;; CHECK-NEXT: (local.get $1)
@@ -195,7 +195,7 @@
)
)
- ;; CHECK: (func $remove-tee-refinalize-2 (param $0 (ref null $A)) (param $1 (ref null $B)) (result dataref)
+ ;; CHECK: (func $remove-tee-refinalize-2 (type $ref?|$A|_ref?|$B|_=>_dataref) (param $0 (ref null $A)) (param $1 (ref null $B)) (result dataref)
;; CHECK-NEXT: (struct.get $A 0
;; CHECK-NEXT: (block (result (ref null $A))
;; CHECK-NEXT: (local.get $1)
diff --git a/test/lit/passes/code-folding-eh.wast b/test/lit/passes/code-folding-eh.wast
index 11d518475..68d64b764 100644
--- a/test/lit/passes/code-folding-eh.wast
+++ b/test/lit/passes/code-folding-eh.wast
@@ -6,7 +6,7 @@
;; CHECK: (tag $e-i32 (param i32))
(tag $e-i32 (param i32))
- ;; CHECK: (func $pop-test
+ ;; CHECK: (func $pop-test (type $none_=>_none)
;; CHECK-NEXT: (block $folding-inner0
;; CHECK-NEXT: (try
;; CHECK-NEXT: (do
@@ -67,12 +67,12 @@
)
)
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo)
- ;; CHECK: (func $try-call-optimize-terminating-tails (result i32)
+ ;; CHECK: (func $try-call-optimize-terminating-tails (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (call $foo)
@@ -116,7 +116,7 @@
(i32.const 0)
)
- ;; CHECK: (func $try-call-optimize-expression-tails
+ ;; CHECK: (func $try-call-optimize-expression-tails (type $none_=>_none)
;; CHECK-NEXT: (block $x
;; CHECK-NEXT: (try
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/code-pushing-eh.wast b/test/lit/passes/code-pushing-eh.wast
index 294c76898..689e0a9cd 100644
--- a/test/lit/passes/code-pushing-eh.wast
+++ b/test/lit/passes/code-pushing-eh.wast
@@ -7,7 +7,7 @@
;; CHECK: (tag $e (param i32))
(tag $e (param i32))
- ;; CHECK: (func $cannot-push-past-call
+ ;; CHECK: (func $cannot-push-past-call (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (local.set $x
@@ -37,7 +37,7 @@
)
)
- ;; CHECK: (func $cannot-push-past-throw
+ ;; CHECK: (func $cannot-push-past-throw (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (local.set $x
@@ -70,7 +70,7 @@
)
)
- ;; CHECK: (func $can-push-past-try
+ ;; CHECK: (func $can-push-past-try (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (try $try
@@ -115,12 +115,12 @@
)
)
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo)
- ;; CHECK: (func $cannot-push-past-try
+ ;; CHECK: (func $cannot-push-past-try (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (local.set $x
@@ -167,7 +167,7 @@
)
)
- ;; CHECK: (func $cannot-push-past-rethrow-within-catch
+ ;; CHECK: (func $cannot-push-past-rethrow-within-catch (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (local.set $x
@@ -214,7 +214,7 @@
)
)
- ;; CHECK: (func $can-push-past-try-delegate
+ ;; CHECK: (func $can-push-past-try-delegate (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (try $l
@@ -269,7 +269,7 @@
)
)
- ;; CHECK: (func $cannot-push-past-try-delegate
+ ;; CHECK: (func $cannot-push-past-try-delegate (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (local.set $x
@@ -324,7 +324,7 @@
)
)
- ;; CHECK: (func $can-push-past-conditional-throw (param $param i32)
+ ;; CHECK: (func $can-push-past-conditional-throw (type $i32_=>_none) (param $param i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $block
;; CHECK-NEXT: (if
@@ -357,7 +357,7 @@
)
)
- ;; CHECK: (func $cannot-push-past-conditional-throw-extra-use (param $param i32)
+ ;; CHECK: (func $cannot-push-past-conditional-throw-extra-use (type $i32_=>_none) (param $param i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $block
;; CHECK-NEXT: (local.set $x
diff --git a/test/lit/passes/code-pushing-gc.wast b/test/lit/passes/code-pushing-gc.wast
index 9af0fc019..ca89ba247 100644
--- a/test/lit/passes/code-pushing-gc.wast
+++ b/test/lit/passes/code-pushing-gc.wast
@@ -2,7 +2,7 @@
;; RUN: wasm-opt %s --code-pushing -all -S -o - | filecheck %s
(module
- ;; CHECK: (func $br_on
+ ;; CHECK: (func $br_on (type $none_=>_none)
;; CHECK-NEXT: (local $x funcref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $out (result (ref func))
@@ -40,7 +40,7 @@
)
)
- ;; CHECK: (func $br_on_no
+ ;; CHECK: (func $br_on_no (type $none_=>_none)
;; CHECK-NEXT: (local $x funcref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $out (result (ref func))
diff --git a/test/lit/passes/dae-gc-refine-params.wast b/test/lit/passes/dae-gc-refine-params.wast
index a6cfb7ac5..53110efca 100644
--- a/test/lit/passes/dae-gc-refine-params.wast
+++ b/test/lit/passes/dae-gc-refine-params.wast
@@ -3,31 +3,28 @@
;; RUN: wasm-opt %s -all --dae --nominal -S -o - | filecheck %s --check-prefix NOMNL
(module
- ;; CHECK: (type ${} (struct ))
- ;; CHECK: (type ${i32} (struct (field i32)))
- ;; NOMNL: (type ${} (struct_subtype data))
+ ;; CHECK: (type ${} (struct ))
+ ;; NOMNL: (type ${} (struct ))
+ (type ${} (struct))
+ ;; CHECK: (type ${i32} (struct_subtype (field i32) ${}))
;; NOMNL: (type ${i32} (struct_subtype (field i32) ${}))
(type ${i32} (struct_subtype (field i32) ${}))
- (type ${} (struct))
-
- ;; CHECK: (type ${f64} (struct (field f64)))
-
- ;; CHECK: (type ${i32_i64} (struct (field i32) (field i64)))
+ ;; CHECK: (type ${f64} (struct_subtype (field f64) ${}))
;; NOMNL: (type ${f64} (struct_subtype (field f64) ${}))
-
- ;; NOMNL: (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
- (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
-
(type ${f64} (struct_subtype (field f64) ${}))
- ;; CHECK: (type ${i32_f32} (struct (field i32) (field f32)))
+;; CHECK: (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
+;; NOMNL: (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
+(type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
+
+ ;; CHECK: (type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
;; NOMNL: (type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
(type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
- ;; CHECK: (func $call-various-params-no
+ ;; CHECK: (func $call-various-params-no (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-no
;; CHECK-NEXT: (call $get_{})
;; CHECK-NEXT: (call $get_{i32})
@@ -63,7 +60,7 @@
)
;; This function is called in ways that do not allow us to alter the types of
;; its parameters (see last function).
- ;; CHECK: (func $various-params-no (param $x (ref null ${})) (param $y (ref null ${}))
+ ;; CHECK: (func $various-params-no (type $ref?|${}|_ref?|${}|_=>_none) (param $x (ref null ${})) (param $y (ref null ${}))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -85,7 +82,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $get_{} (result (ref null ${}))
+ ;; CHECK: (func $get_{} (type $none_=>_ref?|${}|) (result (ref null ${}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $get_{} (type $none_=>_ref?|${}|) (result (ref null ${}))
@@ -94,7 +91,7 @@
(func $get_{} (result (ref null ${}))
(unreachable)
)
- ;; CHECK: (func $get_{i32} (result (ref null ${i32}))
+ ;; CHECK: (func $get_{i32} (type $none_=>_ref?|${i32}|) (result (ref null ${i32}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $get_{i32} (type $none_=>_ref?|${i32}|) (result (ref null ${i32}))
@@ -103,7 +100,7 @@
(func $get_{i32} (result (ref null ${i32}))
(unreachable)
)
- ;; CHECK: (func $get_{f64} (result (ref null ${f64}))
+ ;; CHECK: (func $get_{f64} (type $none_=>_ref?|${f64}|) (result (ref null ${f64}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $get_{f64} (type $none_=>_ref?|${f64}|) (result (ref null ${f64}))
@@ -113,7 +110,7 @@
(unreachable)
)
- ;; CHECK: (func $call-various-params-yes
+ ;; CHECK: (func $call-various-params-yes (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-yes
;; CHECK-NEXT: (call $get_null_{i32})
;; CHECK-NEXT: (i32.const 0)
@@ -154,7 +151,7 @@
)
;; This function is called in ways that *do* allow us to alter the types of
;; its parameters (see last function).
- ;; CHECK: (func $various-params-yes (param $x (ref null ${i32})) (param $i i32) (param $y (ref null ${i32}))
+ ;; CHECK: (func $various-params-yes (type $ref?|${i32}|_i32_ref?|${i32}|_=>_none) (param $x (ref null ${i32})) (param $i i32) (param $y (ref null ${i32}))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -183,7 +180,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $call-various-params-set
+ ;; CHECK: (func $call-various-params-set (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-set
;; CHECK-NEXT: (call $get_null_{i32})
;; CHECK-NEXT: (call $get_null_{i32})
@@ -218,7 +215,7 @@
;; This function is called in ways that *do* allow us to alter the types of
;; its parameters (see last function), however, we reuse the parameters by
;; writing to them, which causes problems in one case.
- ;; CHECK: (func $various-params-set (param $x (ref null ${i32})) (param $y (ref null ${i32}))
+ ;; CHECK: (func $various-params-set (type $ref?|${i32}|_ref?|${i32}|_=>_none) (param $x (ref null ${i32})) (param $y (ref null ${i32}))
;; CHECK-NEXT: (local $2 (ref null ${}))
;; CHECK-NEXT: (local.set $2
;; CHECK-NEXT: (local.get $x)
@@ -290,7 +287,7 @@
)
)
- ;; CHECK: (func $call-various-params-tee
+ ;; CHECK: (func $call-various-params-tee (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-tee
;; CHECK-NEXT: (call $get_null_{i32})
;; CHECK-NEXT: )
@@ -306,7 +303,7 @@
(call $get_null_{i32})
)
)
- ;; CHECK: (func $various-params-tee (param $x (ref null ${i32}))
+ ;; CHECK: (func $various-params-tee (type $ref?|${i32}|_=>_none) (param $x (ref null ${i32}))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -343,7 +340,7 @@
)
)
- ;; CHECK: (func $call-various-params-null
+ ;; CHECK: (func $call-various-params-null (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-null
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (ref.null none)
@@ -389,7 +386,7 @@
)
;; This function is called in ways that allow us to make the first parameter
;; non-nullable.
- ;; CHECK: (func $various-params-null (param $x (ref none)) (param $y (ref null ${i32}))
+ ;; CHECK: (func $various-params-null (type $ref|none|_ref?|${i32}|_=>_none) (param $x (ref none)) (param $y (ref null ${i32}))
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
@@ -425,7 +422,7 @@
(local.set $temp (local.get $temp))
)
- ;; CHECK: (func $call-various-params-middle
+ ;; CHECK: (func $call-various-params-middle (type $none_=>_none)
;; CHECK-NEXT: (call $various-params-middle
;; CHECK-NEXT: (call $get_null_{i32_i64})
;; CHECK-NEXT: )
@@ -451,7 +448,7 @@
(call $get_null_{i32_f32})
)
)
- ;; CHECK: (func $various-params-middle (param $x (ref null ${i32}))
+ ;; CHECK: (func $various-params-middle (type $ref?|${i32}|_=>_none) (param $x (ref null ${i32}))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -466,7 +463,7 @@
(drop (local.get $x))
)
- ;; CHECK: (func $unused-and-refinable
+ ;; CHECK: (func $unused-and-refinable (type $none_=>_none)
;; CHECK-NEXT: (local $0 dataref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -486,7 +483,7 @@
;; local).
)
- ;; CHECK: (func $call-unused-and-refinable
+ ;; CHECK: (func $call-unused-and-refinable (type $none_=>_none)
;; CHECK-NEXT: (call $unused-and-refinable)
;; CHECK-NEXT: )
;; NOMNL: (func $call-unused-and-refinable (type $none_=>_none)
@@ -498,7 +495,7 @@
)
)
- ;; CHECK: (func $non-nullable-fixup (param $0 (ref ${}))
+ ;; CHECK: (func $non-nullable-fixup (type $ref|${}|_=>_none) (param $0 (ref ${}))
;; CHECK-NEXT: (local $1 dataref)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (local.get $0)
@@ -525,7 +522,7 @@
)
)
- ;; CHECK: (func $call-non-nullable-fixup
+ ;; CHECK: (func $call-non-nullable-fixup (type $none_=>_none)
;; CHECK-NEXT: (call $non-nullable-fixup
;; CHECK-NEXT: (struct.new_default ${})
;; CHECK-NEXT: )
@@ -541,7 +538,7 @@
)
)
- ;; CHECK: (func $call-update-null
+ ;; CHECK: (func $call-update-null (type $none_=>_none)
;; CHECK-NEXT: (call $update-null
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
@@ -568,7 +565,7 @@
)
)
- ;; CHECK: (func $update-null (param $x (ref null ${}))
+ ;; CHECK: (func $update-null (type $ref?|${}|_=>_none) (param $x (ref null ${}))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -585,7 +582,7 @@
(drop (local.get $x))
)
- ;; CHECK: (func $get_null_{i32} (result (ref null ${i32}))
+ ;; CHECK: (func $get_null_{i32} (type $none_=>_ref?|${i32}|) (result (ref null ${i32}))
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
;; NOMNL: (func $get_null_{i32} (type $none_=>_ref?|${i32}|) (result (ref null ${i32}))
@@ -597,7 +594,7 @@
(ref.null ${i32})
)
- ;; CHECK: (func $get_null_{i32_i64} (result (ref null ${i32_i64}))
+ ;; CHECK: (func $get_null_{i32_i64} (type $none_=>_ref?|${i32_i64}|) (result (ref null ${i32_i64}))
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
;; NOMNL: (func $get_null_{i32_i64} (type $none_=>_ref?|${i32_i64}|) (result (ref null ${i32_i64}))
@@ -607,7 +604,7 @@
(ref.null ${i32_i64})
)
- ;; CHECK: (func $get_null_{i32_f32} (result (ref null ${i32_f32}))
+ ;; CHECK: (func $get_null_{i32_f32} (type $none_=>_ref?|${i32_f32}|) (result (ref null ${i32_f32}))
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
;; NOMNL: (func $get_null_{i32_f32} (type $none_=>_ref?|${i32_f32}|) (result (ref null ${i32_f32}))
diff --git a/test/lit/passes/dae-gc-refine-return.wast b/test/lit/passes/dae-gc-refine-return.wast
index 90084b957..0ad1bf3e1 100644
--- a/test/lit/passes/dae-gc-refine-return.wast
+++ b/test/lit/passes/dae-gc-refine-return.wast
@@ -3,33 +3,32 @@
;; RUN: wasm-opt %s -all --dae --nominal -S -o - | filecheck %s --check-prefix NOMNL
(module
- ;; CHECK: (type $return_{} (func (result (ref ${}))))
- ;; NOMNL: (type $return_{} (func_subtype (result (ref ${})) func))
- (type $return_{} (func (result (ref ${}))))
- ;; CHECK: (type ${i32} (struct (field i32)))
+ ;; CHECK: (type ${} (struct ))
+ ;; NOMNL: (type $return_{} (func (result (ref ${}))))
- ;; CHECK: (type ${i32_f32} (struct (field i32) (field f32)))
- ;; NOMNL: (type ${} (struct_subtype data))
+ ;; NOMNL: (type ${} (struct ))
+ (type ${} (struct))
+
+ ;; CHECK: (type $return_{} (func (result (ref ${}))))
+ (type $return_{} (func (result (ref ${}))))
+ ;; CHECK: (type ${i32} (struct_subtype (field i32) ${}))
;; NOMNL: (type ${i32} (struct_subtype (field i32) ${}))
+ (type ${i32} (struct_subtype (field i32) ${}))
+ ;; CHECK: (type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
;; NOMNL: (type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
(type ${i32_f32} (struct_subtype (field i32) (field f32) ${i32}))
- ;; CHECK: (type ${i32_i64} (struct (field i32) (field i64)))
+ ;; CHECK: (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
;; NOMNL: (type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
(type ${i32_i64} (struct_subtype (field i32) (field i64) ${i32}))
- (type ${i32} (struct_subtype (field i32) ${}))
-
- ;; CHECK: (type ${} (struct ))
- (type ${} (struct))
-
(table 1 1 funcref)
;; We cannot refine the return type if nothing is actually returned.
- ;; CHECK: (func $refine-return-no-return (result anyref)
+ ;; CHECK: (func $refine-return-no-return (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (call $refine-return-no-return)
@@ -54,7 +53,7 @@
)
;; We cannot refine the return type if it is already the best it can be.
- ;; CHECK: (func $refine-return-no-refining (result anyref)
+ ;; CHECK: (func $refine-return-no-refining (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $any anyref)
;; CHECK-NEXT: (local.set $temp
@@ -80,7 +79,7 @@
)
;; Refine the return type based on the value flowing out.
- ;; CHECK: (func $refine-return-flow (result i31ref)
+ ;; CHECK: (func $refine-return-flow (type $none_=>_i31ref) (result i31ref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local.set $temp
@@ -104,7 +103,7 @@
(local.get $i31)
)
- ;; CHECK: (func $call-refine-return-flow (result i31ref)
+ ;; CHECK: (func $call-refine-return-flow (type $none_=>_i31ref) (result i31ref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (call $call-refine-return-flow)
@@ -141,7 +140,7 @@
)
;; Refine the return type based on a return.
- ;; CHECK: (func $refine-return-return (result i31ref)
+ ;; CHECK: (func $refine-return-return (type $none_=>_i31ref) (result i31ref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local.set $temp
@@ -171,7 +170,7 @@
)
;; Refine the return type based on multiple values.
- ;; CHECK: (func $refine-return-many (result i31ref)
+ ;; CHECK: (func $refine-return-many (type $none_=>_i31ref) (result i31ref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local.set $temp
@@ -228,7 +227,7 @@
(local.get $i31)
)
- ;; CHECK: (func $refine-return-many-lub (result eqref)
+ ;; CHECK: (func $refine-return-many-lub (type $none_=>_eqref) (result eqref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local $data dataref)
@@ -289,7 +288,7 @@
(local.get $i31)
)
- ;; CHECK: (func $refine-return-many-lub-2 (result eqref)
+ ;; CHECK: (func $refine-return-many-lub-2 (type $none_=>_eqref) (result eqref)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local $data dataref)
@@ -351,7 +350,7 @@
)
;; We can refine the return types of tuples.
- ;; CHECK: (func $refine-return-tuple (result i31ref i32)
+ ;; CHECK: (func $refine-return-tuple (type $none_=>_i31ref_i32) (result i31ref i32)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (local $i31 i31ref)
;; CHECK-NEXT: (local.set $temp
@@ -397,7 +396,7 @@
;; returns a ref.func of this one. They both begin by returning a funcref;
;; after refining the return type of the second function, it will have a more
;; specific type (which is ok as subtyping is allowed with tail calls).
- ;; CHECK: (func $do-return-call (result funcref)
+ ;; CHECK: (func $do-return-call (type $none_=>_funcref) (result funcref)
;; CHECK-NEXT: (return_call $return-ref-func)
;; CHECK-NEXT: )
;; NOMNL: (func $do-return-call (type $none_=>_funcref) (result funcref)
@@ -406,7 +405,7 @@
(func $do-return-call (result funcref)
(return_call $return-ref-func)
)
- ;; CHECK: (func $return-ref-func (result (ref $none_=>_funcref))
+ ;; CHECK: (func $return-ref-func (type $none_=>_ref|none_->_funcref|) (result (ref $none_=>_funcref))
;; CHECK-NEXT: (ref.func $do-return-call)
;; CHECK-NEXT: )
;; NOMNL: (func $return-ref-func (type $none_=>_ref|none_->_funcref|) (result (ref $none_=>_funcref))
@@ -418,7 +417,7 @@
;; Show that we can optimize the return type of a function that does a tail
;; call.
- ;; CHECK: (func $tail-callee (result (ref ${}))
+ ;; CHECK: (func $tail-callee (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $tail-callee (type $return_{}) (result (ref ${}))
@@ -427,7 +426,7 @@
(func $tail-callee (result (ref ${}))
(unreachable)
)
- ;; CHECK: (func $tail-caller-yes (result (ref ${}))
+ ;; CHECK: (func $tail-caller-yes (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (return_call $tail-callee)
;; CHECK-NEXT: )
;; NOMNL: (func $tail-caller-yes (type $return_{}) (result (ref ${}))
@@ -438,7 +437,7 @@
;; target's return type is more specific than anyref.
(return_call $tail-callee)
)
- ;; CHECK: (func $tail-caller-no (result anyref)
+ ;; CHECK: (func $tail-caller-no (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $any anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -468,7 +467,7 @@
)
(return_call $tail-callee)
)
- ;; CHECK: (func $tail-call-caller
+ ;; CHECK: (func $tail-call-caller (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $tail-caller-yes)
;; CHECK-NEXT: )
@@ -495,7 +494,7 @@
)
;; As above, but with an indirect tail call.
- ;; CHECK: (func $tail-callee-indirect (result (ref ${}))
+ ;; CHECK: (func $tail-callee-indirect (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $tail-callee-indirect (type $return_{}) (result (ref ${}))
@@ -504,7 +503,7 @@
(func $tail-callee-indirect (result (ref ${}))
(unreachable)
)
- ;; CHECK: (func $tail-caller-indirect-yes (result (ref ${}))
+ ;; CHECK: (func $tail-caller-indirect-yes (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (return_call_indirect $0 (type $return_{})
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -517,7 +516,7 @@
(func $tail-caller-indirect-yes (result anyref)
(return_call_indirect (type $return_{}) (i32.const 0))
)
- ;; CHECK: (func $tail-caller-indirect-no (result anyref)
+ ;; CHECK: (func $tail-caller-indirect-no (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $any anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -549,7 +548,7 @@
)
(return_call_indirect (type $return_{}) (i32.const 0))
)
- ;; CHECK: (func $tail-call-caller-indirect
+ ;; CHECK: (func $tail-call-caller-indirect (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $tail-caller-indirect-yes)
;; CHECK-NEXT: )
@@ -575,7 +574,7 @@
)
;; As above, but with a tail call by function reference.
- ;; CHECK: (func $tail-callee-call_ref (result (ref ${}))
+ ;; CHECK: (func $tail-callee-call_ref (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $tail-callee-call_ref (type $return_{}) (result (ref ${}))
@@ -584,7 +583,7 @@
(func $tail-callee-call_ref (result (ref ${}))
(unreachable)
)
- ;; CHECK: (func $tail-caller-call_ref-yes (result (ref ${}))
+ ;; CHECK: (func $tail-caller-call_ref-yes (type $return_{}) (result (ref ${}))
;; CHECK-NEXT: (local $return_{} (ref null $return_{}))
;; CHECK-NEXT: (return_call_ref $return_{}
;; CHECK-NEXT: (local.get $return_{})
@@ -601,7 +600,7 @@
(return_call_ref $return_{} (local.get $return_{}))
)
- ;; CHECK: (func $tail-caller-call_ref-no (result anyref)
+ ;; CHECK: (func $tail-caller-call_ref-no (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $any anyref)
;; CHECK-NEXT: (local $return_{} (ref null $return_{}))
;; CHECK-NEXT: (if
@@ -636,7 +635,7 @@
)
(return_call_ref $return_{} (local.get $return_{}))
)
- ;; CHECK: (func $tail-caller-call_ref-unreachable (result anyref)
+ ;; CHECK: (func $tail-caller-call_ref-unreachable (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (unreachable)
@@ -657,7 +656,7 @@
;; should not hit an assertion on such things.
(return_call_ref $return_{} (unreachable))
)
- ;; CHECK: (func $tail-call-caller-call_ref
+ ;; CHECK: (func $tail-call-caller-call_ref (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $tail-caller-call_ref-yes)
;; CHECK-NEXT: )
@@ -691,7 +690,7 @@
)
)
- ;; CHECK: (func $update-null (param $x i32) (param $y i32) (result (ref null ${i32}))
+ ;; CHECK: (func $update-null (type $i32_i32_=>_ref?|${i32}|) (param $x i32) (param $y i32) (result (ref null ${i32}))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (if
@@ -739,7 +738,7 @@
)
)
- ;; CHECK: (func $call-update-null (result anyref)
+ ;; CHECK: (func $call-update-null (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $update-null
;; CHECK-NEXT: (i32.const 0)
diff --git a/test/lit/passes/dae-gc.wast b/test/lit/passes/dae-gc.wast
index d985035c4..8e55e6ec8 100644
--- a/test/lit/passes/dae-gc.wast
+++ b/test/lit/passes/dae-gc.wast
@@ -4,10 +4,10 @@
(module
;; CHECK: (type ${} (struct ))
- ;; NOMNL: (type ${} (struct_subtype data))
+ ;; NOMNL: (type ${} (struct ))
(type ${} (struct))
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (call $bar)
;; CHECK-NEXT: )
;; NOMNL: (func $foo (type $none_=>_none)
@@ -20,7 +20,7 @@
)
)
)
- ;; CHECK: (func $bar
+ ;; CHECK: (func $bar (type $none_=>_none)
;; CHECK-NEXT: (local $0 i31ref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.tee $0
@@ -67,7 +67,7 @@
)
;; A function that gets a non-nullable reference that is never used. We can
;; still create a non-nullable local for that parameter.
- ;; CHECK: (func $get-nonnull
+ ;; CHECK: (func $get-nonnull (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref ${}))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -78,7 +78,7 @@
(func $get-nonnull (param $0 (ref ${}))
(nop)
)
- ;; CHECK: (func $send-nonnull
+ ;; CHECK: (func $send-nonnull (type $none_=>_none)
;; CHECK-NEXT: (call $get-nonnull)
;; CHECK-NEXT: )
;; NOMNL: (func $send-nonnull (type $none_=>_none)
@@ -93,7 +93,7 @@
;; Test ref.func and ref.null optimization of constant parameter values.
(module
- ;; CHECK: (func $foo (param $0 (ref $none_=>_none))
+ ;; CHECK: (func $foo (type $ref|none_->_none|_=>_none) (param $0 (ref $none_=>_none))
;; CHECK-NEXT: (local $1 (ref $none_=>_none))
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (ref.func $a)
@@ -127,7 +127,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $call-foo
+ ;; CHECK: (func $call-foo (type $none_=>_none)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (ref.func $b)
;; CHECK-NEXT: )
@@ -156,7 +156,7 @@
)
)
- ;; CHECK: (func $bar (param $0 i31ref)
+ ;; CHECK: (func $bar (type $i31ref_=>_none) (param $0 i31ref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (ref.null none)
@@ -190,7 +190,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $call-bar
+ ;; CHECK: (func $call-bar (type $none_=>_none)
;; CHECK-NEXT: (call $bar
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
@@ -225,21 +225,21 @@
)
;; Helper functions so we have something to take the reference of.
- ;; CHECK: (func $a
+ ;; CHECK: (func $a (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $a (type $none_=>_none)
;; NOMNL-NEXT: (nop)
;; NOMNL-NEXT: )
(func $a)
- ;; CHECK: (func $b
+ ;; CHECK: (func $b (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $b (type $none_=>_none)
;; NOMNL-NEXT: (nop)
;; NOMNL-NEXT: )
(func $b)
- ;; CHECK: (func $c
+ ;; CHECK: (func $c (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $c (type $none_=>_none)
diff --git a/test/lit/passes/dae_all-features.wast b/test/lit/passes/dae_all-features.wast
index 4ca052835..a1a357c98 100644
--- a/test/lit/passes/dae_all-features.wast
+++ b/test/lit/passes/dae_all-features.wast
@@ -28,7 +28,7 @@
(export "a8" (func $a8))
(table 2 2 funcref)
(elem (i32.const 0) $a9 $c8)
- ;; CHECK: (func $a
+ ;; CHECK: (func $a (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.const 1)
@@ -36,13 +36,13 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $a (param $x i32))
- ;; CHECK: (func $b
+ ;; CHECK: (func $b (type $none_=>_none)
;; CHECK-NEXT: (call $a)
;; CHECK-NEXT: )
(func $b
(call $a (i32.const 1)) ;; best case scenario
)
- ;; CHECK: (func $a1
+ ;; CHECK: (func $a1 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.const 2)
@@ -52,19 +52,19 @@
(func $a1 (param $x i32)
(unreachable)
)
- ;; CHECK: (func $b1
+ ;; CHECK: (func $b1 (type $none_=>_none)
;; CHECK-NEXT: (call $a1)
;; CHECK-NEXT: )
(func $b1
(call $a1 (i32.const 2)) ;; same value in both, so works
)
- ;; CHECK: (func $b11
+ ;; CHECK: (func $b11 (type $none_=>_none)
;; CHECK-NEXT: (call $a1)
;; CHECK-NEXT: )
(func $b11
(call $a1 (i32.const 2))
)
- ;; CHECK: (func $a2 (param $x i32)
+ ;; CHECK: (func $a2 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -72,7 +72,7 @@
(func $a2 (param $x i32)
(drop (local.get $x))
)
- ;; CHECK: (func $b2
+ ;; CHECK: (func $b2 (type $none_=>_none)
;; CHECK-NEXT: (call $a2
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
@@ -80,7 +80,7 @@
(func $b2
(call $a2 (i32.const 3)) ;; different value!
)
- ;; CHECK: (func $b22
+ ;; CHECK: (func $b22 (type $none_=>_none)
;; CHECK-NEXT: (call $a2
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
@@ -88,7 +88,7 @@
(func $b22
(call $a2 (i32.const 4))
)
- ;; CHECK: (func $a3
+ ;; CHECK: (func $a3 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const -1)
@@ -97,24 +97,24 @@
(func $a3 (param $x i32)
(drop (i32.const -1)) ;; diff value, but at least unused, so no need to send
)
- ;; CHECK: (func $b3
+ ;; CHECK: (func $b3 (type $none_=>_none)
;; CHECK-NEXT: (call $a3)
;; CHECK-NEXT: )
(func $b3
(call $a3 (i32.const 3))
)
- ;; CHECK: (func $b33
+ ;; CHECK: (func $b33 (type $none_=>_none)
;; CHECK-NEXT: (call $a3)
;; CHECK-NEXT: )
(func $b33
(call $a3 (i32.const 4))
)
- ;; CHECK: (func $a4 (param $x i32)
+ ;; CHECK: (func $a4 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $a4 (param $x i32) ;; diff value, but with effects
)
- ;; CHECK: (func $b4
+ ;; CHECK: (func $b4 (type $none_=>_none)
;; CHECK-NEXT: (call $a4
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -122,7 +122,7 @@
(func $b4
(call $a4 (unreachable))
)
- ;; CHECK: (func $b43
+ ;; CHECK: (func $b43 (type $none_=>_none)
;; CHECK-NEXT: (call $a4
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
@@ -130,7 +130,7 @@
(func $b43
(call $a4 (i32.const 4))
)
- ;; CHECK: (func $a5
+ ;; CHECK: (func $a5 (type $none_=>_none)
;; CHECK-NEXT: (local $0 f64)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local.set $0
@@ -154,13 +154,13 @@
(drop (local.get $x))
(drop (local.get $y))
)
- ;; CHECK: (func $b5
+ ;; CHECK: (func $b5 (type $none_=>_none)
;; CHECK-NEXT: (call $a5)
;; CHECK-NEXT: )
(func $b5
(call $a5 (i32.const 1) (f64.const 3.14159))
)
- ;; CHECK: (func $a6 (param $0 i32)
+ ;; CHECK: (func $a6 (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (f64.const 3.14159)
@@ -178,7 +178,7 @@
(drop (local.get $x))
(drop (local.get $y))
)
- ;; CHECK: (func $b6
+ ;; CHECK: (func $b6 (type $none_=>_none)
;; CHECK-NEXT: (call $a6
;; CHECK-NEXT: (call $get-i32)
;; CHECK-NEXT: )
@@ -186,7 +186,7 @@
(func $b6
(call $a6 (call $get-i32) (f64.const 3.14159))
)
- ;; CHECK: (func $a7 (param $0 f64)
+ ;; CHECK: (func $a7 (type $f64_=>_none) (param $0 f64)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (i32.const 1)
@@ -204,7 +204,7 @@
(drop (local.get $x))
(drop (local.get $y))
)
- ;; CHECK: (func $b7
+ ;; CHECK: (func $b7 (type $none_=>_none)
;; CHECK-NEXT: (call $a7
;; CHECK-NEXT: (call $get-f64)
;; CHECK-NEXT: )
@@ -212,11 +212,11 @@
(func $b7
(call $a7 (i32.const 1) (call $get-f64))
)
- ;; CHECK: (func $a8 (param $x i32)
+ ;; CHECK: (func $a8 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $a8 (param $x i32)) ;; exported, do not optimize
- ;; CHECK: (func $b8
+ ;; CHECK: (func $b8 (type $none_=>_none)
;; CHECK-NEXT: (call $a8
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -224,11 +224,11 @@
(func $b8
(call $a8 (i32.const 1))
)
- ;; CHECK: (func $a9 (param $x i32)
+ ;; CHECK: (func $a9 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $a9 (param $x i32)) ;; tabled, do not optimize
- ;; CHECK: (func $b9
+ ;; CHECK: (func $b9 (type $none_=>_none)
;; CHECK-NEXT: (call $a9
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -236,7 +236,7 @@
(func $b9
(call $a9 (i32.const 1))
)
- ;; CHECK: (func $a10
+ ;; CHECK: (func $a10 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.const 1)
@@ -250,7 +250,7 @@
(call $a10 (i32.const 1))
(call $a10 (i32.const 1))
)
- ;; CHECK: (func $a11
+ ;; CHECK: (func $a11 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (call $a11)
;; CHECK-NEXT: (call $a11)
@@ -259,7 +259,7 @@
(call $a11 (i32.const 1))
(call $a11 (i32.const 2))
)
- ;; CHECK: (func $a12 (param $x i32)
+ ;; CHECK: (func $a12 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -276,7 +276,7 @@
(call $a12 (i32.const 2))
)
;; return values
- ;; CHECK: (func $c1
+ ;; CHECK: (func $c1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (call $c2)
;; CHECK-NEXT: (call $c3)
@@ -308,7 +308,7 @@
(drop (call $c7))
(drop (call $c8))
)
- ;; CHECK: (func $c2
+ ;; CHECK: (func $c2 (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -316,7 +316,7 @@
(func $c2 (result i32)
(i32.const 1)
)
- ;; CHECK: (func $c3
+ ;; CHECK: (func $c3 (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
@@ -324,13 +324,13 @@
(func $c3 (result i32)
(i32.const 2)
)
- ;; CHECK: (func $c4 (result i32)
+ ;; CHECK: (func $c4 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
(func $c4 (result i32)
(i32.const 3)
)
- ;; CHECK: (func $c5 (param $x i32)
+ ;; CHECK: (func $c5 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -338,13 +338,13 @@
(func $c5 (param $x i32) (result i32)
(local.get $x)
)
- ;; CHECK: (func $c6
+ ;; CHECK: (func $c6 (type $none_=>_none)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $c6 (result i32)
(unreachable)
)
- ;; CHECK: (func $c7
+ ;; CHECK: (func $c7 (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
@@ -353,7 +353,7 @@
(func $c7 (result i32)
(return (i32.const 4))
)
- ;; CHECK: (func $c8 (result i32)
+ ;; CHECK: (func $c8 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 5)
;; CHECK-NEXT: )
(func $c8 (result i32)
@@ -372,11 +372,11 @@
;; CHECK: (export "a" (func $0))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (call $b)
;; CHECK-NEXT: )
- ;; CHECK: (func $b
+ ;; CHECK: (func $b (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
@@ -396,7 +396,7 @@
;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (func $foo (param $x i32) (result i32)
+ ;; CHECK: (func $foo (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (return_call $bar)
;; CHECK-NEXT: )
@@ -410,7 +410,7 @@
)
(i32.const 42)
)
- ;; CHECK: (func $bar (result i32)
+ ;; CHECK: (func $bar (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.const 0)
@@ -429,7 +429,7 @@
;; CHECK: (table $0 1 1 funcref)
- ;; CHECK: (func $foo (result i32)
+ ;; CHECK: (func $foo (type $T) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.const 42)
@@ -447,7 +447,7 @@
)
)
)
- ;; CHECK: (func $bar
+ ;; CHECK: (func $bar (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $foo)
;; CHECK-NEXT: )
@@ -469,7 +469,7 @@
;; CHECK: (export "export" (func $1))
- ;; CHECK: (func $0 (param $0 funcref) (param $1 i32) (param $2 f64) (result i64)
+ ;; CHECK: (func $0 (type $funcref_i32_f64_=>_i64) (param $0 funcref) (param $1 i32) (param $2 f64) (result i64)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -483,7 +483,7 @@
(ref.func $0)
)
)
-;; CHECK: (func $1 (param $0 f32) (result funcref)
+;; CHECK: (func $1 (type $f32_=>_funcref) (param $0 f32) (result funcref)
;; CHECK-NEXT: (ref.func $0)
;; CHECK-NEXT: )
(module
@@ -497,13 +497,13 @@
(export "even" (func $1))
;; the argument to this function cannot be removed due to the ref.func of it
;; in a global
- ;; CHECK: (func $0 (param $0 i64)
+ ;; CHECK: (func $0 (type $i64) (param $0 i64)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $0 (param $0 i64)
(unreachable)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (call_ref $i64
;; CHECK-NEXT: (i64.const 0)
;; CHECK-NEXT: (global.get $global$0)
@@ -515,7 +515,7 @@
(global.get $global$0)
)
)
- ;; CHECK: (func $2
+ ;; CHECK: (func $2 (type $none_=>_none)
;; CHECK-NEXT: (call $0
;; CHECK-NEXT: (i64.const 0)
;; CHECK-NEXT: )
@@ -530,14 +530,14 @@
;; a removable non-nullable parameter
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (local $0 i31ref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $0 (param $x i31ref)
(nop)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (call $0)
;; CHECK-NEXT: )
(func $1
@@ -565,7 +565,7 @@
;; CHECK: (global $mut (mut i32) (i32.const 1337))
(global $mut (mut i32) (i32.const 1337))
- ;; CHECK: (func $foo (param $0 i32)
+ ;; CHECK: (func $foo (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (global.get $immut)
@@ -585,7 +585,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $foo-caller
+ ;; CHECK: (func $foo-caller (type $none_=>_none)
;; CHECK-NEXT: (global.set $mut
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -615,7 +615,7 @@
)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $i32_i32_=>_none) (param $x i32) (param $y i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -628,7 +628,7 @@
(drop (local.get $y))
)
- ;; CHECK: (func $bar-caller
+ ;; CHECK: (func $bar-caller (type $none_=>_none)
;; CHECK-NEXT: (global.set $mut
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/dae_tnh.wast b/test/lit/passes/dae_tnh.wast
index e8163150d..40a750e2e 100644
--- a/test/lit/passes/dae_tnh.wast
+++ b/test/lit/passes/dae_tnh.wast
@@ -5,12 +5,12 @@
(module
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
-
;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct_subtype (field i32) data))
- ;; CHECK: (func $target
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
+
+ ;; CHECK: (func $target (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -18,7 +18,7 @@
(nop)
)
- ;; CHECK: (func $caller (param $ref (ref null $struct))
+ ;; CHECK: (func $caller (type $ref?|$struct|_=>_none) (param $ref (ref null $struct))
;; CHECK-NEXT: (call $target)
;; CHECK-NEXT: )
(func $caller (param $ref (ref null $struct))
@@ -38,7 +38,7 @@
;; CHECK: (type $i32_=>_none (func (param i32)))
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $target
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -52,7 +52,7 @@
)
)
- ;; CHECK: (func $target (param $0 i32)
+ ;; CHECK: (func $target (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $target (param i32)
@@ -64,7 +64,7 @@
(module
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (return_call $target)
;; CHECK-NEXT: )
(func $caller
@@ -73,7 +73,7 @@
)
)
- ;; CHECK: (func $target
+ ;; CHECK: (func $target (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -86,7 +86,7 @@
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $target (param $0 i32)
+ ;; CHECK: (func $target (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (f64.const 4.2)
@@ -102,7 +102,7 @@
)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $target
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/dce-eh.wast b/test/lit/passes/dce-eh.wast
index 336246225..28a4bc649 100644
--- a/test/lit/passes/dce-eh.wast
+++ b/test/lit/passes/dce-eh.wast
@@ -6,14 +6,14 @@
(module
;; CHECK: (tag $e (param))
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo)
(tag $e)
- ;; CHECK: (func $try_unreachable
+ ;; CHECK: (func $try_unreachable (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (unreachable)
@@ -34,7 +34,7 @@
(call $foo) ;; shouldn't be dce'd
)
- ;; CHECK: (func $catch_unreachable
+ ;; CHECK: (func $catch_unreachable (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -55,7 +55,7 @@
(call $foo) ;; shouldn't be dce'd
)
- ;; CHECK: (func $both_unreachable
+ ;; CHECK: (func $both_unreachable (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (unreachable)
@@ -77,7 +77,7 @@
(call $foo) ;; should be dce'd
)
- ;; CHECK: (func $throw
+ ;; CHECK: (func $throw (type $none_=>_none)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $label$1
;; CHECK-NEXT: (throw $e)
@@ -101,7 +101,7 @@
)
)
- ;; CHECK: (func $rethrow
+ ;; CHECK: (func $rethrow (type $none_=>_none)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/dce_all-features.wast b/test/lit/passes/dce_all-features.wast
index 03b90cc38..8566b86f0 100644
--- a/test/lit/passes/dce_all-features.wast
+++ b/test/lit/passes/dce_all-features.wast
@@ -30,13 +30,13 @@
;; CHECK: (elem (i32.const 0) $call-me)
- ;; CHECK: (func $call-me (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $call-me (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $call-me (type $ii) (param $0 i32) (param $1 i32)
(nop)
)
- ;; CHECK: (func $code-to-kill
+ ;; CHECK: (func $code-to-kill (type $1)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (br $out)
@@ -672,7 +672,7 @@
(i32.const 1337)
)
)
- ;; CHECK: (func $killer
+ ;; CHECK: (func $killer (type $1)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $killer (type $1)
@@ -681,7 +681,7 @@
(i32.const 1000)
)
)
- ;; CHECK: (func $target
+ ;; CHECK: (func $target (type $1)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 2000)
;; CHECK-NEXT: )
@@ -691,7 +691,7 @@
(i32.const 2000)
)
)
- ;; CHECK: (func $typed-block-none-then-unreachable (result i32)
+ ;; CHECK: (func $typed-block-none-then-unreachable (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $top-typed
;; CHECK-NEXT: (block $switch$0
;; CHECK-NEXT: (return
@@ -713,7 +713,7 @@
)
)
)
- ;; CHECK: (func $typed-block-remove-br-changes-type (param $$$0 i32) (result i32)
+ ;; CHECK: (func $typed-block-remove-br-changes-type (type $i32_=>_i32) (param $$$0 i32) (result i32)
;; CHECK-NEXT: (block $switch$7
;; CHECK-NEXT: (block $switch-default$10
;; CHECK-NEXT: (block $switch-case$9
@@ -755,7 +755,7 @@
(i32.const 0)
)
)
- ;; CHECK: (func $global
+ ;; CHECK: (func $global (type $1)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $global
@@ -763,7 +763,7 @@
(drop (global.get $x))
(global.set $x (i32.const 1))
)
- ;; CHECK: (func $ret (result i32)
+ ;; CHECK: (func $ret (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (return
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -775,7 +775,7 @@
(nop)
(i32.const 0)
)
- ;; CHECK: (func $unreachable-br (result i32)
+ ;; CHECK: (func $unreachable-br (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $out (result i32)
;; CHECK-NEXT: (br $out
;; CHECK-NEXT: (i32.const 0)
@@ -789,7 +789,7 @@
)
)
)
- ;; CHECK: (func $unreachable-br-loop (result i32)
+ ;; CHECK: (func $unreachable-br-loop (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (loop $out
;; CHECK-NEXT: (br $out)
;; CHECK-NEXT: )
@@ -799,7 +799,7 @@
(br $out)
)
)
- ;; CHECK: (func $unreachable-block-ends-switch (result i32)
+ ;; CHECK: (func $unreachable-block-ends-switch (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $label$3
;; CHECK-NEXT: (nop)
@@ -819,7 +819,7 @@
(i32.const 19)
)
)
- ;; CHECK: (func $unreachable-block-ends-br_if (result i32)
+ ;; CHECK: (func $unreachable-block-ends-br_if (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $label$2
;; CHECK-NEXT: (nop)
@@ -839,7 +839,7 @@
(i32.const 19)
)
)
- ;; CHECK: (func $unreachable-brs-3 (result i32)
+ ;; CHECK: (func $unreachable-brs-3 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $label$0 (result i32)
;; CHECK-NEXT: (br $label$0
;; CHECK-NEXT: (i32.const 18)
@@ -858,7 +858,7 @@
(i32.const 21)
)
)
- ;; CHECK: (func $unreachable-brs-4 (param $var$0 i32) (result i32)
+ ;; CHECK: (func $unreachable-brs-4 (type $i32_=>_i32) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -892,7 +892,7 @@
)
)
)
- ;; CHECK: (func $call-unreach (param $var$0 i64) (param $var$1 i64) (result i64)
+ ;; CHECK: (func $call-unreach (type $i64_i64_=>_i64) (param $var$0 i64) (param $var$1 i64) (result i64)
;; CHECK-NEXT: (local $2 i64)
;; CHECK-NEXT: (if (result i64)
;; CHECK-NEXT: (i64.eqz
@@ -954,7 +954,7 @@
)
)
)
- ;; CHECK: (func $br-gone-means-block-type-changes-then-refinalize-at-end-is-too-late (param $var$0 i32) (result i32)
+ ;; CHECK: (func $br-gone-means-block-type-changes-then-refinalize-at-end-is-too-late (type $i32_=>_i32) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
@@ -978,7 +978,7 @@
)
)
)
- ;; CHECK: (func $br-with-unreachable-value-should-not-give-a-block-a-value (param $var$0 i32) (result i32)
+ ;; CHECK: (func $br-with-unreachable-value-should-not-give-a-block-a-value (type $i32_=>_i32) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (block $label$0 (result i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
@@ -1007,7 +1007,7 @@
(i32.const 16)
)
)
- ;; CHECK: (func $replace-br-value-of-i32-with-unreachable (result i32)
+ ;; CHECK: (func $replace-br-value-of-i32-with-unreachable (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $label$1
;; CHECK-NEXT: (nop)
@@ -1025,7 +1025,7 @@
)
)
)
- ;; CHECK: (func $shorten-block-requires-sync-refinalize (param $var$0 i32) (param $var$1 i32)
+ ;; CHECK: (func $shorten-block-requires-sync-refinalize (type $ii) (param $var$0 i32) (param $var$1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $shorten-block-requires-sync-refinalize (param $var$0 i32) (param $var$1 i32)
@@ -1039,7 +1039,7 @@
)
)
)
- ;; CHECK: (func $block-with-type-but-is-unreachable (param $var$0 i32) (result i32)
+ ;; CHECK: (func $block-with-type-but-is-unreachable (type $i32_=>_i32) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $block
;; CHECK-NEXT: (nop)
@@ -1057,7 +1057,7 @@
)
)
)
- ;; CHECK: (func $if-with-type-but-is-unreachable (param $var$0 i32) (result i32)
+ ;; CHECK: (func $if-with-type-but-is-unreachable (type $i32_=>_i32) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $var$0)
@@ -1077,7 +1077,7 @@
)
)
)
- ;; CHECK: (func $unreachable-loop
+ ;; CHECK: (func $unreachable-loop (type $1)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $unreachable-loop
@@ -1086,7 +1086,7 @@
(br $label$2)
)
)
- ;; CHECK: (func $br-block-from-unary (result i32)
+ ;; CHECK: (func $br-block-from-unary (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $label$6 (result i32)
;; CHECK-NEXT: (block $label$7
;; CHECK-NEXT: (br $label$6
@@ -1106,7 +1106,7 @@
)
)
)
- ;; CHECK: (func $replace-unary-with-br-child
+ ;; CHECK: (func $replace-unary-with-br-child (type $1)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $label$6 (result i32)
;; CHECK-NEXT: (br $label$6
@@ -1126,7 +1126,7 @@
)
)
)
- ;; CHECK: (func $br_if-unreach-then-br_if-normal
+ ;; CHECK: (func $br_if-unreach-then-br_if-normal (type $1)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (unreachable)
@@ -1143,7 +1143,7 @@
)
)
)
- ;; CHECK: (func $replace-with-unreachable-affects-parent (param $var$0 f32) (param $var$1 i64)
+ ;; CHECK: (func $replace-with-unreachable-affects-parent (type $f32_i64_=>_none) (param $var$0 f32) (param $var$1 i64)
;; CHECK-NEXT: (block $top
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
@@ -1186,7 +1186,7 @@
(nop) ;; this is not reachable due to the above code, so we replace it with unreachable. type should go to parent
)
)
- ;; CHECK: (func $replace-block-changes-later-when-if-goes
+ ;; CHECK: (func $replace-block-changes-later-when-if-goes (type $1)
;; CHECK-NEXT: (block $top
;; CHECK-NEXT: (global.set $x
;; CHECK-NEXT: (i32.const 0)
@@ -1232,7 +1232,7 @@
)
)
)
- ;; CHECK: (func $helper (param $var$0 f32) (param $var$1 i64) (result i32)
+ ;; CHECK: (func $helper (type $f32_i64_=>_i32) (param $var$0 f32) (param $var$1 i64) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $helper (param $var$0 f32) (param $var$1 i64) (result i32)
@@ -1245,7 +1245,7 @@
;; CHECK: (global $global (mut f64) (f64.const 0))
(global $global (mut f64) (f64.const 0))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (unreachable)
@@ -1265,7 +1265,7 @@
(module
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (local $local f64)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
@@ -1290,7 +1290,7 @@
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $unnecessary-concrete-block (result i32)
+ ;; CHECK: (func $unnecessary-concrete-block (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $foo
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (unreachable)
@@ -1302,7 +1302,7 @@
(unreachable)
)
)
- ;; CHECK: (func $necessary-concrete-block (result i32)
+ ;; CHECK: (func $necessary-concrete-block (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $foo (result i32)
;; CHECK-NEXT: (br $foo
;; CHECK-NEXT: (i32.const 1)
@@ -1315,7 +1315,7 @@
(unreachable)
)
)
- ;; CHECK: (func $unnecessary-concrete-if (result i32)
+ ;; CHECK: (func $unnecessary-concrete-if (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (return
@@ -1331,7 +1331,7 @@
(unreachable)
)
)
- ;; CHECK: (func $unnecessary-concrete-try (result i32)
+ ;; CHECK: (func $unnecessary-concrete-try (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (unreachable)
@@ -1351,7 +1351,7 @@
)
)
)
- ;; CHECK: (func $note-loss-of-if-children
+ ;; CHECK: (func $note-loss-of-if-children (type $none_=>_none)
;; CHECK-NEXT: (block $label$1
;; CHECK-NEXT: (block $label$2
;; CHECK-NEXT: (nop)
@@ -1373,7 +1373,7 @@
)
)
)
- ;; CHECK: (func $note-loss-of-non-control-flow-children
+ ;; CHECK: (func $note-loss-of-non-control-flow-children (type $none_=>_none)
;; CHECK-NEXT: (block $out
;; CHECK-NEXT: (block
;; CHECK-NEXT: (nop)
@@ -1398,7 +1398,7 @@
(module
;; CHECK: (type $none_=>_ref|any| (func (result (ref any))))
- ;; CHECK: (func $foo (result (ref any))
+ ;; CHECK: (func $foo (type $none_=>_ref|any|) (result (ref any))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $foo (result (ref any))
diff --git a/test/lit/passes/directize_all-features.wast b/test/lit/passes/directize_all-features.wast
index 51e2dab44..d4d797997 100644
--- a/test/lit/passes/directize_all-features.wast
+++ b/test/lit/passes/directize_all-features.wast
@@ -16,12 +16,12 @@
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
@@ -29,13 +29,13 @@
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -70,35 +70,35 @@
;; CHECK: (elem $1 (table $1) (i32.const 1) func $f)
- ;; CHECK: (func $dummy (param $0 i32) (result i32)
+ ;; CHECK: (func $dummy (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
;; IMMUT: (elem $0 (table $0) (i32.const 1) func $dummy)
;; IMMUT: (elem $1 (table $1) (i32.const 1) func $f)
- ;; IMMUT: (func $dummy (param $0 i32) (result i32)
+ ;; IMMUT: (func $dummy (type $i32_=>_i32) (param $0 i32) (result i32)
;; IMMUT-NEXT: (local.get $0)
;; IMMUT-NEXT: )
(func $dummy (param i32) (result i32)
(local.get 0)
)
- ;; CHECK: (func $f (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $f (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $f (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $f (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $f (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $g (param $x i32) (param $y i32)
+ ;; CHECK: (func $g (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $f
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $g (param $x i32) (param $y i32)
+ ;; IMMUT: (func $g (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $f
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -127,24 +127,24 @@
(elem (table $1) (i32.const 4) func $foo)
;; CHECK: (elem (table $1) (i32.const 4) func $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (table $1) (i32.const 4) func $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -169,24 +169,24 @@
(elem (i32.const 0) $foo)
;; CHECK: (elem (i32.const 0) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 0) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -217,26 +217,26 @@
;; CHECK: (elem $1 (table $1) (i32.const 0) func $foo $foo $foo $foo $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem $0 (table $0) (i32.const 0) func $foo $foo $foo $foo $foo)
;; IMMUT: (elem $1 (table $1) (i32.const 0) func $foo $foo $foo $foo $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -262,25 +262,25 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $table (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -294,14 +294,14 @@
)
)
- ;; CHECK: (func $out-of-bounds (param $x i32) (param $y i32)
+ ;; CHECK: (func $out-of-bounds (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $table (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.const 999)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $out-of-bounds (param $x i32) (param $y i32)
+ ;; IMMUT: (func $out-of-bounds (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call_indirect $table (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -336,23 +336,23 @@
;; IMMUT: (export "tab" (table $0))
(export "tab" (table $0))
(elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -383,25 +383,25 @@
(elem (global.get $g) $foo)
;; CHECK: (elem (global.get $g) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (global.get $g) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -435,25 +435,25 @@
(elem (table $1) (global.get $g) func $foo)
;; CHECK: (elem (table $1) (global.get $g) func $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (table $1) (global.get $g) func $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $1 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (call_indirect $1 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -484,25 +484,25 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $bar (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (local.get $z)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $bar (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -529,18 +529,18 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
@@ -551,7 +551,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (drop
;; IMMUT-NEXT: (local.get $x)
@@ -582,18 +582,18 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
@@ -604,7 +604,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (drop
;; IMMUT-NEXT: (local.get $x)
@@ -639,18 +639,18 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32)
+ ;; CHECK: (func $foo (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32)
+ ;; IMMUT: (func $foo (type $i32_=>_none) (param $0 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
@@ -661,7 +661,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (drop
;; IMMUT-NEXT: (local.get $x)
@@ -685,12 +685,12 @@
(module
;; CHECK: (type $i32_=>_none (func (param i32)))
- ;; CHECK: (func $foo (param $0 i32)
+ ;; CHECK: (func $foo (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (type $i32_=>_none (func (param i32)))
- ;; IMMUT: (func $foo (param $0 i32)
+ ;; IMMUT: (func $foo (type $i32_=>_none) (param $0 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32)
@@ -708,7 +708,7 @@
;; IMMUT: (table $0 8 8 funcref)
(table $0 8 8 funcref)
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block
@@ -716,7 +716,7 @@
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $0
+ ;; IMMUT: (func $0 (type $none_=>_none)
;; IMMUT-NEXT: (nop)
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (block
@@ -744,24 +744,24 @@
(elem (i32.const 1) $foo)
;; CHECK: (elem (i32.const 1) $foo)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo)
- ;; IMMUT: (func $foo (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (return_call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (return_call $foo
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -797,27 +797,27 @@
(elem (i32.const 1) $foo1 $foo2)
;; CHECK: (elem (i32.const 1) $foo1 $foo2)
- ;; CHECK: (func $foo1 (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo1 (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 1) $foo1 $foo2)
- ;; IMMUT: (func $foo1 (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo1 (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo1 (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $foo2 (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo2 (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $foo2 (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo2 (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo2 (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $select (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (local.set $3
@@ -838,7 +838,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (local $3 i32)
;; IMMUT-NEXT: (local $4 i32)
;; IMMUT-NEXT: (local.set $3
@@ -872,7 +872,7 @@
)
)
)
- ;; CHECK: (func $select-bad-1 (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-bad-1 (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -883,7 +883,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-bad-1 (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-bad-1 (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -906,7 +906,7 @@
)
)
)
- ;; CHECK: (func $select-bad-2 (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-bad-2 (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -917,7 +917,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-bad-2 (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-bad-2 (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -940,7 +940,7 @@
)
)
)
- ;; CHECK: (func $select-out-of-range (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-out-of-range (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (local.set $3
@@ -958,7 +958,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-out-of-range (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-out-of-range (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (local $3 i32)
;; IMMUT-NEXT: (local $4 i32)
;; IMMUT-NEXT: (local.set $3
@@ -989,7 +989,7 @@
)
)
)
- ;; CHECK: (func $select-both-out-of-range (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-both-out-of-range (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (local.set $3
@@ -1004,7 +1004,7 @@
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-both-out-of-range (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-both-out-of-range (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (local $3 i32)
;; IMMUT-NEXT: (local $4 i32)
;; IMMUT-NEXT: (local.set $3
@@ -1031,7 +1031,7 @@
)
)
)
- ;; CHECK: (func $select-unreachable-operand (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-unreachable-operand (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -1042,7 +1042,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-unreachable-operand (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-unreachable-operand (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -1065,7 +1065,7 @@
)
)
)
- ;; CHECK: (func $select-unreachable-condition (param $x i32) (param $y i32) (param $z i32)
+ ;; CHECK: (func $select-unreachable-condition (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; CHECK-NEXT: (call_indirect $0 (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -1076,7 +1076,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-unreachable-condition (param $x i32) (param $y i32) (param $z i32)
+ ;; IMMUT: (func $select-unreachable-condition (type $i32_i32_i32_=>_none) (param $x i32) (param $y i32) (param $z i32)
;; IMMUT-NEXT: (call_indirect $0 (type $ii)
;; IMMUT-NEXT: (local.get $x)
;; IMMUT-NEXT: (local.get $y)
@@ -1100,14 +1100,14 @@
)
)
)
- ;; CHECK: (func $select-bad-type (param $z i32)
+ ;; CHECK: (func $select-bad-type (type $i32_=>_none) (param $z i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $z)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-bad-type (param $z i32)
+ ;; IMMUT: (func $select-bad-type (type $i32_=>_none) (param $z i32)
;; IMMUT-NEXT: (if
;; IMMUT-NEXT: (local.get $z)
;; IMMUT-NEXT: (unreachable)
@@ -1150,14 +1150,14 @@
;; CHECK: (elem declare func $select-non-nullable)
- ;; CHECK: (func $foo-ref (param $0 (ref func))
+ ;; CHECK: (func $foo-ref (type $F) (param $0 (ref func))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem (i32.const 10) $foo-ref $foo-ref)
;; IMMUT: (elem declare func $select-non-nullable)
- ;; IMMUT: (func $foo-ref (param $0 (ref func))
+ ;; IMMUT: (func $foo-ref (type $F) (param $0 (ref func))
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo-ref (param (ref func))
@@ -1165,7 +1165,7 @@
(unreachable)
)
- ;; CHECK: (func $select-non-nullable (param $x i32)
+ ;; CHECK: (func $select-non-nullable (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $1 (ref $i32_=>_none))
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (ref.func $select-non-nullable)
@@ -1180,7 +1180,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-non-nullable (param $x i32)
+ ;; IMMUT: (func $select-non-nullable (type $i32_=>_none) (param $x i32)
;; IMMUT-NEXT: (local $1 (ref $i32_=>_none))
;; IMMUT-NEXT: (local.set $1
;; IMMUT-NEXT: (ref.func $select-non-nullable)
@@ -1209,7 +1209,7 @@
)
)
- ;; CHECK: (func $select-non-nullable-unreachable-condition
+ ;; CHECK: (func $select-non-nullable-unreachable-condition (type $none_=>_none)
;; CHECK-NEXT: (call_indirect $0 (type $F)
;; CHECK-NEXT: (ref.func $select-non-nullable)
;; CHECK-NEXT: (select
@@ -1219,7 +1219,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-non-nullable-unreachable-condition
+ ;; IMMUT: (func $select-non-nullable-unreachable-condition (type $none_=>_none)
;; IMMUT-NEXT: (call_indirect $0 (type $F)
;; IMMUT-NEXT: (ref.func $select-non-nullable)
;; IMMUT-NEXT: (select
@@ -1242,7 +1242,7 @@
)
)
- ;; CHECK: (func $select-non-nullable-unreachable-arm
+ ;; CHECK: (func $select-non-nullable-unreachable-arm (type $none_=>_none)
;; CHECK-NEXT: (call_indirect $0 (type $F)
;; CHECK-NEXT: (ref.func $select-non-nullable)
;; CHECK-NEXT: (select
@@ -1252,7 +1252,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-non-nullable-unreachable-arm
+ ;; IMMUT: (func $select-non-nullable-unreachable-arm (type $none_=>_none)
;; IMMUT-NEXT: (call_indirect $0 (type $F)
;; IMMUT-NEXT: (ref.func $select-non-nullable)
;; IMMUT-NEXT: (select
@@ -1278,7 +1278,7 @@
)
)
- ;; CHECK: (func $select-non-nullable-unreachable-arg (param $x i32)
+ ;; CHECK: (func $select-non-nullable-unreachable-arg (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (call_indirect $0 (type $F)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (select
@@ -1288,7 +1288,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $select-non-nullable-unreachable-arg (param $x i32)
+ ;; IMMUT: (func $select-non-nullable-unreachable-arg (type $i32_=>_none) (param $x i32)
;; IMMUT-NEXT: (call_indirect $0 (type $F)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: (select
@@ -1334,13 +1334,13 @@
;; IMMUT: (elem $1 (table $no-set) (i32.const 1) func $foo)
(elem $1 (table $no-set) (i32.const 1) $foo)
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $v)
;; CHECK-NEXT: (table.set $has-set
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (ref.func $foo)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $foo
+ ;; IMMUT: (func $foo (type $v)
;; IMMUT-NEXT: (table.set $has-set
;; IMMUT-NEXT: (i32.const 1)
;; IMMUT-NEXT: (ref.func $foo)
@@ -1355,13 +1355,13 @@
)
)
- ;; CHECK: (func $bar
+ ;; CHECK: (func $bar (type $v)
;; CHECK-NEXT: (call_indirect $has-set (type $v)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $foo)
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar
+ ;; IMMUT: (func $bar (type $v)
;; IMMUT-NEXT: (call $foo)
;; IMMUT-NEXT: (call $foo)
;; IMMUT-NEXT: )
@@ -1393,30 +1393,30 @@
;; CHECK: (elem $1 (i32.const 3) $foo2)
- ;; CHECK: (func $foo1 (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo1 (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; IMMUT: (elem $0 (i32.const 1) $foo1)
;; IMMUT: (elem $1 (i32.const 3) $foo2)
- ;; IMMUT: (func $foo1 (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo1 (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo1 (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $foo2 (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo2 (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
- ;; IMMUT: (func $foo2 (param $0 i32) (param $1 i32)
+ ;; IMMUT: (func $foo2 (type $ii) (param $0 i32) (param $1 i32)
;; IMMUT-NEXT: (unreachable)
;; IMMUT-NEXT: )
(func $foo2 (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $x i32) (param $y i32)
+ ;; CHECK: (func $bar (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call_indirect $table (type $ii)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -1443,7 +1443,7 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; IMMUT: (func $bar (param $x i32) (param $y i32)
+ ;; IMMUT: (func $bar (type $ii) (param $x i32) (param $y i32)
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (block
;; IMMUT-NEXT: (drop
diff --git a/test/lit/passes/flatten-eh.wast b/test/lit/passes/flatten-eh.wast
index 1d3906511..f91d875a5 100644
--- a/test/lit/passes/flatten-eh.wast
+++ b/test/lit/passes/flatten-eh.wast
@@ -7,7 +7,7 @@
;; CHECK: (tag $e-f32 (param f32))
(tag $e-f32 (param f32))
- ;; CHECK: (func $try_catch
+ ;; CHECK: (func $try_catch (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f32)
@@ -55,7 +55,7 @@
)
)
- ;; CHECK: (func $try_catch_pop_fixup
+ ;; CHECK: (func $try_catch_pop_fixup (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $l0
@@ -101,7 +101,7 @@
)
)
- ;; CHECK: (func $try_catch_return_value (result i32)
+ ;; CHECK: (func $try_catch_return_value (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -138,7 +138,7 @@
)
)
- ;; CHECK: (func $try_unreachable (result i32)
+ ;; CHECK: (func $try_unreachable (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -174,7 +174,7 @@
)
)
- ;; CHECK: (func $catch_unreachable (result i32)
+ ;; CHECK: (func $catch_unreachable (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
diff --git a/test/lit/passes/flatten.wast b/test/lit/passes/flatten.wast
index 0446f3ce1..7b90068bf 100644
--- a/test/lit/passes/flatten.wast
+++ b/test/lit/passes/flatten.wast
@@ -4,7 +4,7 @@
(module
;; CHECK: (type $simplefunc (func))
(type $simplefunc (func))
- ;; CHECK: (func $0 (param $0 (ref $simplefunc)) (result (ref $simplefunc))
+ ;; CHECK: (func $0 (type $ref|$simplefunc|_=>_ref|$simplefunc|) (param $0 (ref $simplefunc)) (result (ref $simplefunc))
;; CHECK-NEXT: (local $1 (ref $simplefunc))
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (local.get $0)
diff --git a/test/lit/passes/flatten_all-features.wast b/test/lit/passes/flatten_all-features.wast
index 7daf00914..9667f23df 100644
--- a/test/lit/passes/flatten_all-features.wast
+++ b/test/lit/passes/flatten_all-features.wast
@@ -30,7 +30,7 @@
;; CHECK: (elem (i32.const 0) $call-me)
- ;; CHECK: (func $a1
+ ;; CHECK: (func $a1 (type $1)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.add
@@ -45,7 +45,7 @@
(func $a1
(drop (i32.add (i32.const 0) (i32.const 1)))
)
- ;; CHECK: (func $a2 (result i32)
+ ;; CHECK: (func $a2 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (i32.add
@@ -60,7 +60,7 @@
(func $a2 (result i32)
(i32.add (i32.const 0) (i32.const 1))
)
- ;; CHECK: (func $a3 (result i32)
+ ;; CHECK: (func $a3 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -90,7 +90,7 @@
)
)
)
- ;; CHECK: (func $a4
+ ;; CHECK: (func $a4 (type $1)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -122,7 +122,7 @@
)
)
)
- ;; CHECK: (func $a5 (result i32)
+ ;; CHECK: (func $a5 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -164,7 +164,7 @@
)
)
)
- ;; CHECK: (func $a6 (result i32)
+ ;; CHECK: (func $a6 (type $2) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -226,7 +226,7 @@
)
)
)
- ;; CHECK: (func $a7 (result i32)
+ ;; CHECK: (func $a7 (type $2) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -300,7 +300,7 @@
)
)
)
- ;; CHECK: (func $a8 (result i32)
+ ;; CHECK: (func $a8 (type $2) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -401,7 +401,7 @@
)
)
)
- ;; CHECK: (func $a9 (result i32)
+ ;; CHECK: (func $a9 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -457,7 +457,7 @@
)
)
)
- ;; CHECK: (func $a10 (result i32)
+ ;; CHECK: (func $a10 (type $2) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -565,7 +565,7 @@
(br $outer (i32.const 8))
)
)
- ;; CHECK: (func $a11
+ ;; CHECK: (func $a11 (type $1)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (drop
@@ -578,7 +578,7 @@
(drop (i32.const 1))
)
)
- ;; CHECK: (func $a12 (result i32)
+ ;; CHECK: (func $a12 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (if
@@ -603,7 +603,7 @@
(i32.const 2)
)
)
- ;; CHECK: (func $a13 (result i32)
+ ;; CHECK: (func $a13 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -653,7 +653,7 @@
)
)
)
- ;; CHECK: (func $a14 (result i32)
+ ;; CHECK: (func $a14 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -688,7 +688,7 @@
)
)
)
- ;; CHECK: (func $a15
+ ;; CHECK: (func $a15 (type $1)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f32)
;; CHECK-NEXT: (local $2 f32)
@@ -733,7 +733,7 @@
)
)
)
- ;; CHECK: (func $a16 (result i32)
+ ;; CHECK: (func $a16 (type $2) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -809,7 +809,7 @@
(i32.const 0)
)
)
- ;; CHECK: (func $a17 (result f32)
+ ;; CHECK: (func $a17 (type $none_=>_f32) (result f32)
;; CHECK-NEXT: (local $var$0 f32)
;; CHECK-NEXT: (local $1 f32)
;; CHECK-NEXT: (local $2 f32)
@@ -858,7 +858,7 @@
)
)
)
- ;; CHECK: (func $a18 (result i32)
+ ;; CHECK: (func $a18 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $label$1
@@ -897,7 +897,7 @@
)
)
)
- ;; CHECK: (func $a19 (result f32)
+ ;; CHECK: (func $a19 (type $none_=>_f32) (result f32)
;; CHECK-NEXT: (block $label$0
;; CHECK-NEXT: (block $label$1
;; CHECK-NEXT: (unreachable)
@@ -933,13 +933,13 @@
)
)
)
- ;; CHECK: (func $call-me (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $call-me (type $ii) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $call-me (param $0 i32) (param $1 i32)
(nop)
)
- ;; CHECK: (func $code-to-kill
+ ;; CHECK: (func $code-to-kill (type $1)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -1866,7 +1866,7 @@
(i32.const 1337)
)
)
- ;; CHECK: (func $killer
+ ;; CHECK: (func $killer (type $1)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
@@ -1882,7 +1882,7 @@
(i32.const 1000)
)
)
- ;; CHECK: (func $target
+ ;; CHECK: (func $target (type $1)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 2000)
;; CHECK-NEXT: )
@@ -1892,7 +1892,7 @@
(i32.const 2000)
)
)
- ;; CHECK: (func $typed-block-none-then-unreachable (result i32)
+ ;; CHECK: (func $typed-block-none-then-unreachable (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $top-typed
@@ -1929,7 +1929,7 @@
)
)
)
- ;; CHECK: (func $typed-block-remove-br-changes-type (param $$$0 i32) (result i32)
+ ;; CHECK: (func $typed-block-remove-br-changes-type (type $3) (param $$$0 i32) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
@@ -1998,7 +1998,7 @@
(i32.const 0)
)
)
- ;; CHECK: (func $global
+ ;; CHECK: (func $global (type $1)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (unreachable)
@@ -2024,7 +2024,7 @@
(i32.const 1)
)
)
- ;; CHECK: (func $ret (result i32)
+ ;; CHECK: (func $ret (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block
@@ -2051,7 +2051,7 @@
(nop)
(i32.const 0)
)
- ;; CHECK: (func $unreachable-br (result i32)
+ ;; CHECK: (func $unreachable-br (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $out
@@ -2078,7 +2078,7 @@
)
)
)
- ;; CHECK: (func $unreachable-br-loop (result i32)
+ ;; CHECK: (func $unreachable-br-loop (type $2) (result i32)
;; CHECK-NEXT: (loop $out
;; CHECK-NEXT: (br $out)
;; CHECK-NEXT: (unreachable)
@@ -2090,7 +2090,7 @@
(br $out)
)
)
- ;; CHECK: (func $unreachable-block-ends-switch (result i32)
+ ;; CHECK: (func $unreachable-block-ends-switch (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $label$0
@@ -2127,7 +2127,7 @@
(i32.const 19)
)
)
- ;; CHECK: (func $unreachable-block-ends-br_if (result i32)
+ ;; CHECK: (func $unreachable-block-ends-br_if (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $label$0
@@ -2164,7 +2164,7 @@
(i32.const 19)
)
)
- ;; CHECK: (func $unreachable-brs-3 (result i32)
+ ;; CHECK: (func $unreachable-brs-3 (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block $label$0
@@ -2200,7 +2200,7 @@
(i32.const 21)
)
)
- ;; CHECK: (func $unreachable-brs-4 (param $var$0 i32) (result i32)
+ ;; CHECK: (func $unreachable-brs-4 (type $3) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
@@ -2268,7 +2268,7 @@
)
)
)
- ;; CHECK: (func $call-unreach (param $var$0 i64) (param $var$1 i64) (result i64)
+ ;; CHECK: (func $call-unreach (type $4) (param $var$0 i64) (param $var$1 i64) (result i64)
;; CHECK-NEXT: (local $2 i64)
;; CHECK-NEXT: (local $3 i64)
;; CHECK-NEXT: (local $4 i32)
@@ -2399,7 +2399,7 @@
)
;; flatten-specific
- ;; CHECK: (func $test-flatten
+ ;; CHECK: (func $test-flatten (type $1)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -2945,7 +2945,7 @@
)
)
)
- ;; CHECK: (func $flatten-return-value (result i32)
+ ;; CHECK: (func $flatten-return-value (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block
@@ -2975,7 +2975,7 @@
(drop (i32.add (i32.const 1) (return (i32.const 2))))
(i32.const 3)
)
- ;; CHECK: (func $unbug
+ ;; CHECK: (func $unbug (type $1)
;; CHECK-NEXT: (local $12 i32)
;; CHECK-NEXT: (local $432 i32)
;; CHECK-NEXT: (local $430 i32)
@@ -3155,7 +3155,7 @@
)
)
)
- ;; CHECK: (func $outer-block-typed (param $var$0 i32) (result i32)
+ ;; CHECK: (func $outer-block-typed (type $3) (param $var$0 i32) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
@@ -3197,7 +3197,7 @@
)
)
)
- ;; CHECK: (func $nested-br_if-with-value (result i32)
+ ;; CHECK: (func $nested-br_if-with-value (type $2) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -3254,7 +3254,7 @@
(i32.const 1)
)
)
- ;; CHECK: (func $switch-unreachable
+ ;; CHECK: (func $switch-unreachable (type $1)
;; CHECK-NEXT: (block $label$3
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (br_table $label$3
@@ -3270,7 +3270,7 @@
)
)
)
- ;; CHECK: (func $br_if_order (param $x i32) (result i32)
+ ;; CHECK: (func $br_if_order (type $3) (param $x i32) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
@@ -3348,7 +3348,7 @@
)
)
)
- ;; CHECK: (func $tees (param $x i32) (param $y i32)
+ ;; CHECK: (func $tees (type $ii) (param $x i32) (param $y i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
@@ -3391,7 +3391,7 @@
(drop (local.tee $x (unreachable)))
(drop (local.tee $y (local.tee $x (i32.const 2))))
)
- ;; CHECK: (func $return (param $x i32) (result i32)
+ ;; CHECK: (func $return (type $3) (param $x i32) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (i32.sub
@@ -3415,7 +3415,7 @@
;; targets an outer branch whose return type is a supertype of the br_if's
;; value type, we need the value to be set into two locals: one with the outer
;; block's type, and one with its value type.
- ;; CHECK: (func $subtype (result anyref)
+ ;; CHECK: (func $subtype (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $0 eqref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (local $2 nullref)
@@ -3483,7 +3483,7 @@
;; CHECK: (export "test" (func $1))
- ;; CHECK: (func $0 (param $0 i64) (param $1 f32)
+ ;; CHECK: (func $0 (type $i64_f32_=>_none) (param $0 i64) (param $1 f32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $0 (param $0 i64) (param $1 f32)
@@ -3501,7 +3501,7 @@
)
;; non-nullable temp vars we add must be handled properly, as non-nullable
;; locals are not allowed
-;; CHECK: (func $1 (result i32)
+;; CHECK: (func $1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (return
;; CHECK-NEXT: (i32.const -111)
@@ -3516,7 +3516,7 @@
(type $none_=>_none (func))
;; CHECK: (type $none_=>_funcref (func (result funcref)))
- ;; CHECK: (func $0 (result funcref)
+ ;; CHECK: (func $0 (type $none_=>_funcref) (result funcref)
;; CHECK-NEXT: (local $0 (ref nofunc))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (ref.as_non_null
diff --git a/test/lit/passes/generate-dyncalls_all-features.wast b/test/lit/passes/generate-dyncalls_all-features.wast
index 5f29a365d..63ca6a632 100644
--- a/test/lit/passes/generate-dyncalls_all-features.wast
+++ b/test/lit/passes/generate-dyncalls_all-features.wast
@@ -28,13 +28,13 @@
;; CHECK: (export "dynCall_vii" (func $dynCall_vii))
- ;; CHECK: (func $f1 (result i32)
+ ;; CHECK: (func $f1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1024)
;; CHECK-NEXT: )
(func $f1 (result i32)
(i32.const 1024)
)
- ;; CHECK: (func $f2 (param $0 i32) (result i64)
+ ;; CHECK: (func $f2 (type $i32_=>_i64) (param $0 i32) (result i64)
;; CHECK-NEXT: (i64.const 42)
;; CHECK-NEXT: )
(func $f2 (param i32) (result i64)
@@ -43,20 +43,20 @@
(table 2 2 funcref)
(elem (i32.const 0) $f1 $f2)
)
-;; CHECK: (func $dynCall_i (param $fptr i32) (result i32)
+;; CHECK: (func $dynCall_i (type $i32_=>_i32) (param $fptr i32) (result i32)
;; CHECK-NEXT: (call_indirect $0 (type $none_=>_i32)
;; CHECK-NEXT: (local.get $fptr)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $dynCall_ji (param $fptr i32) (param $0 i32) (result i64)
+;; CHECK: (func $dynCall_ji (type $i32_i32_=>_i64) (param $fptr i32) (param $0 i32) (result i64)
;; CHECK-NEXT: (call_indirect $0 (type $i32_=>_i64)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $fptr)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $dynCall_vii (param $fptr i32) (param $0 i32) (param $1 i32)
+;; CHECK: (func $dynCall_vii (type $i32_i32_i32_=>_none) (param $fptr i32) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (call_indirect $0 (type $i32_i32_=>_none)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
@@ -83,20 +83,20 @@
;; CHECK: (export "dynCall_vii" (func $dynCall_vii))
- ;; CHECK: (func $f (result i32)
+ ;; CHECK: (func $f (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
(func $f (result i32)
(i32.const 42)
)
)
-;; CHECK: (func $dynCall_i (param $fptr i32) (result i32)
+;; CHECK: (func $dynCall_i (type $i32_=>_i32) (param $fptr i32) (result i32)
;; CHECK-NEXT: (call_indirect $timport$0 (type $none_=>_i32)
;; CHECK-NEXT: (local.get $fptr)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $dynCall_vii (param $fptr i32) (param $0 i32) (param $1 i32)
+;; CHECK: (func $dynCall_vii (type $i32_i32_i32_=>_none) (param $fptr i32) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (call_indirect $timport$0 (type $i32_i32_=>_none)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
diff --git a/test/lit/passes/global-effects.wast b/test/lit/passes/global-effects.wast
index 4207ae01f..18876c3a4 100644
--- a/test/lit/passes/global-effects.wast
+++ b/test/lit/passes/global-effects.wast
@@ -31,7 +31,7 @@
;; DISCARD: (tag $tag (param))
(tag $tag)
- ;; WITHOUT: (func $main
+ ;; WITHOUT: (func $main (type $none_=>_none)
;; WITHOUT-NEXT: (call $nop)
;; WITHOUT-NEXT: (call $unreachable)
;; WITHOUT-NEXT: (call $call-nop)
@@ -40,12 +40,12 @@
;; WITHOUT-NEXT: (call $unimportant-effects)
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $main
+ ;; INCLUDE: (func $main (type $none_=>_none)
;; INCLUDE-NEXT: (call $unreachable)
;; INCLUDE-NEXT: (call $call-nop)
;; INCLUDE-NEXT: (call $call-unreachable)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $main
+ ;; DISCARD: (func $main (type $none_=>_none)
;; DISCARD-NEXT: (call $nop)
;; DISCARD-NEXT: (call $unreachable)
;; DISCARD-NEXT: (call $call-nop)
@@ -73,13 +73,13 @@
)
)
- ;; WITHOUT: (func $cycle
+ ;; WITHOUT: (func $cycle (type $none_=>_none)
;; WITHOUT-NEXT: (call $cycle)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $cycle
+ ;; INCLUDE: (func $cycle (type $none_=>_none)
;; INCLUDE-NEXT: (call $cycle)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $cycle
+ ;; DISCARD: (func $cycle (type $none_=>_none)
;; DISCARD-NEXT: (call $cycle)
;; DISCARD-NEXT: )
(func $cycle
@@ -88,39 +88,39 @@
(call $cycle)
)
- ;; WITHOUT: (func $nop
+ ;; WITHOUT: (func $nop (type $none_=>_none)
;; WITHOUT-NEXT: (nop)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $nop
+ ;; INCLUDE: (func $nop (type $none_=>_none)
;; INCLUDE-NEXT: (nop)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $nop
+ ;; DISCARD: (func $nop (type $none_=>_none)
;; DISCARD-NEXT: (nop)
;; DISCARD-NEXT: )
(func $nop
(nop)
)
- ;; WITHOUT: (func $unreachable
+ ;; WITHOUT: (func $unreachable (type $none_=>_none)
;; WITHOUT-NEXT: (unreachable)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $unreachable
+ ;; INCLUDE: (func $unreachable (type $none_=>_none)
;; INCLUDE-NEXT: (unreachable)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $unreachable
+ ;; DISCARD: (func $unreachable (type $none_=>_none)
;; DISCARD-NEXT: (unreachable)
;; DISCARD-NEXT: )
(func $unreachable
(unreachable)
)
- ;; WITHOUT: (func $call-nop
+ ;; WITHOUT: (func $call-nop (type $none_=>_none)
;; WITHOUT-NEXT: (call $nop)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $call-nop
+ ;; INCLUDE: (func $call-nop (type $none_=>_none)
;; INCLUDE-NEXT: (nop)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $call-nop
+ ;; DISCARD: (func $call-nop (type $none_=>_none)
;; DISCARD-NEXT: (call $nop)
;; DISCARD-NEXT: )
(func $call-nop
@@ -128,20 +128,20 @@
(call $nop)
)
- ;; WITHOUT: (func $call-unreachable
+ ;; WITHOUT: (func $call-unreachable (type $none_=>_none)
;; WITHOUT-NEXT: (call $unreachable)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $call-unreachable
+ ;; INCLUDE: (func $call-unreachable (type $none_=>_none)
;; INCLUDE-NEXT: (call $unreachable)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $call-unreachable
+ ;; DISCARD: (func $call-unreachable (type $none_=>_none)
;; DISCARD-NEXT: (call $unreachable)
;; DISCARD-NEXT: )
(func $call-unreachable
(call $unreachable)
)
- ;; WITHOUT: (func $unimportant-effects (result i32)
+ ;; WITHOUT: (func $unimportant-effects (type $none_=>_i32) (result i32)
;; WITHOUT-NEXT: (local $x i32)
;; WITHOUT-NEXT: (local.set $x
;; WITHOUT-NEXT: (i32.const 100)
@@ -150,7 +150,7 @@
;; WITHOUT-NEXT: (local.get $x)
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $unimportant-effects (result i32)
+ ;; INCLUDE: (func $unimportant-effects (type $none_=>_i32) (result i32)
;; INCLUDE-NEXT: (local $x i32)
;; INCLUDE-NEXT: (local.set $x
;; INCLUDE-NEXT: (i32.const 100)
@@ -159,7 +159,7 @@
;; INCLUDE-NEXT: (local.get $x)
;; INCLUDE-NEXT: )
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $unimportant-effects (result i32)
+ ;; DISCARD: (func $unimportant-effects (type $none_=>_i32) (result i32)
;; DISCARD-NEXT: (local $x i32)
;; DISCARD-NEXT: (local.set $x
;; DISCARD-NEXT: (i32.const 100)
@@ -181,7 +181,7 @@
)
)
- ;; WITHOUT: (func $call-throw-and-catch
+ ;; WITHOUT: (func $call-throw-and-catch (type $none_=>_none)
;; WITHOUT-NEXT: (try $try
;; WITHOUT-NEXT: (do
;; WITHOUT-NEXT: (call $throw)
@@ -191,10 +191,10 @@
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $call-throw-and-catch
+ ;; INCLUDE: (func $call-throw-and-catch (type $none_=>_none)
;; INCLUDE-NEXT: (nop)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $call-throw-and-catch
+ ;; DISCARD: (func $call-throw-and-catch (type $none_=>_none)
;; DISCARD-NEXT: (try $try
;; DISCARD-NEXT: (do
;; DISCARD-NEXT: (call $throw)
@@ -216,7 +216,7 @@
)
)
- ;; WITHOUT: (func $call-unreachable-and-catch
+ ;; WITHOUT: (func $call-unreachable-and-catch (type $none_=>_none)
;; WITHOUT-NEXT: (try $try
;; WITHOUT-NEXT: (do
;; WITHOUT-NEXT: (call $unreachable)
@@ -226,10 +226,10 @@
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $call-unreachable-and-catch
+ ;; INCLUDE: (func $call-unreachable-and-catch (type $none_=>_none)
;; INCLUDE-NEXT: (call $unreachable)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $call-unreachable-and-catch
+ ;; DISCARD: (func $call-unreachable-and-catch (type $none_=>_none)
;; DISCARD-NEXT: (try $try
;; DISCARD-NEXT: (do
;; DISCARD-NEXT: (call $unreachable)
@@ -251,7 +251,7 @@
)
)
- ;; WITHOUT: (func $call-throw-or-unreachable-and-catch (param $x i32)
+ ;; WITHOUT: (func $call-throw-or-unreachable-and-catch (type $i32_=>_none) (param $x i32)
;; WITHOUT-NEXT: (try $try
;; WITHOUT-NEXT: (do
;; WITHOUT-NEXT: (if
@@ -265,7 +265,7 @@
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $call-throw-or-unreachable-and-catch (param $x i32)
+ ;; INCLUDE: (func $call-throw-or-unreachable-and-catch (type $i32_=>_none) (param $x i32)
;; INCLUDE-NEXT: (try $try
;; INCLUDE-NEXT: (do
;; INCLUDE-NEXT: (if
@@ -279,7 +279,7 @@
;; INCLUDE-NEXT: )
;; INCLUDE-NEXT: )
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $call-throw-or-unreachable-and-catch (param $x i32)
+ ;; DISCARD: (func $call-throw-or-unreachable-and-catch (type $i32_=>_none) (param $x i32)
;; DISCARD-NEXT: (try $try
;; DISCARD-NEXT: (do
;; DISCARD-NEXT: (if
@@ -308,13 +308,13 @@
)
)
- ;; WITHOUT: (func $throw
+ ;; WITHOUT: (func $throw (type $none_=>_none)
;; WITHOUT-NEXT: (throw $tag)
;; WITHOUT-NEXT: )
- ;; INCLUDE: (func $throw
+ ;; INCLUDE: (func $throw (type $none_=>_none)
;; INCLUDE-NEXT: (throw $tag)
;; INCLUDE-NEXT: )
- ;; DISCARD: (func $throw
+ ;; DISCARD: (func $throw (type $none_=>_none)
;; DISCARD-NEXT: (throw $tag)
;; DISCARD-NEXT: )
(func $throw
diff --git a/test/lit/passes/global-refining.wast b/test/lit/passes/global-refining.wast
index 645b170d4..2aa803285 100644
--- a/test/lit/passes/global-refining.wast
+++ b/test/lit/passes/global-refining.wast
@@ -6,7 +6,7 @@
;; a null, so we have nothing concrete to improve with (though we could use
;; the type of the null perhaps, TODO). The second is a ref.func which lets
;; us refine.
- ;; CHECK: (type $foo_t (func_subtype func))
+ ;; CHECK: (type $foo_t (func))
(type $foo_t (func))
;; CHECK: (global $func-null-init (mut funcref) (ref.null nofunc))
@@ -23,7 +23,7 @@
;; Globals with later assignments of null. The global with a function in its
;; init will update the null to allow it to refine.
- ;; CHECK: (type $foo_t (func_subtype func))
+ ;; CHECK: (type $foo_t (func))
(type $foo_t (func))
;; CHECK: (global $func-null-init (mut funcref) (ref.null nofunc))
@@ -49,7 +49,7 @@
;; Globals with later assignments of something non-null. Both can be refined,
;; and the one with a non-null initial value can even become non-nullable.
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $func-null-init (mut (ref null $none_=>_none)) (ref.null nofunc))
(global $func-null-init (mut funcref) (ref.null func))
@@ -76,9 +76,9 @@
;; A global with multiple later assignments. The refined type is more
;; specific than the original, but less than each of the non-null values.
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
(type $array (array i8))
diff --git a/test/lit/passes/gsi.wast b/test/lit/passes/gsi.wast
index 66ca43de8..52ba5d7f6 100644
--- a/test/lit/passes/gsi.wast
+++ b/test/lit/passes/gsi.wast
@@ -2,10 +2,10 @@
;; RUN: foreach %s %t wasm-opt --nominal --gsi -all -S -o - | filecheck %s
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -53,10 +53,10 @@
;; As above, but now the field is mutable, so we cannot optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -90,14 +90,13 @@
;; Just one global.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct1 (struct (field i32)))
(type $struct1 (struct i32))
- ;; CHECK: (type $struct2 (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct2 (struct (field i32)))
(type $struct2 (struct i32))
-
- ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_=>_none (func_subtype (param (ref null $struct1) (ref null $struct2)) func))
+ ;; CHECK: (type $ref?|$struct1|_ref?|$struct2|_=>_none (func (param (ref null $struct1) (ref null $struct2))))
;; CHECK: (import "a" "b" (global $imported i32))
(import "a" "b" (global $imported i32))
@@ -163,10 +162,10 @@
;; Three globals. For now, we do not optimize here.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -208,10 +207,10 @@
;; Three globals, as above, but now two agree on their values. We can optimize
;; by comparing to the one that has a single value.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -259,10 +258,10 @@
;; As above, but move the different value of the three to the middle.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 1337)
@@ -310,10 +309,10 @@
;; As above, but move the different value of the three to the end.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 1337)
@@ -361,10 +360,10 @@
;; Four values, two pairs of equal ones. We do not optimize this.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -413,10 +412,10 @@
;; Four values, three equal and one unique. We can optimize this with a single
;; comparison on the unique one.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -471,10 +470,10 @@
;; A struct.new inside a function stops us from optimizing.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -519,10 +518,10 @@
;; We ignore imports, as we assume a closed world, but that might change in the
;; future. For now, we will optimize here.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (import "a" "b" (global $global-import (ref $struct)))
(import "a" "b" (global $global-import (ref $struct)))
@@ -567,13 +566,13 @@
;; A struct.new in a non-toplevel position in a global stops us from
;; optimizing.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $tuple (struct_subtype (field anyref) (field anyref) data))
+ ;; CHECK: (type $tuple (struct (field anyref) (field anyref)))
(type $tuple (struct anyref anyref))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -621,13 +620,13 @@
;; As above, but remove the struct.new in a nested position, while keeping all
;; the other stuff in the above test. Now we should optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $tuple (struct_subtype (field anyref) (field anyref) data))
+ ;; CHECK: (type $tuple (struct (field anyref) (field anyref)))
(type $tuple (struct anyref anyref))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -677,10 +676,10 @@
;; When one of the globals is mutable, we cannot optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -714,10 +713,10 @@
;; A subtype is not optimizable, which prevents $struct from being optimized.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct_subtype i32 data))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (type $sub-struct (struct_subtype (field i32) $struct))
(type $sub-struct (struct_subtype i32 $struct))
@@ -765,13 +764,13 @@
;; A *super*-type is not optimizable, but that does not block us, and we can
;; optimize.
(module
- ;; CHECK: (type $super-struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $super-struct (struct (field i32)))
(type $super-struct (struct_subtype i32 data))
;; CHECK: (type $struct (struct_subtype (field i32) $super-struct))
(type $struct (struct_subtype i32 $super-struct))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
@@ -823,13 +822,13 @@
;; One global for each of the type and the subtype. The optimization will pick
;; between their 2 values.
(module
- ;; CHECK: (type $super-struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $super-struct (struct (field i32)))
(type $super-struct (struct_subtype i32 data))
;; CHECK: (type $struct (struct_subtype (field i32) $super-struct))
(type $struct (struct_subtype i32 $super-struct))
- ;; CHECK: (type $ref?|$struct|_ref?|$super-struct|_=>_none (func_subtype (param (ref null $struct) (ref null $super-struct)) func))
+ ;; CHECK: (type $ref?|$struct|_ref?|$super-struct|_=>_none (func (param (ref null $struct) (ref null $super-struct))))
;; CHECK: (global $global1 (ref $super-struct) (struct.new $super-struct
;; CHECK-NEXT: (i32.const 42)
@@ -890,10 +889,10 @@
;; One global has a non-constant field, so we cannot optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.add
@@ -934,7 +933,7 @@
;; One global each for two subtypes of a common supertype, and one for the
;; supertype.
(module
- ;; CHECK: (type $super-struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $super-struct (struct (field i32)))
(type $super-struct (struct_subtype i32 data))
;; CHECK: (type $struct1 (struct_subtype (field i32) (field f32) $super-struct))
@@ -944,7 +943,7 @@
(type $struct2 (struct_subtype i32 f64 $super-struct))
- ;; CHECK: (type $ref?|$super-struct|_ref?|$struct1|_ref?|$struct2|_=>_none (func_subtype (param (ref null $super-struct) (ref null $struct1) (ref null $struct2)) func))
+ ;; CHECK: (type $ref?|$super-struct|_ref?|$struct1|_ref?|$struct2|_=>_none (func (param (ref null $super-struct) (ref null $struct1) (ref null $struct2))))
;; CHECK: (global $global0 (ref $super-struct) (struct.new $super-struct
;; CHECK-NEXT: (i32.const 42)
@@ -1027,7 +1026,7 @@
;; As above, but now the subtypes each have 2 values, and we can optimize.
(module
- ;; CHECK: (type $super-struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $super-struct (struct (field i32)))
(type $super-struct (struct_subtype i32 data))
;; CHECK: (type $struct1 (struct_subtype (field i32) (field f32) $super-struct))
@@ -1037,7 +1036,7 @@
(type $struct2 (struct_subtype i32 f64 $super-struct))
- ;; CHECK: (type $ref?|$super-struct|_ref?|$struct1|_ref?|$struct2|_=>_none (func_subtype (param (ref null $super-struct) (ref null $struct1) (ref null $struct2)) func))
+ ;; CHECK: (type $ref?|$super-struct|_ref?|$struct1|_ref?|$struct2|_=>_none (func (param (ref null $super-struct) (ref null $struct1) (ref null $struct2))))
;; CHECK: (global $global0 (ref $super-struct) (struct.new $super-struct
;; CHECK-NEXT: (i32.const 42)
@@ -1137,10 +1136,10 @@
;; Multiple globals, but all the same value, so we do not even need a select and
;; can just apply the value.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (global $global1 (ref $struct) (struct.new $struct
;; CHECK-NEXT: (i32.const 42)
diff --git a/test/lit/passes/gsi_vacuum_precompute.wast b/test/lit/passes/gsi_vacuum_precompute.wast
index 856499ba8..9f67c84f5 100644
--- a/test/lit/passes/gsi_vacuum_precompute.wast
+++ b/test/lit/passes/gsi_vacuum_precompute.wast
@@ -20,21 +20,21 @@
;; that could prevent later opts.
(module
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
- ;; CHECK: (type $itable1 (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $itable1 (struct (field (ref $vtable))))
(type $itable1 (struct_subtype (field (ref $vtable)) data))
- ;; CHECK: (type $itable2 (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $itable2 (struct (field (ref $vtable))))
(type $itable2 (struct_subtype (field (ref $vtable)) data))
(type $vtable (struct_subtype (field funcref) data))
;; Two $vtable instances are created, in separate enclosing objects.
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref|$itable1|_=>_funcref (func_subtype (param (ref $itable1)) (result funcref) func))
+ ;; CHECK: (type $ref|$itable1|_=>_funcref (func (param (ref $itable1)) (result funcref)))
- ;; CHECK: (type $ref|$itable2|_=>_funcref (func_subtype (param (ref $itable2)) (result funcref) func))
+ ;; CHECK: (type $ref|$itable2|_=>_funcref (func (param (ref $itable2)) (result funcref)))
;; CHECK: (global $itable1 (ref $itable1) (struct.new $itable1
;; CHECK-NEXT: (struct.new $vtable
diff --git a/test/lit/passes/gto-mutability.wast b/test/lit/passes/gto-mutability.wast
index edcf43bb2..4f1e9a6d4 100644
--- a/test/lit/passes/gto-mutability.wast
+++ b/test/lit/passes/gto-mutability.wast
@@ -7,20 +7,20 @@
;; The struct here has three fields, and the second of them has no struct.set
;; which means we can make it immutable.
- ;; CHECK: (type $struct (struct_subtype (field (mut funcref)) (field funcref) (field (mut funcref)) data))
+ ;; CHECK: (type $struct (struct (field (mut funcref)) (field funcref) (field (mut funcref))))
(type $struct (struct (field (mut funcref)) (field (mut funcref)) (field (mut funcref))))
- ;; CHECK: (type $two-params (func_subtype (param (ref $struct) (ref $struct)) func))
+ ;; CHECK: (type $two-params (func (param (ref $struct) (ref $struct))))
(type $two-params (func (param (ref $struct)) (param (ref $struct))))
;; Test that we update tag types properly.
(table 0 funcref)
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
- ;; CHECK: (type $none_=>_ref?|$struct| (func_subtype (result (ref null $struct)) func))
+ ;; CHECK: (type $none_=>_ref?|$struct| (func (result (ref null $struct))))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (table $0 0 funcref)
@@ -171,14 +171,14 @@
;; Test recursion between structs where we only modify one. Specifically $B
;; has no writes to either of its fields.
- ;; CHECK: (type $A (struct_subtype (field (mut (ref null $B))) (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut (ref null $B))) (field (mut i32))))
(type $A (struct (field (mut (ref null $B))) (field (mut i32)) ))
- ;; CHECK: (type $B (struct_subtype (field (ref null $A)) (field f64) data))
+ ;; CHECK: (type $B (struct (field (ref null $A)) (field f64)))
(type $B (struct (field (mut (ref null $A))) (field (mut f64)) ))
- ;; CHECK: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CHECK: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func_subtype (param (ref null $A) (ref null $B)) func))
+ ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func (param (ref null $A) (ref null $B))))
;; CHECK: (func $func (type $ref|$A|_=>_none) (param $x (ref $A))
;; CHECK-NEXT: (struct.set $A 0
@@ -234,15 +234,15 @@
(module
;; As before, but flipped so that $A's fields can become immutable.
- ;; CHECK: (type $B (struct_subtype (field (mut (ref null $A))) (field (mut f64)) data))
+ ;; CHECK: (type $B (struct (field (mut (ref null $A))) (field (mut f64))))
(type $B (struct (field (mut (ref null $A))) (field (mut f64)) ))
- ;; CHECK: (type $A (struct_subtype (field (ref null $B)) (field i32) data))
+ ;; CHECK: (type $A (struct (field (ref null $B)) (field i32)))
(type $A (struct (field (mut (ref null $B))) (field (mut i32)) ))
- ;; CHECK: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; CHECK: (type $ref|$B|_=>_none (func (param (ref $B))))
- ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func_subtype (param (ref null $A) (ref null $B)) func))
+ ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func (param (ref null $A) (ref null $B))))
;; CHECK: (func $func (type $ref|$B|_=>_none) (param $x (ref $B))
;; CHECK-NEXT: (struct.set $B 0
@@ -298,16 +298,16 @@
(module
;; As before, but now one field in each can become immutable.
- ;; CHECK: (type $A (struct_subtype (field (mut (ref null $B))) (field i32) data))
+ ;; CHECK: (type $A (struct (field (mut (ref null $B))) (field i32)))
- ;; CHECK: (type $B (struct_subtype (field (ref null $A)) (field (mut f64)) data))
+ ;; CHECK: (type $B (struct (field (ref null $A)) (field (mut f64))))
(type $B (struct (field (mut (ref null $A))) (field (mut f64)) ))
(type $A (struct (field (mut (ref null $B))) (field (mut i32)) ))
- ;; CHECK: (type $ref|$A|_ref|$B|_=>_none (func_subtype (param (ref $A) (ref $B)) func))
+ ;; CHECK: (type $ref|$A|_ref|$B|_=>_none (func (param (ref $A) (ref $B))))
- ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func_subtype (param (ref null $A) (ref null $B)) func))
+ ;; CHECK: (type $ref?|$A|_ref?|$B|_=>_none (func (param (ref null $A) (ref null $B))))
;; CHECK: (func $func (type $ref|$A|_ref|$B|_=>_none) (param $x (ref $A)) (param $y (ref $B))
;; CHECK-NEXT: (struct.set $A 0
@@ -365,12 +365,12 @@
;; Field #1 is mutable and can become so.
;; Field #2 is mutable and must remain so.
- ;; CHECK: (type $struct (struct_subtype (field i32) (field i32) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field i32) (field i32) (field (mut i32))))
(type $struct (struct (field i32) (field (mut i32)) (field (mut i32))))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
- ;; CHECK: (type $ref?|$struct|_=>_none (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $ref?|$struct|_=>_none (func (param (ref null $struct))))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (struct.set $struct 2
@@ -413,14 +413,14 @@
;; Subtyping. Without a write in either supertype or subtype, we can
;; optimize the field to be immutable.
- ;; CHECK: (type $super (struct_subtype (field i32) data))
+ ;; CHECK: (type $super (struct (field i32)))
(type $super (struct (field (mut i32))))
;; CHECK: (type $sub (struct_subtype (field i32) $super))
(type $sub (struct_subtype (field (mut i32)) $super))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func_subtype (param (ref null $super) (ref null $sub)) func))
+ ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func (param (ref null $super) (ref null $sub))))
;; CHECK: (func $func (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -469,14 +469,14 @@
(module
;; As above, but add a write in the super, which prevents optimization.
- ;; CHECK: (type $super (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $super (struct (field (mut i32))))
(type $super (struct (field (mut i32))))
;; CHECK: (type $sub (struct_subtype (field (mut i32)) $super))
(type $sub (struct_subtype (field (mut i32)) $super))
- ;; CHECK: (type $ref|$super|_=>_none (func_subtype (param (ref $super)) func))
+ ;; CHECK: (type $ref|$super|_=>_none (func (param (ref $super))))
- ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func_subtype (param (ref null $super) (ref null $sub)) func))
+ ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func (param (ref null $super) (ref null $sub))))
;; CHECK: (func $func (type $ref|$super|_=>_none) (param $x (ref $super))
;; CHECK-NEXT: (drop
@@ -534,14 +534,14 @@
;; As above, but add a write in the sub, which prevents optimization.
- ;; CHECK: (type $super (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $super (struct (field (mut i32))))
(type $super (struct (field (mut i32))))
;; CHECK: (type $sub (struct_subtype (field (mut i32)) $super))
(type $sub (struct_subtype (field (mut i32)) $super))
- ;; CHECK: (type $ref|$sub|_=>_none (func_subtype (param (ref $sub)) func))
+ ;; CHECK: (type $ref|$sub|_=>_none (func (param (ref $sub))))
- ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func_subtype (param (ref null $super) (ref null $sub)) func))
+ ;; CHECK: (type $ref?|$super|_ref?|$sub|_=>_none (func (param (ref null $super) (ref null $sub))))
;; CHECK: (func $func (type $ref|$sub|_=>_none) (param $x (ref $sub))
;; CHECK-NEXT: (struct.set $sub 0
diff --git a/test/lit/passes/gto-removals.wast b/test/lit/passes/gto-removals.wast
index 184359f49..55a995469 100644
--- a/test/lit/passes/gto-removals.wast
+++ b/test/lit/passes/gto-removals.wast
@@ -7,9 +7,9 @@
;; A struct with a field that is never read or written, so it can be
;; removed.
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype (field (mut funcref)) data))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
@@ -22,10 +22,10 @@
(module
;; A write does not keep a field from being removed.
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype (field (mut funcref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (drop
@@ -52,10 +52,10 @@
(module
;; A new does not keep a field from being removed.
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype (field (mut funcref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (drop
@@ -75,10 +75,10 @@
(module
;; A new_default does not keep a field from being removed.
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype (field (mut funcref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (drop
@@ -97,10 +97,10 @@
(module
;; A read *does* keep a field from being removed.
- ;; CHECK: (type $struct (struct_subtype (field funcref) data))
+ ;; CHECK: (type $struct (struct (field funcref)))
(type $struct (struct_subtype (field (mut funcref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $func (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (drop
@@ -124,17 +124,17 @@
;; of removing with the immutability inference that --gto does.)
;; A struct with all fields marked mutable.
- ;; CHECK: (type $mut-struct (struct_subtype (field $r i32) (field $rw (mut i32)) (field $r-2 i32) (field $rw-2 (mut i32)) data))
+ ;; CHECK: (type $mut-struct (struct (field $r i32) (field $rw (mut i32)) (field $r-2 i32) (field $rw-2 (mut i32))))
(type $mut-struct (struct_subtype (field $r (mut i32)) (field $w (mut i32)) (field $rw (mut i32)) (field $r-2 (mut i32)) (field $w-2 (mut i32)) (field $rw-2 (mut i32)) data))
;; A similar struct but with all fields marked immutable, and the only
;; writes are from during creation (so all fields are at least writeable).
- ;; CHECK: (type $imm-struct (struct_subtype (field $rw i32) (field $rw-2 i32) data))
+ ;; CHECK: (type $imm-struct (struct (field $rw i32) (field $rw-2 i32)))
(type $imm-struct (struct_subtype (field $w i32) (field $rw i32) (field $w-2 i32) (field $rw-2 i32) data))
- ;; CHECK: (type $ref|$mut-struct|_=>_none (func_subtype (param (ref $mut-struct)) func))
+ ;; CHECK: (type $ref|$mut-struct|_=>_none (func (param (ref $mut-struct))))
- ;; CHECK: (type $ref|$imm-struct|_=>_none (func_subtype (param (ref $imm-struct)) func))
+ ;; CHECK: (type $ref|$imm-struct|_=>_none (func (param (ref $imm-struct))))
;; CHECK: (func $func-mut (type $ref|$mut-struct|_=>_none) (param $x (ref $mut-struct))
;; CHECK-NEXT: (drop
@@ -275,9 +275,9 @@
;; A vtable-like structure created in a global location. Only some of the
;; fields are accessed.
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $vtable (struct_subtype (field $v1 funcref) (field $v2 funcref) data))
+ ;; CHECK: (type $vtable (struct (field $v1 funcref) (field $v2 funcref)))
(type $vtable (struct_subtype (field $v0 funcref) (field $v1 funcref) (field $v2 funcref) (field $v3 funcref) (field $v4 funcref) data))
;; CHECK: (global $vtable (ref $vtable) (struct.new $vtable
@@ -349,10 +349,10 @@
;; by coincidence.
- ;; CHECK: (type $vtable (struct_subtype (field $v1 i64) (field $v2 f32) data))
+ ;; CHECK: (type $vtable (struct (field $v1 i64) (field $v2 f32)))
(type $vtable (struct_subtype (field $v0 i32) (field $v1 i64) (field $v2 f32) (field $v3 f64) (field $v4 anyref) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $vtable (ref $vtable) (struct.new $vtable
;; CHECK-NEXT: (i64.const 1)
@@ -399,21 +399,21 @@
(module
;; A new with side effects
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32 f64 (ref any)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $ref|any|_ref?|$struct|_=>_none (func_subtype (param (ref any) (ref null $struct)) func))
+ ;; CHECK: (type $ref|any|_ref?|$struct|_=>_none (func (param (ref any) (ref null $struct))))
- ;; CHECK: (type $ref|any|_=>_none (func_subtype (param (ref any)) func))
+ ;; CHECK: (type $ref|any|_=>_none (func (param (ref any))))
- ;; CHECK: (type $i32_=>_i32 (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (type $i32_=>_f64 (func_subtype (param i32) (result f64) func))
+ ;; CHECK: (type $i32_=>_f64 (func (param i32) (result f64)))
- ;; CHECK: (type $i32_=>_ref|any| (func_subtype (param i32) (result (ref any)) func))
+ ;; CHECK: (type $i32_=>_ref|any| (func (param i32) (result (ref any))))
;; CHECK: (global $imm-i32 i32 (i32.const 1234))
(global $imm-i32 i32 (i32.const 1234))
@@ -626,14 +626,14 @@
;; We can remove fields from the end if they are only used in subtypes, because
;; the subtypes can always add fields at the end (and only at the end).
(module
- ;; CHECK: (type $parent (struct_subtype (field i32) (field i64) data))
+ ;; CHECK: (type $parent (struct (field i32) (field i64)))
;; CHECK: (type $child (struct_subtype (field i32) (field i64) (field f32) (field f64) (field anyref) $parent))
(type $child (struct_subtype (field i32) (field i64) (field f32) (field f64) (field anyref) $parent))
(type $parent (struct_subtype (field i32) (field i64) (field f32) (field f64) data))
- ;; CHECK: (type $ref|$parent|_ref|$child|_=>_none (func_subtype (param (ref $parent) (ref $child)) func))
+ ;; CHECK: (type $ref|$parent|_ref|$child|_=>_none (func (param (ref $parent) (ref $child))))
;; CHECK: (func $func (type $ref|$parent|_ref|$child|_=>_none) (param $x (ref $parent)) (param $y (ref $child))
;; CHECK-NEXT: (drop
@@ -676,14 +676,14 @@
)
(module
- ;; CHECK: (type $parent (struct_subtype (field i32) (field i64) (field (mut f32)) data))
+ ;; CHECK: (type $parent (struct (field i32) (field i64) (field (mut f32))))
;; CHECK: (type $child (struct_subtype (field i32) (field i64) (field (mut f32)) (field f64) (field anyref) $parent))
(type $child (struct_subtype (field (mut i32)) (field (mut i64)) (field (mut f32)) (field (mut f64)) (field (mut anyref)) $parent))
(type $parent (struct_subtype (field (mut i32)) (field (mut i64)) (field (mut f32)) (field (mut f64)) data))
- ;; CHECK: (type $ref|$parent|_ref|$child|_=>_none (func_subtype (param (ref $parent) (ref $child)) func))
+ ;; CHECK: (type $ref|$parent|_ref|$child|_=>_none (func (param (ref $parent) (ref $child))))
;; CHECK: (func $func (type $ref|$parent|_ref|$child|_=>_none) (param $x (ref $parent)) (param $y (ref $child))
;; CHECK-NEXT: (struct.set $parent 2
@@ -733,9 +733,9 @@
;; reads might be of data of either child, of course (as a refernce to the
;; parent might point to them), so we cannot optimize here.
(module
- ;; CHECK: (type $parent (struct_subtype (field i32) data))
+ ;; CHECK: (type $parent (struct (field i32)))
(type $parent (struct_subtype (field i32) data))
- ;; CHECK: (type $ref|$parent|_ref|$child1|_ref|$child2|_=>_none (func_subtype (param (ref $parent) (ref $child1) (ref $child2)) func))
+ ;; CHECK: (type $ref|$parent|_ref|$child1|_ref|$child2|_=>_none (func (param (ref $parent) (ref $child1) (ref $child2))))
;; CHECK: (type $child1 (struct_subtype (field i32) $parent))
(type $child1 (struct_subtype (field i32) $parent))
@@ -757,13 +757,13 @@
;; As above, but now the read is just of one child. We can remove the field
;; from the parent and the other child.
(module
- ;; CHECK: (type $parent (struct_subtype data))
+ ;; CHECK: (type $parent (struct ))
;; CHECK: (type $child1 (struct_subtype (field i32) $parent))
(type $child1 (struct_subtype (field i32) $parent))
(type $parent (struct_subtype (field i32) data))
- ;; CHECK: (type $ref|$parent|_ref|$child1|_ref|$child2|_=>_none (func_subtype (param (ref $parent) (ref $child1) (ref $child2)) func))
+ ;; CHECK: (type $ref|$parent|_ref|$child1|_ref|$child2|_=>_none (func (param (ref $parent) (ref $child1) (ref $child2))))
;; CHECK: (type $child2 (struct_subtype $parent))
(type $child2 (struct_subtype (field i32) $parent))
@@ -781,16 +781,16 @@
)
(module
- ;; CHECK: (type ${mut:i8} (struct_subtype data))
+ ;; CHECK: (type ${mut:i8} (struct ))
(type ${mut:i8} (struct_subtype (field (mut i8)) data))
- ;; CHECK: (type $ref?|${mut:i8}|_=>_none (func_subtype (param (ref null ${mut:i8})) func))
+ ;; CHECK: (type $ref?|${mut:i8}|_=>_none (func (param (ref null ${mut:i8}))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|${mut:i8}| (func_subtype (result (ref ${mut:i8})) func))
+ ;; CHECK: (type $none_=>_ref|${mut:i8}| (func (result (ref ${mut:i8}))))
;; CHECK: (func $unreachable-set (type $ref?|${mut:i8}|_=>_none) (param ${mut:i8} (ref null ${mut:i8}))
;; CHECK-NEXT: (drop
diff --git a/test/lit/passes/gto_and_cfp_in_O.wast b/test/lit/passes/gto_and_cfp_in_O.wast
index 6f0151122..a36bbc4ea 100644
--- a/test/lit/passes/gto_and_cfp_in_O.wast
+++ b/test/lit/passes/gto_and_cfp_in_O.wast
@@ -26,7 +26,7 @@
)
)
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
;; CHECK: (export "main" (func $main))
diff --git a/test/lit/passes/gufa-extern.wast b/test/lit/passes/gufa-extern.wast
index 4a626b9c9..2c38a0118 100644
--- a/test/lit/passes/gufa-extern.wast
+++ b/test/lit/passes/gufa-extern.wast
@@ -2,7 +2,7 @@
;; RUN: foreach %s %t wasm-opt -all --gufa --nominal -S -o - | filecheck %s
(module
- ;; CHECK: (type $externref_anyref_=>_none (func_subtype (param externref anyref) func))
+ ;; CHECK: (type $externref_anyref_=>_none (func (param externref anyref)))
;; CHECK: (export "externals" (func $externals))
diff --git a/test/lit/passes/gufa-optimizing.wast b/test/lit/passes/gufa-optimizing.wast
index 7ccd6ae34..ac69ed241 100644
--- a/test/lit/passes/gufa-optimizing.wast
+++ b/test/lit/passes/gufa-optimizing.wast
@@ -9,12 +9,12 @@
(module
;; NO_OPT: (type $none_=>_i32 (func (result i32)))
- ;; NO_OPT: (func $foo (result i32)
+ ;; NO_OPT: (func $foo (type $none_=>_i32) (result i32)
;; NO_OPT-NEXT: (i32.const 1)
;; NO_OPT-NEXT: )
;; DO_OPT: (type $none_=>_i32 (func (result i32)))
- ;; DO_OPT: (func $foo (result i32)
+ ;; DO_OPT: (func $foo (type $none_=>_i32) (result i32)
;; DO_OPT-NEXT: (i32.const 1)
;; DO_OPT-NEXT: )
(func $foo (result i32)
@@ -22,7 +22,7 @@
(i32.const 1)
)
- ;; NO_OPT: (func $bar (result i32)
+ ;; NO_OPT: (func $bar (type $none_=>_i32) (result i32)
;; NO_OPT-NEXT: (drop
;; NO_OPT-NEXT: (block $out (result i32)
;; NO_OPT-NEXT: (block (result i32)
@@ -42,7 +42,7 @@
;; NO_OPT-NEXT: )
;; NO_OPT-NEXT: (i32.const 1)
;; NO_OPT-NEXT: )
- ;; DO_OPT: (func $bar (result i32)
+ ;; DO_OPT: (func $bar (type $none_=>_i32) (result i32)
;; DO_OPT-NEXT: (drop
;; DO_OPT-NEXT: (call $foo)
;; DO_OPT-NEXT: )
diff --git a/test/lit/passes/gufa-refs.wast b/test/lit/passes/gufa-refs.wast
index 310bef59b..ab8e23502 100644
--- a/test/lit/passes/gufa-refs.wast
+++ b/test/lit/passes/gufa-refs.wast
@@ -2,19 +2,19 @@
;; RUN: foreach %s %t wasm-opt -all --gufa --nominal -S -o - | filecheck %s
(module
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|any| (func_subtype (result (ref any)) func))
+ ;; CHECK: (type $none_=>_ref|any| (func (result (ref any))))
- ;; CHECK: (type $none_=>_funcref (func_subtype (result funcref) func))
+ ;; CHECK: (type $none_=>_funcref (func (result funcref)))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -407,10 +407,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $null anyref (ref.null none))
(global $null (ref null any) (ref.null any))
@@ -503,9 +503,9 @@
;; away *-null (which is where A-null starts with null) but not *-something
;; (which is where A-something starts with a value).
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
;; CHECK: (global $A-null anyref (ref.null none))
@@ -613,16 +613,16 @@
)
(module
- ;; CHECK: (type $ref|any|_=>_ref|any| (func_subtype (param (ref any)) (result (ref any)) func))
+ ;; CHECK: (type $ref|any|_=>_ref|any| (func (param (ref any)) (result (ref any))))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
- ;; CHECK: (type $i32_=>_i32 (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (type $ref|any|_ref|any|_ref|any|_=>_none (func_subtype (param (ref any) (ref any) (ref any)) func))
+ ;; CHECK: (type $ref|any|_ref|any|_ref|any|_=>_none (func (param (ref any) (ref any) (ref any))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $never-called (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (unreachable)
@@ -725,12 +725,12 @@
;; As above, but using indirect calls.
(module
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
- ;; CHECK: (type $two-params (func_subtype (param (ref $struct) (ref $struct)) func))
+ ;; CHECK: (type $two-params (func (param (ref $struct) (ref $struct))))
(type $two-params (func (param (ref $struct)) (param (ref $struct))))
- ;; CHECK: (type $three-params (func_subtype (param (ref $struct) (ref $struct) (ref $struct)) func))
+ ;; CHECK: (type $three-params (func (param (ref $struct) (ref $struct) (ref $struct))))
(type $three-params (func (param (ref $struct)) (param (ref $struct)) (param (ref $struct))))
(type $struct (struct))
@@ -858,9 +858,9 @@
;; As above, but using call_ref.
(module
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
- ;; CHECK: (type $two-params (func_subtype (param (ref $struct) (ref $struct)) func))
+ ;; CHECK: (type $two-params (func (param (ref $struct) (ref $struct))))
(type $two-params (func (param (ref $struct)) (param (ref $struct))))
(type $struct (struct))
@@ -900,10 +900,10 @@
;; Array creation.
(module
- ;; CHECK: (type $vector (array_subtype (mut f64) data))
+ ;; CHECK: (type $vector (array (mut f64)))
(type $vector (array (mut f64)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $arrays (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -969,17 +969,17 @@
;; Struct fields.
(module
- ;; CHECK: (type $parent (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $parent (struct (field (mut (ref null $struct)))))
;; CHECK: (type $child (struct_subtype (field (mut (ref null $struct))) (field (mut (ref null $struct))) $parent))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $parent (struct_subtype (field (mut (ref null $struct))) data))
(type $child (struct_subtype (field (mut (ref null $struct))) (field (mut (ref null $struct))) $parent))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -1220,7 +1220,7 @@
(type $B (struct_subtype (field i32) data))
(type $C (struct_subtype (field i32) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -1250,16 +1250,16 @@
;; Exact types: Writes to the parent class do not confuse us.
(module
- ;; CHECK: (type $parent (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $parent (struct (field (mut (ref null $struct)))))
;; CHECK: (type $child (struct_subtype (field (mut (ref null $struct))) (field i32) $parent))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $parent (struct_subtype (field (mut (ref null $struct))) data))
(type $child (struct_subtype (field (mut (ref null $struct))) (field i32) $parent))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $none_=>_none)
;; CHECK-NEXT: (local $child (ref null $child))
@@ -1336,12 +1336,12 @@
;; Write values to the parent *and* the child and read from the child.
(module
- ;; CHECK: (type $parent (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $parent (struct (field (mut i32))))
(type $parent (struct_subtype (field (mut i32)) data))
;; CHECK: (type $child (struct_subtype (field (mut i32)) (field i32) $parent))
(type $child (struct_subtype (field (mut i32)) (field i32) $parent))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $none_=>_none)
;; CHECK-NEXT: (local $child (ref null $child))
@@ -1428,12 +1428,12 @@
;; As above, but the $parent local can now contain a child too.
(module
- ;; CHECK: (type $parent (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $parent (struct (field (mut i32))))
(type $parent (struct_subtype (field (mut i32)) data))
;; CHECK: (type $child (struct_subtype (field (mut i32)) (field i32) $parent))
(type $child (struct_subtype (field (mut i32)) (field i32) $parent))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "func" (func $func))
@@ -1511,12 +1511,12 @@
;; As above, but now the parent and child happen to agree on the aliased value.
(module
- ;; CHECK: (type $parent (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $parent (struct (field (mut i32))))
(type $parent (struct_subtype (field (mut i32)) data))
;; CHECK: (type $child (struct_subtype (field (mut i32)) (field i32) $parent))
(type $child (struct_subtype (field (mut i32)) (field i32) $parent))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $none_=>_none)
;; CHECK-NEXT: (local $child (ref null $child))
@@ -1589,17 +1589,17 @@
(module
(type $nothing (array_subtype (mut (ref null any)) data))
- ;; CHECK: (type $null (array_subtype (mut anyref) data))
+ ;; CHECK: (type $null (array (mut anyref)))
(type $null (array_subtype (mut (ref null any)) data))
- ;; CHECK: (type $something (array_subtype (mut anyref) data))
+ ;; CHECK: (type $something (array (mut anyref)))
(type $something (array_subtype (mut (ref null any)) data))
(type $something-child (array_subtype (mut (ref null any)) $something))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
;; CHECK: (func $func (type $none_=>_none)
@@ -1725,16 +1725,16 @@
;; A big chain, from an allocation that passes through many locations along the
;; way before it is used. Nothing here can be optimized.
(module
- ;; CHECK: (type $storage (struct_subtype (field (mut anyref)) data))
+ ;; CHECK: (type $storage (struct (field (mut anyref))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
(type $storage (struct (field (mut (ref null any)))))
- ;; CHECK: (type $anyref_=>_anyref (func_subtype (param anyref) (result anyref) func))
+ ;; CHECK: (type $anyref_=>_anyref (func (param anyref) (result anyref)))
;; CHECK: (global $x (mut anyref) (ref.null none))
(global $x (mut (ref null any)) (ref.null any))
@@ -1798,12 +1798,12 @@
(module
(type $struct (struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $storage (struct_subtype (field (mut anyref)) data))
+ ;; CHECK: (type $storage (struct (field (mut anyref))))
(type $storage (struct (field (mut (ref null any)))))
- ;; CHECK: (type $anyref_=>_anyref (func_subtype (param anyref) (result anyref) func))
+ ;; CHECK: (type $anyref_=>_anyref (func (param anyref) (result anyref)))
;; CHECK: (global $x (mut anyref) (ref.null none))
(global $x (mut (ref null any)) (ref.null any))
@@ -1869,16 +1869,16 @@
;; A single long chain as above, but now we break the chain in the middle by
;; adding a non-null value.
(module
- ;; CHECK: (type $storage (struct_subtype (field (mut anyref)) data))
+ ;; CHECK: (type $storage (struct (field (mut anyref))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
(type $storage (struct (field (mut (ref null any)))))
- ;; CHECK: (type $anyref_=>_anyref (func_subtype (param anyref) (result anyref) func))
+ ;; CHECK: (type $anyref_=>_anyref (func (param anyref) (result anyref)))
;; CHECK: (global $x (mut anyref) (ref.null none))
(global $x (mut (ref null any)) (ref.null any))
@@ -1936,11 +1936,11 @@
;; Exceptions.
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $anyref_=>_none (func_subtype (param anyref) func))
+ ;; CHECK: (type $anyref_=>_none (func (param anyref)))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
;; CHECK: (tag $nothing (param anyref))
@@ -2170,11 +2170,11 @@
;; Exceptions with a tuple
(module
- ;; CHECK: (type $anyref_anyref_=>_none (func_subtype (param anyref anyref) func))
+ ;; CHECK: (type $anyref_anyref_=>_none (func (param anyref anyref)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct))
;; CHECK: (tag $tag (param anyref anyref))
@@ -2249,9 +2249,9 @@
)
(module
- ;; CHECK: (type $none_=>_ref|${}| (func_subtype (result (ref ${})) func))
+ ;; CHECK: (type $none_=>_ref|${}| (func (result (ref ${}))))
- ;; CHECK: (type ${} (struct_subtype data))
+ ;; CHECK: (type ${} (struct ))
(type ${} (struct_subtype data))
;; CHECK: (func $func (type $none_=>_ref|${}|) (result (ref ${}))
@@ -2283,15 +2283,15 @@
)
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $A (struct_subtype (field i32) data))
+ ;; CHECK: (type $A (struct (field i32)))
(type $A (struct_subtype (field i32) data))
- ;; CHECK: (type $B (struct_subtype (field i64) data))
+ ;; CHECK: (type $B (struct (field i64)))
(type $B (struct_subtype (field i64) data))
- ;; CHECK: (type $C (struct_subtype (field f32) data))
+ ;; CHECK: (type $C (struct (field f32)))
(type $C (struct_subtype (field f32) data))
- ;; CHECK: (type $D (struct_subtype (field f64) data))
+ ;; CHECK: (type $D (struct (field f64)))
(type $D (struct_subtype (field f64) data))
;; CHECK: (func $many-types (type $none_=>_none)
@@ -2358,10 +2358,10 @@
;; locations being properly noticed, both from global locations (the global's
;; init) and a function ($create).
(module
- ;; CHECK: (type $vtable-A (struct_subtype (field funcref) (field funcref) (field funcref) data))
+ ;; CHECK: (type $vtable-A (struct (field funcref) (field funcref) (field funcref)))
(type $vtable-A (struct_subtype (field (ref null func)) (field (ref null func)) (field (ref null func)) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global-A (ref $vtable-A) (struct.new $vtable-A
;; CHECK-NEXT: (ref.func $foo)
@@ -2441,10 +2441,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct_subtype (field i32) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
@@ -2492,25 +2492,25 @@
;; Casts.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct_subtype (field i32) data))
;; CHECK: (type $substruct (struct_subtype (field i32) (field i32) $struct))
(type $substruct (struct_subtype (field i32) (field i32) $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (type $subsubstruct (struct_subtype (field i32) (field i32) (field i32) $substruct))
(type $subsubstruct (struct_subtype (field i32) (field i32) (field i32) $substruct))
- ;; CHECK: (type $other (struct_subtype data))
+ ;; CHECK: (type $other (struct ))
(type $other (struct_subtype data))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $i32_ref?|$struct|_ref?|$struct|_ref?|$other|_ref|$struct|_ref|$struct|_ref|$other|_=>_none (func_subtype (param i32 (ref null $struct) (ref null $struct) (ref null $other) (ref $struct) (ref $struct) (ref $other)) func))
+ ;; CHECK: (type $i32_ref?|$struct|_ref?|$struct|_ref?|$other|_ref|$struct|_ref|$struct|_ref|$other|_=>_none (func (param i32 (ref null $struct) (ref null $struct) (ref null $other) (ref $struct) (ref $struct) (ref $other))))
- ;; CHECK: (type $none_=>_ref|eq| (func_subtype (result (ref eq)) func))
+ ;; CHECK: (type $none_=>_ref|eq| (func (result (ref eq))))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -3391,11 +3391,11 @@
;; Test ref.eq on globals.
(module
- ;; CHECK: (type $A (struct_subtype (field i32) data))
+ ;; CHECK: (type $A (struct (field i32)))
(type $A (struct_subtype (field i32) data))
(type $B (struct_subtype (field i32) $A))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $a (ref $A) (struct.new $A
;; CHECK-NEXT: (i32.const 0)
@@ -3541,7 +3541,7 @@
(type $B (struct_subtype (ref $A) data))
(type $C (struct_subtype (ref $B) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -3570,16 +3570,16 @@
)
(module
- ;; CHECK: (type $A (struct_subtype (field i32) data))
+ ;; CHECK: (type $A (struct (field i32)))
(type $A (struct_subtype (field i32) data))
- ;; CHECK: (type $B (struct_subtype (field (ref $A)) data))
+ ;; CHECK: (type $B (struct (field (ref $A))))
(type $B (struct_subtype (ref $A) data))
- ;; CHECK: (type $C (struct_subtype (field (ref $B)) data))
+ ;; CHECK: (type $C (struct (field (ref $B))))
(type $C (struct_subtype (ref $B) data))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -3623,14 +3623,14 @@
;; ref.as* test.
(module
- ;; CHECK: (type $A (struct_subtype (field i32) data))
+ ;; CHECK: (type $A (struct (field i32)))
(type $A (struct_subtype (field i32) data))
;; CHECK: (type $B (struct_subtype (field i32) (field f64) $A))
(type $B (struct_subtype (field i32) (field f64) $A))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|$B| (func_subtype (result (ref $B)) func))
+ ;; CHECK: (type $none_=>_ref|$B| (func (result (ref $B))))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -3669,9 +3669,9 @@
)
(module
- ;; CHECK: (type $A (struct_subtype (field i32) data))
+ ;; CHECK: (type $A (struct (field i32)))
(type $A (struct_subtype (field i32) data))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
;; CHECK: (type $B (struct_subtype (field i32) (field i32) $A))
(type $B (struct_subtype (field i32) (field i32) $A))
@@ -3719,12 +3719,12 @@
;; array.copy between types.
(module
- ;; CHECK: (type $bytes (array_subtype (mut anyref) data))
+ ;; CHECK: (type $bytes (array (mut anyref)))
(type $bytes (array (mut anyref)))
- ;; CHECK: (type $chars (array_subtype (mut anyref) data))
+ ;; CHECK: (type $chars (array (mut anyref)))
(type $chars (array (mut anyref)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $bytes (ref null $bytes))
@@ -3804,12 +3804,12 @@
;; value (a null) which we can optimize, but $bytes has two values and we
;; cannot optimize there.
(module
- ;; CHECK: (type $bytes (array_subtype (mut anyref) data))
+ ;; CHECK: (type $bytes (array (mut anyref)))
(type $bytes (array (mut anyref)))
- ;; CHECK: (type $chars (array_subtype (mut anyref) data))
+ ;; CHECK: (type $chars (array (mut anyref)))
(type $chars (array (mut anyref)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $bytes (ref null $bytes))
@@ -3893,14 +3893,14 @@
(module
(type $A (struct_subtype data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $B (array_subtype (mut anyref) data))
+ ;; CHECK: (type $B (array (mut anyref)))
(type $B (array (mut anyref)))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
- ;; CHECK: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; CHECK: (type $ref|$B|_=>_none (func (param (ref $B))))
;; CHECK: (memory $0 10)
@@ -4276,13 +4276,13 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct_subtype (mut i32) data))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $something (mut (ref $struct)) (struct.new $struct
;; CHECK-NEXT: (i32.const 10)
@@ -4352,13 +4352,13 @@
;; As above, but we can no longer infer an exact type for the struct.set on the
;; global $something.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct_subtype (mut i32) data))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $something (mut (ref $struct)) (struct.new $struct
;; CHECK-NEXT: (i32.const 10)
@@ -4430,13 +4430,13 @@
;; As above, but change the constants in the first field in all cases to 10. Now
;; we can optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct_subtype (mut i32) data))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $something (mut (ref $struct)) (struct.new $struct
;; CHECK-NEXT: (i32.const 10)
@@ -4499,14 +4499,14 @@
;; call_ref types
(module
- ;; CHECK: (type $i1 (func_subtype (param i32) func))
+ ;; CHECK: (type $i1 (func (param i32)))
(type $i1 (func (param i32)))
- ;; CHECK: (type $i2 (func_subtype (param i32) func))
+ ;; CHECK: (type $i2 (func (param i32)))
(type $i2 (func (param i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -4633,7 +4633,7 @@
;; Limited cone reads.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
@@ -4642,7 +4642,7 @@
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "reads" (func $reads))
@@ -4740,14 +4740,14 @@
;; As above, but now A and B agree on the value and not B and C.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
;; CHECK: (type $C (struct_subtype (field (mut i32)) $B))
(type $C (struct_subtype (field (mut i32)) $B))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "reads" (func $reads))
@@ -4845,14 +4845,14 @@
;; As above but now A has two subtypes, instead of a chain A->B->C
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
;; CHECK: (type $C (struct_subtype (field (mut i32)) $A))
(type $C (struct_subtype (field (mut i32)) $A)) ;; This line changed.
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "reads" (func $reads))
@@ -4958,14 +4958,14 @@
;; Cone writes.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
;; CHECK: (type $C (struct_subtype (field (mut i32)) $B))
(type $C (struct_subtype (field (mut i32)) $B))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "write" (func $write))
@@ -5056,14 +5056,14 @@
;; As above, but write a different value.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
;; CHECK: (type $C (struct_subtype (field (mut i32)) $B))
(type $C (struct_subtype (field (mut i32)) $B))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "write" (func $write))
@@ -5155,14 +5155,14 @@
;; As above, but write a different cone.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
;; CHECK: (type $C (struct_subtype (field (mut i32)) $B))
(type $C (struct_subtype (field (mut i32)) $B))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (export "write" (func $write))
@@ -5255,17 +5255,17 @@
;; Tests for proper inference of imported etc. values - we do know their type,
;; at least.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
(type $A (struct_subtype (field (mut i32)) data))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
(type $B (struct_subtype (field (mut i32)) $A))
- ;; CHECK: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CHECK: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; CHECK: (type $none_=>_ref|$A| (func_subtype (result (ref $A)) func))
+ ;; CHECK: (type $none_=>_ref|$A| (func (result (ref $A))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (global $A (ref $A)))
(import "a" "b" (global $A (ref $A)))
@@ -5463,11 +5463,11 @@
;; Check that array.new_data and array.new_seg are handled properly.
(module
- ;; CHECK: (type $array-i8 (array_subtype i8 data))
+ ;; CHECK: (type $array-i8 (array i8))
(type $array-i8 (array i8))
- ;; CHECK: (type $array-funcref (array_subtype funcref data))
+ ;; CHECK: (type $array-funcref (array funcref))
(type $array-funcref (array funcref))
- ;; CHECK: (type $ref|$array-i8|_ref|$array-funcref|_=>_none (func_subtype (param (ref $array-i8) (ref $array-funcref)) func))
+ ;; CHECK: (type $ref|$array-i8|_ref|$array-funcref|_=>_none (func (param (ref $array-i8) (ref $array-funcref))))
;; CHECK: (data "hello")
(data "hello")
diff --git a/test/lit/passes/gufa-ssa.wast b/test/lit/passes/gufa-ssa.wast
index 665342818..aaa6d3137 100644
--- a/test/lit/passes/gufa-ssa.wast
+++ b/test/lit/passes/gufa-ssa.wast
@@ -6,7 +6,7 @@
;; CHECK: (export "test" (func $test))
- ;; CHECK: (func $test (param $x i32)
+ ;; CHECK: (func $test (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $y i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
diff --git a/test/lit/passes/gufa-tags.wast b/test/lit/passes/gufa-tags.wast
index 8e43dc932..59d490b2e 100644
--- a/test/lit/passes/gufa-tags.wast
+++ b/test/lit/passes/gufa-tags.wast
@@ -16,7 +16,7 @@
;; CHECK: (tag $tag$f32 (param f32))
(tag $tag$f32 (param f32))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f32)
;; CHECK-NEXT: (try $try
@@ -76,7 +76,7 @@
)
)
- ;; CHECK: (func $bar (result i32)
+ ;; CHECK: (func $bar (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (try $try (result i32)
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/gufa-vs-cfp.wast b/test/lit/passes/gufa-vs-cfp.wast
index 98db72833..359f0a83b 100644
--- a/test/lit/passes/gufa-vs-cfp.wast
+++ b/test/lit/passes/gufa-vs-cfp.wast
@@ -32,7 +32,7 @@
(module
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $impossible-get (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -52,7 +52,7 @@
(module
(type $struct (struct i64))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -74,7 +74,7 @@
(module
(type $struct (struct f32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -96,12 +96,12 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field f32) data))
+ ;; CHECK: (type $struct (struct (field f32)))
(type $struct (struct f32))
- ;; CHECK: (type $none_=>_f32 (func_subtype (result f32) func))
+ ;; CHECK: (type $none_=>_f32 (func (result f32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result f32)))
(import "a" "b" (func $import (result f32)))
@@ -130,11 +130,11 @@
;; Create in one function, get in another. The 10 should be forwarded to the
;; get.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -171,12 +171,12 @@
;; As before, but with the order of functions reversed to check for any ordering
;; issues.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
;; CHECK: (func $get (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -211,9 +211,9 @@
;; Different values assigned in the same function, in different struct.news,
;; so we cannot optimize the struct.get away.
(module
- ;; CHECK: (type $struct (struct_subtype (field f32) data))
+ ;; CHECK: (type $struct (struct (field f32)))
(type $struct (struct f32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -249,11 +249,11 @@
;; Different values assigned in different functions, and one is a struct.set.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -297,11 +297,11 @@
;; As the last testcase, but the values happen to coincide, so we can optimize
;; the get into a constant.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -346,14 +346,14 @@
;; Check that we look into the fallthrough value that is assigned.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32))))
(type $struct (struct (mut f32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -422,7 +422,7 @@
;; Test a function reference instead of a number.
(module
(type $struct (struct funcref))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $test)
@@ -445,7 +445,7 @@
;; Test for unreachable creations, sets, and gets.
(module
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -494,13 +494,13 @@
;; subtype, the get must trap anyhow (the reference it receives can
;; only be null in this closed world).
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
(type $substruct (struct_subtype i32 $struct))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -541,13 +541,13 @@
;; however, cannot write to the subtype, so we still know that any reads from
;; the subtype must trap.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
(type $substruct (struct_subtype (mut i32) $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -600,11 +600,11 @@
;; to a read of the subtype. Still, no actual instance of the subtype can
;; appear in the get, so we can optimize to an unreachable.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
(type $substruct (struct_subtype (mut i32) $struct))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
@@ -657,7 +657,7 @@
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
@@ -679,11 +679,11 @@
;; Subtyping: Create both a subtype and a supertype, with identical constants
;; for the shared field, and get the supertype.
(module
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
@@ -733,11 +733,11 @@
;; for the shared field, preventing optimization, as a get of the
;; supertype may receive an instance of the subtype.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
@@ -784,16 +784,16 @@
;; shared between the types, but we only create the subtype with
;; one value, so we can optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
;; CHECK: (type $substruct (struct_subtype (field i32) (field f64) $struct))
(type $substruct (struct_subtype i32 f64 $struct))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -842,15 +842,15 @@
;; As above, but add a set of $struct. The set prevents the optimization.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -914,15 +914,15 @@
;; As above, but now the constant in the set agrees with the substruct value,
;; so we can optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
;; CHECK: (type $substruct (struct_subtype (field (mut i32)) (field f64) $struct))
(type $substruct (struct_subtype (mut i32) f64 $struct))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -991,7 +991,7 @@
;; Multi-level subtyping, check that we propagate not just to the immediate
;; supertype but all the way as needed.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct1 (struct (field i32)))
(type $struct1 (struct_subtype i32 data))
;; CHECK: (type $struct2 (struct_subtype (field i32) (field f64) $struct1))
@@ -1000,9 +1000,9 @@
;; CHECK: (type $struct3 (struct_subtype (field i32) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype i32 f64 anyref $struct2))
- ;; CHECK: (type $none_=>_ref|$struct3| (func_subtype (result (ref $struct3)) func))
+ ;; CHECK: (type $none_=>_ref|$struct3| (func (result (ref $struct3))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct3|) (result (ref $struct3))
;; CHECK-NEXT: (struct.new $struct3
@@ -1132,7 +1132,7 @@
;; different values in the sub-most type. Create the top and bottom types, but
;; not the middle one.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field i32) (field i32) data))
+ ;; CHECK: (type $struct1 (struct (field i32) (field i32)))
(type $struct1 (struct i32 i32))
;; CHECK: (type $struct2 (struct_subtype (field i32) (field i32) (field f64) (field f64) $struct1))
@@ -1141,13 +1141,13 @@
;; CHECK: (type $struct3 (struct_subtype (field i32) (field i32) (field f64) (field f64) (field anyref) (field anyref) $struct2))
(type $struct3 (struct_subtype i32 i32 f64 f64 anyref anyref $struct2))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_anyref (func_subtype (result anyref) func))
+ ;; CHECK: (type $none_=>_anyref (func (result anyref)))
- ;; CHECK: (type $none_=>_ref|$struct1| (func_subtype (result (ref $struct1)) func))
+ ;; CHECK: (type $none_=>_ref|$struct1| (func (result (ref $struct1))))
- ;; CHECK: (type $none_=>_ref|$struct3| (func_subtype (result (ref $struct3)) func))
+ ;; CHECK: (type $none_=>_ref|$struct3| (func (result (ref $struct3))))
;; CHECK: (import "a" "b" (func $import (result anyref)))
(import "a" "b" (func $import (result anyref)))
@@ -1366,22 +1366,22 @@
;; Multi-level subtyping with a different value in the middle of the chain.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct1 (struct (field (mut i32))))
(type $struct1 (struct (mut i32)))
;; CHECK: (type $struct2 (struct_subtype (field (mut i32)) (field f64) $struct1))
(type $struct2 (struct_subtype (mut i32) f64 $struct1))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (type $struct3 (struct_subtype (field (mut i32)) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype (mut i32) f64 anyref $struct2))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|$struct1| (func_subtype (result (ref $struct1)) func))
+ ;; CHECK: (type $none_=>_ref|$struct1| (func (result (ref $struct1))))
- ;; CHECK: (type $none_=>_ref|$struct2| (func_subtype (result (ref $struct2)) func))
+ ;; CHECK: (type $none_=>_ref|$struct2| (func (result (ref $struct2))))
- ;; CHECK: (type $none_=>_ref|$struct3| (func_subtype (result (ref $struct3)) func))
+ ;; CHECK: (type $none_=>_ref|$struct3| (func (result (ref $struct3))))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -1671,22 +1671,22 @@
;; but also a set. We can see that the set just affects the middle class,
;; though, so it is not a problem.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct1 (struct (field (mut i32))))
(type $struct1 (struct (mut i32)))
;; CHECK: (type $struct2 (struct_subtype (field (mut i32)) (field f64) $struct1))
(type $struct2 (struct_subtype (mut i32) f64 $struct1))
;; CHECK: (type $struct3 (struct_subtype (field (mut i32)) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype (mut i32) f64 anyref $struct2))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|$struct1| (func_subtype (result (ref $struct1)) func))
+ ;; CHECK: (type $none_=>_ref|$struct1| (func (result (ref $struct1))))
- ;; CHECK: (type $none_=>_ref|$struct2| (func_subtype (result (ref $struct2)) func))
+ ;; CHECK: (type $none_=>_ref|$struct2| (func (result (ref $struct2))))
- ;; CHECK: (type $none_=>_ref|$struct3| (func_subtype (result (ref $struct3)) func))
+ ;; CHECK: (type $none_=>_ref|$struct3| (func (result (ref $struct3))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -1787,22 +1787,22 @@
;; As above, but the set is of a different value.
(module
- ;; CHECK: (type $struct1 (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct1 (struct (field (mut i32))))
(type $struct1 (struct (mut i32)))
;; CHECK: (type $struct2 (struct_subtype (field (mut i32)) (field f64) $struct1))
(type $struct2 (struct_subtype (mut i32) f64 $struct1))
;; CHECK: (type $struct3 (struct_subtype (field (mut i32)) (field f64) (field anyref) $struct2))
(type $struct3 (struct_subtype (mut i32) f64 anyref $struct2))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $none_=>_ref|$struct1| (func_subtype (result (ref $struct1)) func))
+ ;; CHECK: (type $none_=>_ref|$struct1| (func (result (ref $struct1))))
- ;; CHECK: (type $none_=>_ref|$struct2| (func_subtype (result (ref $struct2)) func))
+ ;; CHECK: (type $none_=>_ref|$struct2| (func (result (ref $struct2))))
- ;; CHECK: (type $none_=>_ref|$struct3| (func_subtype (result (ref $struct3)) func))
+ ;; CHECK: (type $none_=>_ref|$struct3| (func (result (ref $struct3))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
@@ -1902,12 +1902,12 @@
;; Test for a struct with multiple fields, some of which are constant and hence
;; optimizable, and some not. Also test that some have the same type.
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) (field f64) (field i32) (field f64) (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32) (field f64) (field i32) (field f64) (field i32)))
(type $struct (struct i32 f64 i32 f64 i32))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -2014,7 +2014,7 @@
;; sets, and the final subtype C has a create and a get. The set to A should
;; apply to it, preventing optimization.
(module
- ;; CHECK: (type $A (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $A (struct (field (mut i32))))
;; CHECK: (type $B (struct_subtype (field (mut i32)) $A))
@@ -2025,9 +2025,9 @@
(type $B (struct_subtype (mut i32) $A))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $none_=>_ref|$C| (func_subtype (result (ref $C)) func))
+ ;; CHECK: (type $none_=>_ref|$C| (func (result (ref $C))))
;; CHECK: (func $create-C (type $none_=>_ref|$C|) (result (ref $C))
;; CHECK-NEXT: (struct.new $C
@@ -2077,12 +2077,12 @@
;; Copies of a field to itself can be ignored. As a result, we can optimize both
;; of the gets here.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new_default $struct)
@@ -2132,16 +2132,16 @@
;; type) but in a different struct. The value in both structs is the same, so
;; we can optimize.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32)) (field (mut i32))))
(type $struct (struct (mut f32) (mut i32)))
- ;; CHECK: (type $other (struct_subtype (field (mut f64)) (field (mut i32)) data))
+ ;; CHECK: (type $other (struct (field (mut f64)) (field (mut i32))))
(type $other (struct (mut f64) (mut i32)))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_ref|$other| (func_subtype (result (ref $other)) func))
+ ;; CHECK: (type $none_=>_ref|$other| (func (result (ref $other))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create-struct (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -2208,16 +2208,16 @@
;; As above, but each struct has a different value, so copying between them
;; inhibits one optimization.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut f32)) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut f32)) (field (mut i32))))
(type $struct (struct (mut f32) (mut i32)))
- ;; CHECK: (type $other (struct_subtype (field (mut f64)) (field (mut i32)) data))
+ ;; CHECK: (type $other (struct (field (mut f64)) (field (mut i32))))
(type $other (struct (mut f64) (mut i32)))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_ref|$other| (func_subtype (result (ref $other)) func))
+ ;; CHECK: (type $none_=>_ref|$other| (func (result (ref $other))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create-struct (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -2280,12 +2280,12 @@
;; Similar to the above, but different fields within the same struct.
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32)) (field (mut i32))))
(type $struct (struct (mut i32) (mut i32)))
- ;; CHECK: (type $none_=>_ref|$struct| (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $none_=>_ref|$struct| (func (result (ref $struct))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $create (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (struct.new $struct
@@ -2335,11 +2335,11 @@
)
(module
- ;; CHECK: (type $A (struct_subtype data))
+ ;; CHECK: (type $A (struct ))
(type $A (struct))
(type $B (struct (ref $A)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global (ref $A) (struct.new_default $A))
(global $global (ref $A) (struct.new $A))
@@ -2367,7 +2367,7 @@
(module
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (import "a" "b" (global $global i32))
(import "a" "b" (global $global i32))
@@ -2391,7 +2391,7 @@
(module
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2418,7 +2418,7 @@
(module
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global (mut i32) (i32.const 42))
(global $global (mut i32) (i32.const 42))
@@ -2442,10 +2442,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global (mut i32) (i32.const 42))
(global $global (mut i32) (i32.const 42))
@@ -2479,10 +2479,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2519,10 +2519,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2564,10 +2564,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (global $global i32 (i32.const 42))
(global $global i32 (i32.const 42))
@@ -2610,15 +2610,15 @@
;; Test a global type other than i32. Arrays of structs are a realistic case
;; as they are used to implement itables.
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct funcref))
- ;; CHECK: (type $itable (array_subtype (ref $vtable) data))
+ ;; CHECK: (type $itable (array (ref $vtable)))
(type $itable (array (ref $vtable)))
(type $object (struct (field $itable (ref $itable))))
- ;; CHECK: (type $none_=>_funcref (func_subtype (result funcref) func))
+ ;; CHECK: (type $none_=>_funcref (func (result funcref)))
;; CHECK: (global $global (ref $itable) (array.init_static $itable
;; CHECK-NEXT: (struct.new $vtable
diff --git a/test/lit/passes/gufa.wast b/test/lit/passes/gufa.wast
index d9b11f779..bf0f39833 100644
--- a/test/lit/passes/gufa.wast
+++ b/test/lit/passes/gufa.wast
@@ -16,7 +16,7 @@
;; CHECK: (export "param-no" (func $param-no))
- ;; CHECK: (func $never-called (param $param i32) (result i32)
+ ;; CHECK: (func $never-called (type $i32_=>_i32) (param $param i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $never-called (param $param i32) (result i32)
@@ -26,14 +26,14 @@
(local.get $param)
)
- ;; CHECK: (func $foo (result i32)
+ ;; CHECK: (func $foo (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $foo (result i32)
(i32.const 1)
)
- ;; CHECK: (func $bar
+ ;; CHECK: (func $bar (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -66,7 +66,7 @@
)
)
- ;; CHECK: (func $baz
+ ;; CHECK: (func $baz (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (select
;; CHECK-NEXT: (block (result i32)
@@ -101,7 +101,7 @@
)
)
- ;; CHECK: (func $return (result i32)
+ ;; CHECK: (func $return (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (return
@@ -123,7 +123,7 @@
(i32.const 2)
)
- ;; CHECK: (func $call-return
+ ;; CHECK: (func $call-return (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $return)
;; CHECK-NEXT: )
@@ -136,7 +136,7 @@
)
)
- ;; CHECK: (func $return-same (result i32)
+ ;; CHECK: (func $return-same (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (return
@@ -159,7 +159,7 @@
(i32.const 1)
)
- ;; CHECK: (func $call-return-same
+ ;; CHECK: (func $call-return-same (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -176,7 +176,7 @@
)
)
- ;; CHECK: (func $local-no (result i32)
+ ;; CHECK: (func $local-no (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (call $import)
@@ -199,7 +199,7 @@
(local.get $x)
)
- ;; CHECK: (func $local-yes (result i32)
+ ;; CHECK: (func $local-yes (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (call $import)
@@ -222,7 +222,7 @@
(local.get $x)
)
- ;; CHECK: (func $param-no (param $param i32) (result i32)
+ ;; CHECK: (func $param-no (type $i32_=>_i32) (param $param i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $param)
;; CHECK-NEXT: (local.set $param
@@ -244,7 +244,7 @@
(local.get $param)
)
- ;; CHECK: (func $param-yes (param $param i32) (result i32)
+ ;; CHECK: (func $param-yes (type $i32_=>_i32) (param $param i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (local.set $param
@@ -267,7 +267,7 @@
(local.get $param)
)
- ;; CHECK: (func $cycle (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $cycle (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -320,7 +320,7 @@
)
)
- ;; CHECK: (func $cycle-2 (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $cycle-2 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -371,7 +371,7 @@
)
)
- ;; CHECK: (func $cycle-3 (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $cycle-3 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -427,7 +427,7 @@
)
)
- ;; CHECK: (func $cycle-4 (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $cycle-4 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $cycle-4
;; CHECK-NEXT: (i32.const 1337)
@@ -467,7 +467,7 @@
)
)
- ;; CHECK: (func $cycle-5 (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $cycle-5 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -516,7 +516,7 @@
)
)
- ;; CHECK: (func $blocks
+ ;; CHECK: (func $blocks (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -592,7 +592,7 @@
;; CHECK: (export "table" (table $0))
(export "table" (table 0))
- ;; CHECK: (func $reffed (param $x i32)
+ ;; CHECK: (func $reffed (type $i) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -605,7 +605,7 @@
)
)
- ;; CHECK: (func $do-calls
+ ;; CHECK: (func $do-calls (type $none_=>_none)
;; CHECK-NEXT: (call $reffed
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -642,7 +642,7 @@
;; CHECK: (elem (i32.const 0) $reffed)
- ;; CHECK: (func $reffed (param $x i32)
+ ;; CHECK: (func $reffed (type $i) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -653,7 +653,7 @@
)
)
- ;; CHECK: (func $do-calls
+ ;; CHECK: (func $do-calls (type $none_=>_none)
;; CHECK-NEXT: (call $reffed
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -689,7 +689,7 @@
;; CHECK: (elem (i32.const 0) $reffed)
- ;; CHECK: (func $reffed (param $x i32)
+ ;; CHECK: (func $reffed (type $i) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -700,7 +700,7 @@
)
)
- ;; CHECK: (func $do-calls
+ ;; CHECK: (func $do-calls (type $none_=>_none)
;; CHECK-NEXT: (call_indirect $0 (type $i)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: (i32.const 0)
@@ -739,7 +739,7 @@
;; CHECK: (elem (i32.const 0) $reffed)
- ;; CHECK: (func $reffed (param $x i32)
+ ;; CHECK: (func $reffed (type $i) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -750,7 +750,7 @@
)
)
- ;; CHECK: (func $do-calls
+ ;; CHECK: (func $do-calls (type $none_=>_none)
;; CHECK-NEXT: (call_indirect $0 (type $i)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: (i32.const 0)
@@ -791,7 +791,7 @@
;; CHECK: (elem (i32.const 0) $reffed)
- ;; CHECK: (func $reffed (param $x i32)
+ ;; CHECK: (func $reffed (type $i) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -802,7 +802,7 @@
)
)
- ;; CHECK: (func $do-calls
+ ;; CHECK: (func $do-calls (type $none_=>_none)
;; CHECK-NEXT: (call_indirect $0 (type $i)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: (i32.const 0)
@@ -829,7 +829,7 @@
;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (func $const (result i32)
+ ;; CHECK: (func $const (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
(func $const (result i32)
@@ -837,7 +837,7 @@
(i32.const 42)
)
- ;; CHECK: (func $retcall (result i32)
+ ;; CHECK: (func $retcall (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (return_call $const)
;; CHECK-NEXT: )
(func $retcall (result i32)
@@ -845,7 +845,7 @@
(return_call $const)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -872,14 +872,14 @@
;; CHECK: (import "a" "b" (func $import (result i32)))
(import "a" "b" (func $import (result i32)))
- ;; CHECK: (func $internal (result i32)
+ ;; CHECK: (func $internal (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
(func $internal (result i32)
(i32.const 42)
)
- ;; CHECK: (func $calls
+ ;; CHECK: (func $calls (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: )
@@ -942,7 +942,7 @@
;; CHECK: (export "foo" (func $foo))
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (call $call-without-effects
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (ref.func $target-keep)
@@ -965,7 +965,7 @@
)
)
- ;; CHECK: (func $target-keep (param $x i32)
+ ;; CHECK: (func $target-keep (type $A) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -976,7 +976,7 @@
)
)
- ;; CHECK: (func $target-drop (param $x i32)
+ ;; CHECK: (func $target-drop (type $A) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
@@ -1012,7 +1012,7 @@
;; CHECK: (export "foo" (func $foo))
- ;; CHECK: (func $foo (param $A (ref null $A))
+ ;; CHECK: (func $foo (type $ref?|$A|_=>_none) (param $A (ref null $A))
;; CHECK-NEXT: (call $call-without-effects
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (local.get $A)
@@ -1041,7 +1041,7 @@
)
)
- ;; CHECK: (func $target-keep (param $x i32)
+ ;; CHECK: (func $target-keep (type $A) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -1052,7 +1052,7 @@
)
)
- ;; CHECK: (func $target-keep-2 (param $x i32)
+ ;; CHECK: (func $target-keep-2 (type $A) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -1083,7 +1083,7 @@
;; CHECK: (export "exported-immutable" (global $exported-immutable))
(export "exported-immutable" (global $exported-immutable))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (global.get $exported-mutable)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/heap2local.wast b/test/lit/passes/heap2local.wast
index aace567f7..1027420c4 100644
--- a/test/lit/passes/heap2local.wast
+++ b/test/lit/passes/heap2local.wast
@@ -6,15 +6,15 @@
(module
;; CHECK: (type $struct.A (struct (field (mut i32)) (field (mut f64))))
- ;; NOMNL: (type $struct.A (struct_subtype (field (mut i32)) (field (mut f64)) data))
+ ;; NOMNL: (type $struct.A (struct (field (mut i32)) (field (mut f64))))
(type $struct.A (struct (field (mut i32)) (field (mut f64))))
;; CHECK: (type $struct.recursive (struct (field (mut (ref null $struct.recursive)))))
;; CHECK: (type $struct.packed (struct (field (mut i8))))
- ;; NOMNL: (type $struct.recursive (struct_subtype (field (mut (ref null $struct.recursive))) data))
+ ;; NOMNL: (type $struct.recursive (struct (field (mut (ref null $struct.recursive)))))
- ;; NOMNL: (type $struct.packed (struct_subtype (field (mut i8)) data))
+ ;; NOMNL: (type $struct.packed (struct (field (mut i8))))
(type $struct.packed (struct (field (mut i8))))
(type $struct.nondefaultable (struct (field (ref $struct.A))))
@@ -23,7 +23,7 @@
(type $struct.nonnullable (struct (field (ref $struct.A))))
- ;; CHECK: (func $simple
+ ;; CHECK: (func $simple (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (drop
@@ -61,7 +61,7 @@
)
)
- ;; CHECK: (func $to-local
+ ;; CHECK: (func $to-local (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -104,7 +104,7 @@
)
)
- ;; CHECK: (func $one-get
+ ;; CHECK: (func $one-get (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (drop
@@ -157,7 +157,7 @@
)
)
- ;; CHECK: (func $one-get-b
+ ;; CHECK: (func $one-get-b (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (drop
@@ -206,7 +206,7 @@
)
)
- ;; CHECK: (func $one-set
+ ;; CHECK: (func $one-set (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (drop
@@ -250,7 +250,7 @@
)
)
- ;; CHECK: (func $packed
+ ;; CHECK: (func $packed (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.get_u $struct.packed 0
;; CHECK-NEXT: (struct.new_default $struct.packed)
@@ -273,7 +273,7 @@
)
)
- ;; CHECK: (func $with-init-values
+ ;; CHECK: (func $with-init-values (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (local $2 i32)
@@ -342,7 +342,7 @@
)
)
- ;; CHECK: (func $ignore-unreachable
+ ;; CHECK: (func $ignore-unreachable (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
;; CHECK-NEXT: (drop
@@ -391,7 +391,7 @@
)
)
- ;; CHECK: (func $nondefaultable
+ ;; CHECK: (func $nondefaultable (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref $struct.A))
;; CHECK-NEXT: (local $1 (ref $struct.A))
;; CHECK-NEXT: (drop
@@ -442,7 +442,7 @@
)
)
- ;; CHECK: (func $simple-one-local-set
+ ;; CHECK: (func $simple-one-local-set (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -504,7 +504,7 @@
)
)
- ;; CHECK: (func $simple-one-local-get (result f64)
+ ;; CHECK: (func $simple-one-local-get (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -559,7 +559,7 @@
)
)
- ;; CHECK: (func $send-ref (param $0 (ref null $struct.A))
+ ;; CHECK: (func $send-ref (type $ref?|$struct.A|_=>_none) (param $0 (ref null $struct.A))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $send-ref (type $ref?|$struct.A|_=>_none) (param $0 (ref null $struct.A))
@@ -568,7 +568,7 @@
(func $send-ref (param (ref null $struct.A))
)
- ;; CHECK: (func $safe-to-drop (result f64)
+ ;; CHECK: (func $safe-to-drop (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -632,7 +632,7 @@
)
)
- ;; CHECK: (func $escape-via-call (result f64)
+ ;; CHECK: (func $escape-via-call (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -670,7 +670,7 @@
)
)
- ;; CHECK: (func $safe-to-drop-multiflow (result f64)
+ ;; CHECK: (func $safe-to-drop-multiflow (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -748,7 +748,7 @@
)
)
- ;; CHECK: (func $escape-after-multiflow (result f64)
+ ;; CHECK: (func $escape-after-multiflow (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -800,7 +800,7 @@
)
)
- ;; CHECK: (func $non-exclusive-set (result f64)
+ ;; CHECK: (func $non-exclusive-set (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (select (result (ref $struct.A))
@@ -842,7 +842,7 @@
)
)
- ;; CHECK: (func $local-copies (result f64)
+ ;; CHECK: (func $local-copies (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -906,7 +906,7 @@
)
)
- ;; CHECK: (func $local-copies-2
+ ;; CHECK: (func $local-copies-2 (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $ref-2 (ref null $struct.A))
;; CHECK-NEXT: (local $2 i32)
@@ -1001,7 +1001,7 @@
)
)
- ;; CHECK: (func $local-copies-conditional (param $x i32) (result f64)
+ ;; CHECK: (func $local-copies-conditional (type $i32_=>_f64) (param $x i32) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 f64)
@@ -1075,7 +1075,7 @@
)
)
- ;; CHECK: (func $block-value (result f64)
+ ;; CHECK: (func $block-value (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -1146,7 +1146,7 @@
)
)
- ;; CHECK: (func $non-exclusive-get (param $x i32) (result f64)
+ ;; CHECK: (func $non-exclusive-get (type $i32_=>_f64) (param $x i32) (result f64)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -1193,7 +1193,7 @@
)
)
- ;; CHECK: (func $tee (result i32)
+ ;; CHECK: (func $tee (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -1237,7 +1237,7 @@
)
)
- ;; CHECK: (func $tee-set
+ ;; CHECK: (func $tee-set (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.recursive))
;; CHECK-NEXT: (local $1 (ref null $struct.recursive))
;; CHECK-NEXT: (drop
@@ -1278,7 +1278,7 @@
)
)
- ;; CHECK: (func $set-value (param $struct.recursive (ref null $struct.recursive))
+ ;; CHECK: (func $set-value (type $ref?|$struct.recursive|_=>_none) (param $struct.recursive (ref null $struct.recursive))
;; CHECK-NEXT: (local $ref (ref null $struct.recursive))
;; CHECK-NEXT: (struct.set $struct.recursive 0
;; CHECK-NEXT: (local.get $struct.recursive)
@@ -1308,7 +1308,7 @@
)
)
- ;; CHECK: (func $initialize-with-reference
+ ;; CHECK: (func $initialize-with-reference (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref null $struct.recursive))
;; CHECK-NEXT: (local $1 (ref null $struct.recursive))
;; CHECK-NEXT: (local $2 (ref null $struct.recursive))
@@ -1378,7 +1378,7 @@
)
)
- ;; CHECK: (func $escape-flow-out (result anyref)
+ ;; CHECK: (func $escape-flow-out (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (struct.set $struct.A 0
;; CHECK-NEXT: (local.tee $ref
@@ -1410,7 +1410,7 @@
(local.get $ref)
)
- ;; CHECK: (func $escape-return (result anyref)
+ ;; CHECK: (func $escape-return (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (struct.set $struct.A 0
;; CHECK-NEXT: (local.tee $ref
@@ -1448,7 +1448,7 @@
)
)
- ;; CHECK: (func $non-nullable (param $a (ref $struct.A))
+ ;; CHECK: (func $non-nullable (type $ref|$struct.A|_=>_none) (param $a (ref $struct.A))
;; CHECK-NEXT: (local $1 (ref $struct.A))
;; CHECK-NEXT: (local $2 (ref $struct.A))
;; CHECK-NEXT: (drop
@@ -1500,7 +1500,7 @@
)
)
- ;; CHECK: (func $before-loop-use-multi (param $x i32)
+ ;; CHECK: (func $before-loop-use-multi (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 f64)
@@ -1745,7 +1745,7 @@
)
)
- ;; CHECK: (func $multi-separate
+ ;; CHECK: (func $multi-separate (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 f64)
;; CHECK-NEXT: (local $2 i32)
@@ -1876,7 +1876,7 @@
)
)
- ;; CHECK: (func $multi-separate-same-local-index
+ ;; CHECK: (func $multi-separate-same-local-index (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -1988,7 +1988,7 @@
)
)
- ;; CHECK: (func $multi-separate-different-local-index-overlapping-lifetimes
+ ;; CHECK: (func $multi-separate-different-local-index-overlapping-lifetimes (type $none_=>_none)
;; CHECK-NEXT: (local $ref1 (ref null $struct.A))
;; CHECK-NEXT: (local $ref2 (ref null $struct.A))
;; CHECK-NEXT: (local $2 i32)
@@ -2103,7 +2103,7 @@
)
)
- ;; CHECK: (func $get-through-block (result f64)
+ ;; CHECK: (func $get-through-block (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -2159,7 +2159,7 @@
)
)
- ;; CHECK: (func $branch-to-block (result f64)
+ ;; CHECK: (func $branch-to-block (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -2213,7 +2213,7 @@
)
)
- ;; CHECK: (func $branch-to-block-no-fallthrough (result f64)
+ ;; CHECK: (func $branch-to-block-no-fallthrough (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -2298,7 +2298,7 @@
)
)
- ;; CHECK: (func $two-branches (result f64)
+ ;; CHECK: (func $two-branches (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -2374,7 +2374,7 @@
)
)
- ;; CHECK: (func $two-branches-b (result f64)
+ ;; CHECK: (func $two-branches-b (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -2451,7 +2451,7 @@
)
)
- ;; CHECK: (func $br_if_flow (result f64)
+ ;; CHECK: (func $br_if_flow (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (struct.new_default $struct.A)
@@ -2510,7 +2510,7 @@
)
)
- ;; CHECK: (func $ref-as-non-null
+ ;; CHECK: (func $ref-as-non-null (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -2590,7 +2590,7 @@
)
)
- ;; CHECK: (func $ref-as-non-null-through-local (result i32)
+ ;; CHECK: (func $ref-as-non-null-through-local (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $ref (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -2661,7 +2661,7 @@
)
)
- ;; CHECK: (func $br_if-allocation (result f64)
+ ;; CHECK: (func $br_if-allocation (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -2751,7 +2751,7 @@
)
)
- ;; CHECK: (func $pass-through-loop
+ ;; CHECK: (func $pass-through-loop (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -2809,7 +2809,7 @@
)
)
- ;; CHECK: (func $non-nullable-local (result anyref)
+ ;; CHECK: (func $non-nullable-local (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (local $0 (ref null $struct.A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
diff --git a/test/lit/passes/inlining-eh.wast b/test/lit/passes/inlining-eh.wast
index 7d804805e..cb5b1bda8 100644
--- a/test/lit/passes/inlining-eh.wast
+++ b/test/lit/passes/inlining-eh.wast
@@ -20,7 +20,7 @@
;; Properly ensure unique try labels after an inlining
- ;; CHECK: (func $caller-with-label (param $x i32)
+ ;; CHECK: (func $caller-with-label (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (loop $label
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$callee-with-label
@@ -51,7 +51,7 @@
)
;; ---------------------------------------------------------------------------
- ;; CHECK: (func $callee-with-try-delegate
+ ;; CHECK: (func $callee-with-try-delegate (type $none_=>_none)
;; CHECK-NEXT: (try $label$3
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -68,7 +68,7 @@
;; For now, do not inline a try-delegate
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $callee-with-try-delegate)
;; CHECK-NEXT: )
(func $caller
@@ -82,7 +82,7 @@
;; Properly support inlining into a function with a try-delegate
- ;; CHECK: (func $caller-with-try-delegate (result i32)
+ ;; CHECK: (func $caller-with-try-delegate (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try $label$3
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -107,7 +107,7 @@
;; ---------------------------------------------------------------------------
(func $callee-b (param i32))
- ;; CHECK: (func $caller-with-pop
+ ;; CHECK: (func $caller-with-pop (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (try $try
diff --git a/test/lit/passes/inlining-gc.wast b/test/lit/passes/inlining-gc.wast
index cebdbd052..0dac4cc9a 100644
--- a/test/lit/passes/inlining-gc.wast
+++ b/test/lit/passes/inlining-gc.wast
@@ -2,7 +2,7 @@
;; RUN: wasm-opt %s --inlining --enable-gc-nn-locals -all -S -o - | filecheck %s
(module
- ;; CHECK: (func $caller-nullable
+ ;; CHECK: (func $caller-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $0 funcref)
;; CHECK-NEXT: (block $__inlined_func$target-nullable
;; CHECK-NEXT: (local.set $0
@@ -24,7 +24,7 @@
(local $1 (ref null func))
)
- ;; CHECK: (func $caller-non-nullable
+ ;; CHECK: (func $caller-non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref func))
;; CHECK-NEXT: (block $__inlined_func$target-non-nullable
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/inlining-optimizing.wast b/test/lit/passes/inlining-optimizing.wast
index a7b671f10..c72d6a88b 100644
--- a/test/lit/passes/inlining-optimizing.wast
+++ b/test/lit/passes/inlining-optimizing.wast
@@ -5,13 +5,13 @@
;; CHECK: (type $none_=>_none (func))
(type $none_=>_none (func))
(type $none_=>_i32 (func (result i32)))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $0
(nop)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
;; CHECK-NEXT: (drop
diff --git a/test/lit/passes/inlining_all-features.wast b/test/lit/passes/inlining_all-features.wast
index 9b3a426d5..d26a2aa9f 100644
--- a/test/lit/passes/inlining_all-features.wast
+++ b/test/lit/passes/inlining_all-features.wast
@@ -11,9 +11,9 @@
;; CHECK: (elem declare func $foo)
;; CHECK: (export "ref_func_test" (func $ref_func_test))
- ;; NOMNL: (type $none_=>_none (func_subtype func))
+ ;; NOMNL: (type $none_=>_none (func))
- ;; NOMNL: (type $none_=>_funcref (func_subtype (result funcref) func))
+ ;; NOMNL: (type $none_=>_funcref (func (result funcref)))
;; NOMNL: (elem declare func $foo)
@@ -22,7 +22,7 @@
;; $foo should not be removed after being inlined, because there is 'ref.func'
;; instruction that refers to it
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $foo (type $none_=>_none)
@@ -30,7 +30,7 @@
;; NOMNL-NEXT: )
(func $foo)
- ;; CHECK: (func $ref_func_test (result funcref)
+ ;; CHECK: (func $ref_func_test (type $none_=>_funcref) (result funcref)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$foo
;; CHECK-NEXT: (nop)
@@ -58,12 +58,12 @@
;; CHECK: (type $none_=>_i32 (func (result i32)))
;; CHECK: (global $global$0 (mut funcref) (ref.func $0))
- ;; NOMNL: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; NOMNL: (type $none_=>_i32 (func (result i32)))
;; NOMNL: (global $global$0 (mut funcref) (ref.func $0))
(global $global$0 (mut funcref) (ref.func $0))
- ;; CHECK: (func $0 (result i32)
+ ;; CHECK: (func $0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: )
;; NOMNL: (func $0 (type $none_=>_i32) (result i32)
@@ -73,7 +73,7 @@
(i32.const 1337)
)
- ;; CHECK: (func $1 (result i32)
+ ;; CHECK: (func $1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $__inlined_func$0 (result i32)
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: )
@@ -94,12 +94,12 @@
;; CHECK: (type $none_=>_none (func))
;; CHECK: (start $0)
- ;; NOMNL: (type $none_=>_none (func_subtype func))
+ ;; NOMNL: (type $none_=>_none (func))
;; NOMNL: (start $0)
(start $0)
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $0 (type $none_=>_none)
@@ -109,7 +109,7 @@
(nop)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (block $__inlined_func$0
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -127,7 +127,7 @@
;; inline a return_call_ref
(module
;; CHECK: (type $none_=>_none (func))
- ;; NOMNL: (type $none_=>_none (func_subtype func))
+ ;; NOMNL: (type $none_=>_none (func))
(type $none_=>_none (func))
;; CHECK: (export "func_36_invoker" (func $1))
@@ -139,7 +139,7 @@
(ref.null $none_=>_none)
)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (block $__inlined_func$0
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (br $__inlined_func$0)
@@ -166,7 +166,7 @@
;; CHECK: (elem declare func $1)
- ;; CHECK: (func $1 (result (ref func))
+ ;; CHECK: (func $1 (type $none_=>_ref|func|) (result (ref func))
;; CHECK-NEXT: (local $0 (ref func))
;; CHECK-NEXT: (block $__inlined_func$0 (result (ref func))
;; CHECK-NEXT: (local.set $0
@@ -175,7 +175,7 @@
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; NOMNL: (type $none_=>_ref|func| (func_subtype (result (ref func)) func))
+ ;; NOMNL: (type $none_=>_ref|func| (func (result (ref func))))
;; NOMNL: (elem declare func $1)
diff --git a/test/lit/passes/inlining_splitting.wast b/test/lit/passes/inlining_splitting.wast
index c114d4551..be936f7d8 100644
--- a/test/lit/passes/inlining_splitting.wast
+++ b/test/lit/passes/inlining_splitting.wast
@@ -46,7 +46,7 @@
)
)
- ;; CHECK: (func $call-maybe-work-hard
+ ;; CHECK: (func $call-maybe-work-hard (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i32)
@@ -122,7 +122,7 @@
)
)
- ;; CHECK: (func $call-just-if
+ ;; CHECK: (func $call-just-if (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block
@@ -157,7 +157,7 @@
(call $just-if (i32.const 2))
)
- ;; CHECK: (func $br-to-toplevel (param $x i32)
+ ;; CHECK: (func $br-to-toplevel (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (block $toplevel
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
@@ -186,7 +186,7 @@
)
)
- ;; CHECK: (func $call-br-to-toplevel
+ ;; CHECK: (func $call-br-to-toplevel (type $none_=>_none)
;; CHECK-NEXT: (call $br-to-toplevel
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -211,7 +211,7 @@
)
)
- ;; CHECK: (func $call-nondefaultable-param
+ ;; CHECK: (func $call-nondefaultable-param (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 (ref $struct))
;; CHECK-NEXT: (block $__inlined_func$nondefaultable-param
@@ -252,7 +252,7 @@
)
)
- ;; CHECK: (func $call-many-params
+ ;; CHECK: (func $call-many-params (type $none_=>_none)
;; CHECK-NEXT: (local $0 i64)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 f64)
@@ -330,7 +330,7 @@
)
)
- ;; CHECK: (func $call-condition-eqz
+ ;; CHECK: (func $call-condition-eqz (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block
@@ -385,7 +385,7 @@
)
)
- ;; CHECK: (func $call-condition-global
+ ;; CHECK: (func $call-condition-global (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-global
;; CHECK-NEXT: (if
@@ -426,7 +426,7 @@
)
)
- ;; CHECK: (func $call-condition-ref.is
+ ;; CHECK: (func $call-condition-ref.is (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (block
@@ -469,7 +469,7 @@
(call $condition-ref.is (ref.null any))
)
- ;; CHECK: (func $condition-disallow-binary (param $x i32)
+ ;; CHECK: (func $condition-disallow-binary (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $x)
@@ -497,7 +497,7 @@
)
)
- ;; CHECK: (func $call-condition-disallow-binary
+ ;; CHECK: (func $call-condition-disallow-binary (type $none_=>_none)
;; CHECK-NEXT: (call $condition-disallow-binary
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -510,7 +510,7 @@
(call $condition-disallow-binary (i32.const 1))
)
- ;; CHECK: (func $condition-disallow-unreachable (param $x i32)
+ ;; CHECK: (func $condition-disallow-unreachable (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (unreachable)
@@ -536,7 +536,7 @@
)
)
- ;; CHECK: (func $call-condition-disallow-unreachable
+ ;; CHECK: (func $call-condition-disallow-unreachable (type $none_=>_none)
;; CHECK-NEXT: (call $condition-disallow-unreachable
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -549,7 +549,7 @@
(call $condition-disallow-unreachable (i32.const 1))
)
- ;; CHECK: (func $start-used-globally
+ ;; CHECK: (func $start-used-globally (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $glob)
;; CHECK-NEXT: (return)
@@ -574,7 +574,7 @@
)
)
- ;; CHECK: (func $call-start-used-globally
+ ;; CHECK: (func $call-start-used-globally (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$start-used-globally
;; CHECK-NEXT: (if
@@ -611,7 +611,7 @@
)
)
- ;; CHECK: (func $call-inlineable
+ ;; CHECK: (func $call-inlineable (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$inlineable
;; CHECK-NEXT: (if
@@ -634,7 +634,7 @@
(call $inlineable)
)
- ;; CHECK: (func $if-not-first (param $x i32)
+ ;; CHECK: (func $if-not-first (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
@@ -659,7 +659,7 @@
)
)
- ;; CHECK: (func $call-if-not-first
+ ;; CHECK: (func $call-if-not-first (type $none_=>_none)
;; CHECK-NEXT: (call $if-not-first
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -672,7 +672,7 @@
(call $if-not-first (i32.const 1))
)
- ;; CHECK: (func $if-else (param $x i32)
+ ;; CHECK: (func $if-else (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (return)
@@ -696,7 +696,7 @@
)
)
- ;; CHECK: (func $call-if-else
+ ;; CHECK: (func $call-if-else (type $none_=>_none)
;; CHECK-NEXT: (call $if-else
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -709,7 +709,7 @@
(call $if-else (i32.const 1))
)
- ;; CHECK: (func $if-non-return (param $x i32)
+ ;; CHECK: (func $if-non-return (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (unreachable)
@@ -731,7 +731,7 @@
)
)
- ;; CHECK: (func $call-if-non-return
+ ;; CHECK: (func $call-if-non-return (type $none_=>_none)
;; CHECK-NEXT: (call $if-non-return
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -757,7 +757,7 @@
)
)
- ;; CHECK: (func $call-colliding-name
+ ;; CHECK: (func $call-colliding-name (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (block
@@ -796,7 +796,7 @@
(call $colliding-name (i32.const 1))
)
- ;; CHECK: (func $byn-split-outlined-A$colliding-name
+ ;; CHECK: (func $byn-split-outlined-A$colliding-name (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $byn-split-outlined-A$colliding-name
@@ -826,7 +826,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-error-if-null
+ ;; CHECK: (func $call-error-if-null (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (drop
@@ -879,7 +879,7 @@
(drop (call $error-if-null (ref.null any)))
)
- ;; CHECK: (func $too-many (param $x anyref) (result anyref)
+ ;; CHECK: (func $too-many (type $anyref_=>_anyref) (param $x anyref) (result anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $x)
@@ -906,7 +906,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-too-many
+ ;; CHECK: (func $call-too-many (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $too-many
;; CHECK-NEXT: (ref.null none)
@@ -923,7 +923,7 @@
(drop (call $too-many (ref.null any)))
)
- ;; CHECK: (func $tail-not-simple (param $x anyref) (result anyref)
+ ;; CHECK: (func $tail-not-simple (type $anyref_=>_anyref) (param $x anyref) (result anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $x)
@@ -948,7 +948,7 @@
(unreachable) ;; This prevents us from optimizing
)
- ;; CHECK: (func $call-tail-not-simple
+ ;; CHECK: (func $call-tail-not-simple (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $tail-not-simple
;; CHECK-NEXT: (ref.null none)
@@ -978,7 +978,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-reachable-if-body
+ ;; CHECK: (func $call-reachable-if-body (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (local $2 anyref)
@@ -1052,7 +1052,7 @@
(drop (call $reachable-if-body (ref.null any)))
)
- ;; CHECK: (func $reachable-if-body-return (param $x anyref) (result anyref)
+ ;; CHECK: (func $reachable-if-body-return (type $anyref_=>_anyref) (param $x anyref) (result anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $x)
@@ -1084,7 +1084,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-reachable-if-body-return
+ ;; CHECK: (func $call-reachable-if-body-return (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $reachable-if-body-return
;; CHECK-NEXT: (ref.null none)
@@ -1115,7 +1115,7 @@
)
)
- ;; CHECK: (func $call-unreachable-if-body-no-result
+ ;; CHECK: (func $call-unreachable-if-body-no-result (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (block
@@ -1176,7 +1176,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-multi-if
+ ;; CHECK: (func $call-multi-if (type $none_=>_none)
;; CHECK-NEXT: (local $0 anyref)
;; CHECK-NEXT: (local $1 anyref)
;; CHECK-NEXT: (local $2 anyref)
@@ -1249,7 +1249,7 @@
(drop (call $multi-if (ref.null data)))
)
- ;; CHECK: (func $too-many-ifs (param $x anyref) (result anyref)
+ ;; CHECK: (func $too-many-ifs (type $anyref_=>_anyref) (param $x anyref) (result anyref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $x)
@@ -1317,7 +1317,7 @@
(local.get $x)
)
- ;; CHECK: (func $call-too-many-ifs
+ ;; CHECK: (func $call-too-many-ifs (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $too-many-ifs
;; CHECK-NEXT: (ref.null none)
@@ -1335,14 +1335,14 @@
)
)
-;; CHECK: (func $byn-split-outlined-A$maybe-work-hard (param $x i32)
+;; CHECK: (func $byn-split-outlined-A$maybe-work-hard (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-B$just-if (param $x i32)
+;; CHECK: (func $byn-split-outlined-B$just-if (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br_if $l
@@ -1351,59 +1351,59 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$many-params (param $x i64) (param $y i32) (param $z f64)
+;; CHECK: (func $byn-split-outlined-A$many-params (type $i64_i32_f64_=>_none) (param $x i64) (param $y i32) (param $z f64)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$condition-eqz (param $x i32)
+;; CHECK: (func $byn-split-outlined-A$condition-eqz (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$condition-global
+;; CHECK: (func $byn-split-outlined-A$condition-global (type $none_=>_none)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$condition-ref.is (param $x anyref)
+;; CHECK: (func $byn-split-outlined-A$condition-ref.is (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$start-used-globally
+;; CHECK: (func $byn-split-outlined-A$start-used-globally (type $none_=>_none)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$colliding-name_0 (param $x i32)
+;; CHECK: (func $byn-split-outlined-A$colliding-name_0 (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-B$error-if-null (param $x anyref) (result anyref)
+;; CHECK: (func $byn-split-outlined-B$error-if-null (type $anyref_=>_anyref) (param $x anyref) (result anyref)
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-B$unreachable-if-body-no-result (param $x anyref)
+;; CHECK: (func $byn-split-outlined-B$unreachable-if-body-no-result (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-B$multi-if_0 (param $x anyref)
+;; CHECK: (func $byn-split-outlined-B$multi-if_0 (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (loop $x
;; CHECK-NEXT: (call $import)
;; CHECK-NEXT: (br_if $x
@@ -1420,7 +1420,7 @@
(export "0" (func $0))
;; CHECK: (export "1" (func $1))
(export "1" (func $1))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $global$0)
;; CHECK-NEXT: (return)
@@ -1449,7 +1449,7 @@
(call $1)
(call $1)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0
;; CHECK-NEXT: (if
@@ -1509,110 +1509,110 @@
;; Add a lot more functions, so the # of functions is high which would
;; otherwise limit the # of iterations that we run.
- ;; CHECK: (func $2
+ ;; CHECK: (func $2 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $2
(nop)
)
- ;; CHECK: (func $3
+ ;; CHECK: (func $3 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $3
(nop)
)
- ;; CHECK: (func $4
+ ;; CHECK: (func $4 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $4
(nop)
)
- ;; CHECK: (func $5
+ ;; CHECK: (func $5 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $5
(nop)
)
- ;; CHECK: (func $6
+ ;; CHECK: (func $6 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $6
(nop)
)
- ;; CHECK: (func $7
+ ;; CHECK: (func $7 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $7
(nop)
)
- ;; CHECK: (func $8
+ ;; CHECK: (func $8 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $8
(nop)
)
- ;; CHECK: (func $9
+ ;; CHECK: (func $9 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $9
(nop)
)
- ;; CHECK: (func $10
+ ;; CHECK: (func $10 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $10
(nop)
)
- ;; CHECK: (func $11
+ ;; CHECK: (func $11 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $11
(nop)
)
- ;; CHECK: (func $12
+ ;; CHECK: (func $12 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $12
(nop)
)
- ;; CHECK: (func $13
+ ;; CHECK: (func $13 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $13
(nop)
)
- ;; CHECK: (func $14
+ ;; CHECK: (func $14 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $14
(nop)
)
- ;; CHECK: (func $15
+ ;; CHECK: (func $15 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $15
(nop)
)
- ;; CHECK: (func $16
+ ;; CHECK: (func $16 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $16
(nop)
)
- ;; CHECK: (func $17
+ ;; CHECK: (func $17 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $17
(nop)
)
- ;; CHECK: (func $18
+ ;; CHECK: (func $18 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $18
(nop)
)
)
-;; CHECK: (func $byn-split-outlined-A$0
+;; CHECK: (func $byn-split-outlined-A$0 (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$1
;; CHECK-NEXT: (block
@@ -1647,7 +1647,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$0_0
+;; CHECK: (func $byn-split-outlined-A$0_0 (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$1
;; CHECK-NEXT: (block
@@ -1682,7 +1682,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn-split-outlined-A$0_1
+;; CHECK: (func $byn-split-outlined-A$0_1 (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (block $__inlined_func$1
;; CHECK-NEXT: (block
diff --git a/test/lit/passes/inlining_vacuum_optimize-instructions.wast b/test/lit/passes/inlining_vacuum_optimize-instructions.wast
index 839a5887e..11e51b203 100644
--- a/test/lit/passes/inlining_vacuum_optimize-instructions.wast
+++ b/test/lit/passes/inlining_vacuum_optimize-instructions.wast
@@ -12,13 +12,12 @@
;; there.
(module
;; CHECK: (type $B (struct ))
-
- ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
-
+ (type $B (struct_subtype data))
;; CHECK: (type $A (struct (field (ref null $B))))
(type $A (struct_subtype (field (ref null $B)) data))
- (type $B (struct_subtype data))
- ;; CHECK: (func $target (param $0 (ref null $A))
+ ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
+
+ ;; CHECK: (func $target (type $ref?|$A|_=>_none) (param $0 (ref null $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $B
;; CHECK-NEXT: (unreachable)
@@ -40,4 +39,3 @@
(ref.null none)
)
)
-
diff --git a/test/lit/passes/instrument-locals-eh.wast b/test/lit/passes/instrument-locals-eh.wast
index 44535b7c2..0c7934cf4 100644
--- a/test/lit/passes/instrument-locals-eh.wast
+++ b/test/lit/passes/instrument-locals-eh.wast
@@ -5,7 +5,7 @@
;; CHECK: (tag $e (param i32))
(tag $e (param i32))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/instrument-memory-gc.wast b/test/lit/passes/instrument-memory-gc.wast
index f41268480..e1f04a095 100644
--- a/test/lit/passes/instrument-memory-gc.wast
+++ b/test/lit/passes/instrument-memory-gc.wast
@@ -13,22 +13,22 @@
;; CHECK: (type $i32_f64_=>_f64 (func (param i32 f64) (result f64)))
;; CHECK: (type $struct (struct (field (mut i32)) (field f32) (field $named f64)))
- ;; NOMNL: (type $i32_i32_=>_i32 (func_subtype (param i32 i32) (result i32) func))
+ ;; NOMNL: (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- ;; NOMNL: (type $i32_i64_=>_i64 (func_subtype (param i32 i64) (result i64) func))
+ ;; NOMNL: (type $i32_i64_=>_i64 (func (param i32 i64) (result i64)))
- ;; NOMNL: (type $i32_f32_=>_f32 (func_subtype (param i32 f32) (result f32) func))
+ ;; NOMNL: (type $i32_f32_=>_f32 (func (param i32 f32) (result f32)))
- ;; NOMNL: (type $i32_f64_=>_f64 (func_subtype (param i32 f64) (result f64) func))
+ ;; NOMNL: (type $i32_f64_=>_f64 (func (param i32 f64) (result f64)))
- ;; NOMNL: (type $struct (struct_subtype (field (mut i32)) (field f32) (field $named f64) data))
+ ;; NOMNL: (type $struct (struct (field (mut i32)) (field f32) (field $named f64)))
(type $struct (struct
(field (mut i32))
(field f32)
(field $named f64)
))
;; CHECK: (type $array (array (mut f64)))
- ;; NOMNL: (type $array (array_subtype (mut f64) data))
+ ;; NOMNL: (type $array (array (mut f64)))
(type $array (array (mut f64)))
;; CHECK: (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32)))
@@ -93,7 +93,7 @@
;; CHECK: (import "env" "array_set_index" (func $array_set_index (param i32 i32) (result i32)))
- ;; CHECK: (func $structs (param $x (ref $struct))
+ ;; CHECK: (func $structs (type $ref|$struct|_=>_none) (param $x (ref $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $struct_get_val_i32
;; CHECK-NEXT: (i32.const 0)
@@ -126,11 +126,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; NOMNL: (type $i32_i32_i32_i32_=>_i32 (func_subtype (param i32 i32 i32 i32) (result i32) func))
+ ;; NOMNL: (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32)))
- ;; NOMNL: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; NOMNL: (type $ref|$struct|_=>_none (func (param (ref $struct))))
- ;; NOMNL: (type $ref|$array|_=>_none (func_subtype (param (ref $array)) func))
+ ;; NOMNL: (type $ref|$array|_=>_none (func (param (ref $array))))
;; NOMNL: (import "env" "load_ptr" (func $load_ptr (param i32 i32 i32 i32) (result i32)))
@@ -234,7 +234,7 @@
(struct.set $struct 0 (local.get $x) (i32.const 42))
)
- ;; CHECK: (func $arrays (param $x (ref $array))
+ ;; CHECK: (func $arrays (type $ref|$array|_=>_none) (param $x (ref $array))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $array_get_val_f64
;; CHECK-NEXT: (i32.const 5)
diff --git a/test/lit/passes/intrinsic-lowering.wast b/test/lit/passes/intrinsic-lowering.wast
index 34e994f7f..cd072545b 100644
--- a/test/lit/passes/intrinsic-lowering.wast
+++ b/test/lit/passes/intrinsic-lowering.wast
@@ -17,7 +17,7 @@
;; CHECK: (import "binaryen-intrinsics" "call.without.effects" (func $cwe-n (param funcref)))
(import "binaryen-intrinsics" "call.without.effects" (func $cwe-n (param funcref)))
- ;; CHECK: (func $test (param $none (ref null $none))
+ ;; CHECK: (func $test (type $ref?|$none|_=>_none) (param $none (ref null $none))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $make-i32)
;; CHECK-NEXT: )
@@ -39,14 +39,14 @@
(call $cwe-n (local.get $none))
)
- ;; CHECK: (func $make-i32 (result i32)
+ ;; CHECK: (func $make-i32 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $make-i32 (result i32)
(i32.const 1)
)
- ;; CHECK: (func $dif (param $0 f64) (param $1 i32) (result f32)
+ ;; CHECK: (func $dif (type $f64_i32_=>_f32) (param $0 f64) (param $1 i32) (result f32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $dif (param f64) (param i32) (result f32)
diff --git a/test/lit/passes/jspi-args.wast b/test/lit/passes/jspi-args.wast
index 237b31213..e915f02c0 100644
--- a/test/lit/passes/jspi-args.wast
+++ b/test/lit/passes/jspi-args.wast
@@ -18,7 +18,7 @@
;; CHECK: (export "update_state_sync" (func $update_state_sync))
(export "update_state_sync" (func $update_state_sync))
;; This function calls an async sleep so a wrapper should be created for it.
- ;; CHECK: (func $update_state_async (param $param f64) (result i32)
+ ;; CHECK: (func $update_state_async (type $f64_=>_i32) (param $param f64) (result i32)
;; CHECK-NEXT: (call $sleep_async
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.const 1.1)
@@ -29,7 +29,7 @@
(func $update_state_async (param $param f64) (result i32)
(call $sleep_async (f64.sub (f64.const 1.1) (local.get $param)))
)
- ;; CHECK: (func $update_state_sync (param $param f64) (result i32)
+ ;; CHECK: (func $update_state_sync (type $f64_=>_i32) (param $param f64) (result i32)
;; CHECK-NEXT: (call $sleep_sync
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.const 1.1)
@@ -41,7 +41,7 @@
(call $sleep_sync (f64.sub (f64.const 1.1) (local.get $param)))
)
)
-;; CHECK: (func $export$update_state_async (param $susp externref) (param $param f64) (result i32)
+;; CHECK: (func $export$update_state_async (type $externref_f64_=>_i32) (param $susp externref) (param $param f64) (result i32)
;; CHECK-NEXT: (global.set $suspender
;; CHECK-NEXT: (local.get $susp)
;; CHECK-NEXT: )
@@ -50,7 +50,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $sleep_async (param $0 f64) (result i32)
+;; CHECK: (func $sleep_async (type $f64_=>_i32) (param $0 f64) (result i32)
;; CHECK-NEXT: (local $1 externref)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local.set $1
diff --git a/test/lit/passes/jspi.wast b/test/lit/passes/jspi.wast
index 5b8669be1..c6da24134 100644
--- a/test/lit/passes/jspi.wast
+++ b/test/lit/passes/jspi.wast
@@ -41,7 +41,7 @@
(export "import_and_export" (func $import_and_export))
- ;; CHECK: (func $update_state (param $param f64) (result i32)
+ ;; CHECK: (func $update_state (type $f64_=>_i32) (param $param f64) (result i32)
;; CHECK-NEXT: (call $compute_delta
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.const 1.1)
@@ -53,7 +53,7 @@
(call $compute_delta (f64.sub (f64.const 1.1) (local.get $param)))
)
- ;; CHECK: (func $update_state_void (param $0 f64)
+ ;; CHECK: (func $update_state_void (type $f64_=>_none) (param $0 f64)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $compute_delta
;; CHECK-NEXT: (f64.const 1.1)
@@ -66,7 +66,7 @@
(drop (call $compute_delta (f64.const 1.1)))
)
- ;; CHECK: (func $update_state_param_collision (param $susp f64) (result i32)
+ ;; CHECK: (func $update_state_param_collision (type $f64_=>_i32) (param $susp f64) (result i32)
;; CHECK-NEXT: (call $update_state_param_collision
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.const 1.1)
@@ -78,7 +78,7 @@
(call $update_state_param_collision (f64.sub (f64.const 1.1) (local.get $susp)))
)
)
-;; CHECK: (func $export$update_state_void (param $susp externref) (param $0 f64) (result i32)
+;; CHECK: (func $export$update_state_void (type $externref_f64_=>_i32) (param $susp externref) (param $0 f64) (result i32)
;; CHECK-NEXT: (global.set $suspender
;; CHECK-NEXT: (local.get $susp)
;; CHECK-NEXT: )
@@ -88,7 +88,7 @@
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
-;; CHECK: (func $export$update_state (param $susp externref) (param $param f64) (result i32)
+;; CHECK: (func $export$update_state (type $externref_f64_=>_i32) (param $susp externref) (param $param f64) (result i32)
;; CHECK-NEXT: (global.set $suspender
;; CHECK-NEXT: (local.get $susp)
;; CHECK-NEXT: )
@@ -97,7 +97,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $export$update_state_param_collision (param $susp_0 externref) (param $susp f64) (result i32)
+;; CHECK: (func $export$update_state_param_collision (type $externref_f64_=>_i32) (param $susp_0 externref) (param $susp f64) (result i32)
;; CHECK-NEXT: (global.set $suspender
;; CHECK-NEXT: (local.get $susp_0)
;; CHECK-NEXT: )
@@ -106,7 +106,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $export$import_and_export (param $susp externref) (param $0 i32) (result i32)
+;; CHECK: (func $export$import_and_export (type $externref_i32_=>_i32) (param $susp externref) (param $0 i32) (result i32)
;; CHECK-NEXT: (global.set $suspender
;; CHECK-NEXT: (local.get $susp)
;; CHECK-NEXT: )
@@ -115,7 +115,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $compute_delta (param $0 f64) (result i32)
+;; CHECK: (func $compute_delta (type $f64_=>_i32) (param $0 f64) (result i32)
;; CHECK-NEXT: (local $1 externref)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local.set $1
@@ -133,7 +133,7 @@
;; CHECK-NEXT: (local.get $2)
;; CHECK-NEXT: )
-;; CHECK: (func $import_and_export (param $0 i32) (result i32)
+;; CHECK: (func $import_and_export (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (local $1 externref)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local.set $1
@@ -151,7 +151,7 @@
;; CHECK-NEXT: (local.get $2)
;; CHECK-NEXT: )
-;; CHECK: (func $import_void_return (param $0 i32)
+;; CHECK: (func $import_void_return (type $i32_=>_none) (param $0 i32)
;; CHECK-NEXT: (local $1 externref)
;; CHECK-NEXT: (local.set $1
;; CHECK-NEXT: (global.get $suspender)
diff --git a/test/lit/passes/legalize-js-interface_all-features.wast b/test/lit/passes/legalize-js-interface_all-features.wast
index 3ffe2acd7..beca1ab19 100644
--- a/test/lit/passes/legalize-js-interface_all-features.wast
+++ b/test/lit/passes/legalize-js-interface_all-features.wast
@@ -38,7 +38,7 @@
(export "imported_again" (func $imported))
;; CHECK: (export "other" (func $legalstub$other))
(export "other" (func $other))
- ;; CHECK: (func $func (result i64)
+ ;; CHECK: (func $func (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $legalfunc$imported)
;; CHECK-NEXT: )
@@ -60,7 +60,7 @@
)
;; ref.func must also be updated.
- ;; CHECK: (func $ref-func-test
+ ;; CHECK: (func $ref-func-test (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $legalfunc$ref-func-arg)
;; CHECK-NEXT: )
@@ -77,7 +77,7 @@
)
)
)
-;; CHECK: (func $legalstub$func (result i32)
+;; CHECK: (func $legalstub$func (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i64)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (call $func)
@@ -95,7 +95,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $legalstub$imported (result i32)
+;; CHECK: (func $legalstub$imported (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i64)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (call $legalfunc$imported)
@@ -113,7 +113,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $legalstub$other (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
+;; CHECK: (func $legalstub$other (type $i32_i32_i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
;; CHECK-NEXT: (call $legalfunc$other
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i64.or
@@ -141,7 +141,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $legalfunc$imported (result i64)
+;; CHECK: (func $legalfunc$imported (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (i64.or
;; CHECK-NEXT: (i64.extend_i32_u
;; CHECK-NEXT: (call $legalimport$imported)
@@ -155,7 +155,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $legalfunc$other (param $0 i32) (param $1 i64) (param $2 i64)
+;; CHECK: (func $legalfunc$other (type $i32_i64_i64_=>_none) (param $0 i32) (param $1 i64) (param $2 i64)
;; CHECK-NEXT: (call $legalimport$other
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.wrap_i64
@@ -179,7 +179,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $legalfunc$ref-func-arg (result i64)
+;; CHECK: (func $legalfunc$ref-func-arg (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (i64.or
;; CHECK-NEXT: (i64.extend_i32_u
;; CHECK-NEXT: (call $legalimport$ref-func-arg)
diff --git a/test/lit/passes/local-cse_all-features.wast b/test/lit/passes/local-cse_all-features.wast
index 22b6b1903..6fed86f29 100644
--- a/test/lit/passes/local-cse_all-features.wast
+++ b/test/lit/passes/local-cse_all-features.wast
@@ -11,7 +11,7 @@
;; CHECK: (elem declare func $calls $ref.func)
- ;; CHECK: (func $calls (param $x i32) (result i32)
+ ;; CHECK: (func $calls (type $f) (param $x i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call_ref $f
;; CHECK-NEXT: (i32.const 10)
@@ -37,7 +37,7 @@
(i32.const 20)
)
- ;; CHECK: (func $ref.func
+ ;; CHECK: (func $ref.func (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.func $ref.func)
;; CHECK-NEXT: )
@@ -73,7 +73,7 @@
;; CHECK: (type $ref?|$B|_ref|$A|_=>_none (func (param (ref null $B) (ref $A))))
- ;; CHECK: (func $struct-gets-nullable (param $ref (ref null $A))
+ ;; CHECK: (func $struct-gets-nullable (type $ref?|$A|_=>_none) (param $ref (ref null $A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.tee $1
@@ -110,7 +110,7 @@
)
)
- ;; CHECK: (func $struct-gets (param $ref (ref $A))
+ ;; CHECK: (func $struct-gets (type $ref|$A|_=>_none) (param $ref (ref $A))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.tee $1
@@ -148,7 +148,7 @@
)
)
- ;; CHECK: (func $non-nullable-value (param $ref (ref $A))
+ ;; CHECK: (func $non-nullable-value (type $ref|$A|_=>_none) (param $ref (ref $A))
;; CHECK-NEXT: (local $1 (ref $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.tee $1
@@ -182,7 +182,7 @@
)
)
- ;; CHECK: (func $creations
+ ;; CHECK: (func $creations (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.new $A
;; CHECK-NEXT: (i32.const 1)
@@ -233,7 +233,7 @@
)
)
- ;; CHECK: (func $structs-and-arrays-do-not-alias (param $array (ref null $B)) (param $struct (ref $A))
+ ;; CHECK: (func $structs-and-arrays-do-not-alias (type $ref?|$B|_ref|$A|_=>_none) (param $array (ref null $B)) (param $struct (ref $A))
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (array.set $B
;; CHECK-NEXT: (local.get $array)
@@ -289,7 +289,7 @@
;; we can avoid repeating them.
;; CHECK: (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- ;; CHECK: (func $div16_internal (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $div16_internal (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $2
diff --git a/test/lit/passes/local-subtyping-nn.wast b/test/lit/passes/local-subtyping-nn.wast
index a34300525..2eee625e7 100644
--- a/test/lit/passes/local-subtyping-nn.wast
+++ b/test/lit/passes/local-subtyping-nn.wast
@@ -11,7 +11,7 @@
;; NOMNL: (import "out" "i32" (func $i32 (result i32)))
(import "out" "i32" (func $i32 (result i32)))
- ;; CHECK: (func $non-nullable
+ ;; CHECK: (func $non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref none))
;; CHECK-NEXT: (local $y (ref $none_=>_i32))
;; CHECK-NEXT: (local.set $x
@@ -59,7 +59,7 @@
)
)
- ;; CHECK: (func $uses-default (param $i i32)
+ ;; CHECK: (func $uses-default (type $i32_=>_none) (param $i i32)
;; CHECK-NEXT: (local $x nullref)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $i)
diff --git a/test/lit/passes/local-subtyping.wast b/test/lit/passes/local-subtyping.wast
index e281d5cf2..0b2a24a45 100644
--- a/test/lit/passes/local-subtyping.wast
+++ b/test/lit/passes/local-subtyping.wast
@@ -22,7 +22,7 @@
;; Refinalization can find a more specific type, where the declared type was
;; not the optimal LUB.
- ;; CHECK: (func $refinalize (param $x i32)
+ ;; CHECK: (func $refinalize (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (if (result (ref i31))
;; CHECK-NEXT: (local.get $x)
@@ -68,7 +68,7 @@
;; A simple case where a local has a single assignment that we can use as a
;; more specific type. A similar thing with a parameter, however, is not a
;; thing we can optimize. Also, ignore a local with zero assignments.
- ;; CHECK: (func $simple-local-but-not-param (param $x funcref)
+ ;; CHECK: (func $simple-local-but-not-param (type $funcref_=>_none) (param $x funcref)
;; CHECK-NEXT: (local $y (ref $none_=>_i32))
;; CHECK-NEXT: (local $unused funcref)
;; CHECK-NEXT: (local.set $x
@@ -89,7 +89,7 @@
)
)
- ;; CHECK: (func $locals-with-multiple-assignments (param $data dataref)
+ ;; CHECK: (func $locals-with-multiple-assignments (type $dataref_=>_none) (param $data dataref)
;; CHECK-NEXT: (local $x eqref)
;; CHECK-NEXT: (local $y (ref i31))
;; CHECK-NEXT: (local $z dataref)
@@ -163,7 +163,7 @@
;; In some cases multiple iterations are necessary, as one inferred new type
;; applies to a get which then allows another inference.
- ;; CHECK: (func $multiple-iterations
+ ;; CHECK: (func $multiple-iterations (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref $none_=>_i32))
;; CHECK-NEXT: (local $y (ref $none_=>_i32))
;; CHECK-NEXT: (local $z (ref $none_=>_i32))
@@ -193,7 +193,7 @@
)
;; Sometimes a refinalize is necessary in between the iterations.
- ;; CHECK: (func $multiple-iterations-refinalize (param $i i32)
+ ;; CHECK: (func $multiple-iterations-refinalize (type $i32_=>_none) (param $i i32)
;; CHECK-NEXT: (local $x (ref $none_=>_i32))
;; CHECK-NEXT: (local $y (ref $none_=>_i64))
;; CHECK-NEXT: (local $z (ref func))
@@ -230,7 +230,7 @@
)
)
- ;; CHECK: (func $nondefaultable
+ ;; CHECK: (func $nondefaultable (type $none_=>_none)
;; CHECK-NEXT: (local $x (funcref funcref))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (tuple.make
@@ -251,7 +251,7 @@
)
)
- ;; CHECK: (func $uses-default (param $i i32)
+ ;; CHECK: (func $uses-default (type $i32_=>_none) (param $i i32)
;; CHECK-NEXT: (local $x (ref null $i32_=>_none))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $i)
@@ -277,7 +277,7 @@
)
)
- ;; CHECK: (func $unreachables (result funcref)
+ ;; CHECK: (func $unreachables (type $none_=>_funcref) (result funcref)
;; CHECK-NEXT: (local $temp (ref $none_=>_funcref))
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (ref.func $unreachables)
@@ -312,7 +312,7 @@
(local.get $temp)
)
- ;; CHECK: (func $incompatible-sets (result i32)
+ ;; CHECK: (func $incompatible-sets (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $temp (ref $none_=>_i32))
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (ref.func $incompatible-sets)
@@ -361,7 +361,7 @@
(unreachable)
)
- ;; CHECK: (func $update-nulls
+ ;; CHECK: (func $update-nulls (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref null ${}))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.null none)
@@ -404,7 +404,7 @@
(local.set $x (ref.null ${i32}))
)
- ;; CHECK: (func $become-non-nullable
+ ;; CHECK: (func $become-non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref $none_=>_none))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $become-non-nullable)
@@ -423,7 +423,7 @@
)
)
- ;; CHECK: (func $already-non-nullable
+ ;; CHECK: (func $already-non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref $none_=>_none))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $already-non-nullable)
@@ -442,7 +442,7 @@
)
)
- ;; CHECK: (func $cannot-become-non-nullable
+ ;; CHECK: (func $cannot-become-non-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref null $none_=>_none))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -470,7 +470,7 @@
)
)
- ;; CHECK: (func $cannot-become-non-nullable-block
+ ;; CHECK: (func $cannot-become-non-nullable-block (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref null $none_=>_none))
;; CHECK-NEXT: (block $name
;; CHECK-NEXT: (br_if $name
@@ -501,7 +501,7 @@
)
)
- ;; CHECK: (func $become-non-nullable-block-unnamed
+ ;; CHECK: (func $become-non-nullable-block-unnamed (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref $none_=>_none))
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $x
diff --git a/test/lit/passes/memory-packing-gc.wast b/test/lit/passes/memory-packing-gc.wast
index d16fe3a54..474c89c97 100644
--- a/test/lit/passes/memory-packing-gc.wast
+++ b/test/lit/passes/memory-packing-gc.wast
@@ -13,7 +13,7 @@
;; CHECK: (data "hello")
(data "hello")
- ;; CHECK: (func $array-new-data (result (ref $array))
+ ;; CHECK: (func $array-new-data (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 5)
@@ -37,7 +37,7 @@
;; CHECK: (data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00hello\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00hello\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
- ;; CHECK: (func $no-drop-ends (result (ref $array))
+ ;; CHECK: (func $no-drop-ends (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 5)
@@ -64,7 +64,7 @@
;; CHECK: (data "optimize\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00me")
(data "optimize\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00me")
- ;; CHECK: (func $no-split (result (ref $array))
+ ;; CHECK: (func $no-split (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 8)
@@ -92,7 +92,7 @@
;; CHECK: (data (i32.const 0) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00optimize\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00me\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
- ;; CHECK: (func $no-split-active (result (ref $array))
+ ;; CHECK: (func $no-split-active (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 0
;; CHECK-NEXT: (i32.const 16)
;; CHECK-NEXT: (i32.const 8)
@@ -127,7 +127,7 @@
(memory $mem 1 1)
- ;; CHECK: (func $renumber-segment (result (ref $array))
+ ;; CHECK: (func $renumber-segment (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 2
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 7)
@@ -157,7 +157,7 @@
(memory $mem 1 1)
- ;; CHECK: (func $renumber-segment (result (ref $array))
+ ;; CHECK: (func $renumber-segment (type $none_=>_ref|$array|) (result (ref $array))
;; CHECK-NEXT: (array.new_data $array 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 7)
diff --git a/test/lit/passes/memory-packing_all-features.wast b/test/lit/passes/memory-packing_all-features.wast
index 62a12fd71..ba5a4b505 100644
--- a/test/lit/passes/memory-packing_all-features.wast
+++ b/test/lit/passes/memory-packing_all-features.wast
@@ -61,7 +61,7 @@
;; CHECK: (data (i32.const 4066) "another\00but no")
- ;; CHECK: (func $nonzero-size-init-of-active-will-trap
+ ;; CHECK: (func $nonzero-size-init-of-active-will-trap (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
@@ -85,7 +85,7 @@
(data.drop 0)
)
- ;; CHECK: (func $nonzero-offset-init-of-active-will-trap
+ ;; CHECK: (func $nonzero-offset-init-of-active-will-trap (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
@@ -109,7 +109,7 @@
(data.drop 0)
)
- ;; CHECK: (func $zero-offset-size-init-of-active-may-trap
+ ;; CHECK: (func $zero-offset-size-init-of-active-may-trap (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.gt_u
;; CHECK-NEXT: (i32.const 42)
@@ -181,7 +181,7 @@
;; CHECK: (data "no zeroes")
- ;; CHECK: (func $zeroes-at-start
+ ;; CHECK: (func $zeroes-at-start (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state)
@@ -217,7 +217,7 @@
;; the not-split tests have too many memory.init and data.drop instructions for splitting to be worth it
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes at start") ;; 2
- ;; CHECK: (func $zeroes-at-start-not-split
+ ;; CHECK: (func $zeroes-at-start-not-split (type $none_=>_none)
;; CHECK-NEXT: (memory.init 1
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -266,7 +266,7 @@
(data "\00\00\00few zeroes at start") ;; 3
- ;; CHECK: (func $few-zeroes-at-start
+ ;; CHECK: (func $few-zeroes-at-start (type $none_=>_none)
;; CHECK-NEXT: (memory.init 2
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -285,7 +285,7 @@
(data "zeroes at end\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 4
- ;; CHECK: (func $zeroes-at-end
+ ;; CHECK: (func $zeroes-at-end (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (memory.init 3
;; CHECK-NEXT: (i32.const 0)
@@ -311,7 +311,7 @@
(data "zeroes at end\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 5
- ;; CHECK: (func $zeroes-at-end-not-split
+ ;; CHECK: (func $zeroes-at-end-not-split (type $none_=>_none)
;; CHECK-NEXT: (memory.init 4
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -360,7 +360,7 @@
(data "few zeroes at end\00\00\00") ;; 6
- ;; CHECK: (func $few-zeroes-at-end
+ ;; CHECK: (func $few-zeroes-at-end (type $none_=>_none)
;; CHECK-NEXT: (memory.init 5
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -379,7 +379,7 @@
(data "zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00in middle") ;; 7
- ;; CHECK: (func $zeroes-in-middle
+ ;; CHECK: (func $zeroes-in-middle (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (memory.init 6
;; CHECK-NEXT: (i32.const 0)
@@ -413,7 +413,7 @@
(data "zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00in middle") ;; 8
- ;; CHECK: (func $zeroes-in-middle-not-split
+ ;; CHECK: (func $zeroes-in-middle-not-split (type $none_=>_none)
;; CHECK-NEXT: (memory.init 8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -442,7 +442,7 @@
(data "few zeroes\00\00\00in middle") ;; 9
- ;; CHECK: (func $few-zeroes-in-middle
+ ;; CHECK: (func $few-zeroes-in-middle (type $none_=>_none)
;; CHECK-NEXT: (memory.init 9
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -461,7 +461,7 @@
(data "multiple\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00spans\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00of zeroes") ;; 10
- ;; CHECK: (func $multiple-spans-of-zeroes
+ ;; CHECK: (func $multiple-spans-of-zeroes (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (memory.init 10
;; CHECK-NEXT: (i32.const 0)
@@ -506,7 +506,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 11
- ;; CHECK: (func $even-more-zeroes
+ ;; CHECK: (func $even-more-zeroes (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_0)
@@ -568,7 +568,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 12
- ;; CHECK: (func $only-zeroes
+ ;; CHECK: (func $only-zeroes (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_1)
@@ -595,7 +595,7 @@
(data "no zeroes") ;; 13
- ;; CHECK: (func $no-zeroes
+ ;; CHECK: (func $no-zeroes (type $none_=>_none)
;; CHECK-NEXT: (memory.init 16
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -614,7 +614,7 @@
(data "") ;; 14
- ;; CHECK: (func $empty
+ ;; CHECK: (func $empty (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.gt_u
;; CHECK-NEXT: (i32.const 13)
@@ -638,7 +638,7 @@
(data "only dropped") ;; 15
- ;; CHECK: (func $only-dropped
+ ;; CHECK: (func $only-dropped (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -649,7 +649,7 @@
(data "\00\00\00\00\00") ;; 16
- ;; CHECK: (func $only-dropped-zeroes
+ ;; CHECK: (func $only-dropped-zeroes (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -753,7 +753,7 @@
;; CHECK: (data "zeroes")
- ;; CHECK: (func $nonconst-dest
+ ;; CHECK: (func $nonconst-dest (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $0
@@ -837,7 +837,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 1
- ;; CHECK: (func $nonconst-offset
+ ;; CHECK: (func $nonconst-offset (type $none_=>_none)
;; CHECK-NEXT: (memory.init 3
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (global.get $param)
@@ -856,7 +856,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 2
- ;; CHECK: (func $nonconst-size
+ ;; CHECK: (func $nonconst-size (type $none_=>_none)
;; CHECK-NEXT: (memory.init 4
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 0)
@@ -875,7 +875,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 3
- ;; CHECK: (func $partial-skip-start
+ ;; CHECK: (func $partial-skip-start (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_0)
@@ -937,7 +937,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 4
- ;; CHECK: (func $full-skip-start
+ ;; CHECK: (func $full-skip-start (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (memory.init 8
;; CHECK-NEXT: (i32.const 0)
@@ -987,7 +987,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 5
- ;; CHECK: (func $partial-skip-end
+ ;; CHECK: (func $partial-skip-end (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_1)
@@ -1049,7 +1049,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 6
- ;; CHECK: (func $full-skip-end
+ ;; CHECK: (func $full-skip-end (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_2)
@@ -1106,7 +1106,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 7
- ;; CHECK: (func $slice-zeroes
+ ;; CHECK: (func $slice-zeroes (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state_3)
@@ -1138,7 +1138,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 8
- ;; CHECK: (func $slice-nonzeroes
+ ;; CHECK: (func $slice-nonzeroes (type $none_=>_none)
;; CHECK-NEXT: (memory.init 20
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 1)
@@ -1161,7 +1161,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 9
- ;; CHECK: (func $zero-size
+ ;; CHECK: (func $zero-size (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1195,7 +1195,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 10
- ;; CHECK: (func $zero-size-undropped
+ ;; CHECK: (func $zero-size-undropped (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1220,7 +1220,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 11
- ;; CHECK: (func $out-of-bounds-offset
+ ;; CHECK: (func $out-of-bounds-offset (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
@@ -1246,7 +1246,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 12
- ;; CHECK: (func $zero-size-out-of-bounds-offset
+ ;; CHECK: (func $zero-size-out-of-bounds-offset (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
@@ -1272,7 +1272,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 13
- ;; CHECK: (func $out-of-bounds-size
+ ;; CHECK: (func $out-of-bounds-size (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
@@ -1298,7 +1298,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00more\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zeroes\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") ;; 14
- ;; CHECK: (func $zero-size-at-bounds-offset
+ ;; CHECK: (func $zero-size-at-bounds-offset (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1366,7 +1366,7 @@
;; CHECK: (data "hi")
- ;; CHECK: (func $zero-length-init-zeroes
+ ;; CHECK: (func $zero-length-init-zeroes (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1400,7 +1400,7 @@
(data "hi\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00hi") ;; 1
- ;; CHECK: (func $zero-length-init-nonzeroes
+ ;; CHECK: (func $zero-length-init-nonzeroes (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1434,7 +1434,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00hi") ;; 2
- ;; CHECK: (func $zero-length-init-zeroes-2
+ ;; CHECK: (func $zero-length-init-zeroes-2 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1467,7 +1467,7 @@
(data "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00even\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00hi") ;; 3
- ;; CHECK: (func $zero-length-init-nonzeroes-2
+ ;; CHECK: (func $zero-length-init-nonzeroes-2 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.gt_u
@@ -1636,7 +1636,7 @@
;; CHECK: (data "a")
- ;; CHECK: (func $init-lots
+ ;; CHECK: (func $init-lots (type $none_=>_none)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (memory.init 0
;; CHECK-NEXT: (i32.const 0)
@@ -2229,7 +2229,7 @@
;; CHECK: (export "func_54" (func $0))
(export "func_54" (func $0))
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $__mem_segment_drop_state)
;; CHECK-NEXT: (unreachable)
@@ -2282,7 +2282,7 @@
(data (i32.const 0) "")
;; CHECK: (data "foo")
(data "foo")
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (memory.init 0
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 1)
diff --git a/test/lit/passes/merge-blocks.wast b/test/lit/passes/merge-blocks.wast
index 58ba6f171..fd30f4e07 100644
--- a/test/lit/passes/merge-blocks.wast
+++ b/test/lit/passes/merge-blocks.wast
@@ -15,7 +15,7 @@
(type $array (array (mut i32)))
- ;; CHECK: (func $br_on_to_drop
+ ;; CHECK: (func $br_on_to_drop (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $label$1 (result i31ref)
@@ -43,7 +43,7 @@
)
)
- ;; CHECK: (func $struct.set (param $struct (ref null $struct))
+ ;; CHECK: (func $struct.set (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1234)
@@ -68,7 +68,7 @@
)
)
- ;; CHECK: (func $struct.get (param $struct (ref null $struct))
+ ;; CHECK: (func $struct.get (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1234)
@@ -95,7 +95,7 @@
)
)
- ;; CHECK: (func $array.set (param $foo (ref $array))
+ ;; CHECK: (func $array.set (type $ref|$array|_=>_none) (param $foo (ref $array))
;; CHECK-NEXT: (local $bar (ref null $array))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -126,7 +126,7 @@
)
)
- ;; CHECK: (func $array.set-no-1 (param $foo (ref $array))
+ ;; CHECK: (func $array.set-no-1 (type $ref|$array|_=>_none) (param $foo (ref $array))
;; CHECK-NEXT: (local $bar i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -156,7 +156,7 @@
)
)
- ;; CHECK: (func $array.set-no-2 (param $foo (ref $array))
+ ;; CHECK: (func $array.set-no-2 (type $ref|$array|_=>_none) (param $foo (ref $array))
;; CHECK-NEXT: (local $bar i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -186,7 +186,7 @@
)
)
- ;; CHECK: (func $if-condition (result i32)
+ ;; CHECK: (func $if-condition (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -224,7 +224,7 @@
)
)
- ;; CHECK: (func $subsequent-children (param $x i32) (param $y i32) (param $z i32) (result i32)
+ ;; CHECK: (func $subsequent-children (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $helper
;; CHECK-NEXT: (i32.const 0)
@@ -259,7 +259,7 @@
)
)
- ;; CHECK: (func $subsequent-children-1 (param $x i32) (param $y i32) (param $z i32) (result i32)
+ ;; CHECK: (func $subsequent-children-1 (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $helper
;; CHECK-NEXT: (i32.const 0)
@@ -296,7 +296,7 @@
)
)
- ;; CHECK: (func $subsequent-children-2 (param $x i32) (param $y i32) (param $z i32) (result i32)
+ ;; CHECK: (func $subsequent-children-2 (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $helper
;; CHECK-NEXT: (i32.const 0)
@@ -334,7 +334,7 @@
)
)
- ;; CHECK: (func $subsequent-children-3 (param $x i32) (param $y i32) (param $z i32) (result i32)
+ ;; CHECK: (func $subsequent-children-3 (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -369,7 +369,7 @@
)
)
- ;; CHECK: (func $subsequent-children-4 (param $x i32) (param $y i32) (param $z i32) (result i32)
+ ;; CHECK: (func $subsequent-children-4 (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -400,7 +400,7 @@
)
)
- ;; CHECK: (func $helper (param $x i32) (result i32)
+ ;; CHECK: (func $helper (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $helper (param $x i32) (result i32)
diff --git a/test/lit/passes/merge-similar-functions.wast b/test/lit/passes/merge-similar-functions.wast
index 885fb6278..7742f76c2 100644
--- a/test/lit/passes/merge-similar-functions.wast
+++ b/test/lit/passes/merge-similar-functions.wast
@@ -6,7 +6,7 @@
;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (func $big-const-42 (result i32)
+ ;; CHECK: (func $big-const-42 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$big-const-42
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -18,7 +18,7 @@
)
;; same as $big-const-42, but the set of $big-const-* derives {42, 42, 43} params
- ;; CHECK: (func $big-const-42-1 (result i32)
+ ;; CHECK: (func $big-const-42-1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$big-const-42
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -28,7 +28,7 @@
(nop) (nop) (nop) (nop) (nop) (nop)
(i32.const 42)
)
- ;; CHECK: (func $big-const-43 (result i32)
+ ;; CHECK: (func $big-const-43 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$big-const-42
;; CHECK-NEXT: (i32.const 43)
;; CHECK-NEXT: )
@@ -39,13 +39,13 @@
(i32.const 43)
)
- ;; CHECK: (func $small-const-44 (result i32)
+ ;; CHECK: (func $small-const-44 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 44)
;; CHECK-NEXT: )
(func $small-const-44 (result i32)
(i32.const 44)
)
- ;; CHECK: (func $small-const-45 (result i32)
+ ;; CHECK: (func $small-const-45 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 45)
;; CHECK-NEXT: )
(func $small-const-45 (result i32)
@@ -54,7 +54,7 @@
)
;; offset locals for extra params
-;; CHECK: (func $byn$mgfn-shared$big-const-42 (param $0 i32) (result i32)
+;; CHECK: (func $byn$mgfn-shared$big-const-42 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -74,7 +74,7 @@
;; CHECK: (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- ;; CHECK: (func $take-param-and-local-0 (param $0 i32) (result i32)
+ ;; CHECK: (func $take-param-and-local-0 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$take-param-and-local-0
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 42)
@@ -86,7 +86,7 @@
(nop) (nop) (nop) (nop) (nop) (nop)
(i32.add (i32.add (i32.const 42) (local.get $0)) (local.get $1))
)
- ;; CHECK: (func $take-param-and-local-1 (param $0 i32) (result i32)
+ ;; CHECK: (func $take-param-and-local-1 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$take-param-and-local-0
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 43)
@@ -102,7 +102,7 @@
)
;; different callees
-;; CHECK: (func $byn$mgfn-shared$take-param-and-local-0 (param $0 i32) (param $1 i32) (result i32)
+;; CHECK: (func $byn$mgfn-shared$take-param-and-local-0 (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -135,33 +135,33 @@
;; CHECK: (elem declare func $callee-0 $callee-1 $callee-2 $callee-take-arg-0 $callee-take-arg-1)
- ;; CHECK: (func $callee-0 (result i32)
+ ;; CHECK: (func $callee-0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $callee-0 (result i32) (i32.const 0))
- ;; CHECK: (func $callee-1 (result i32)
+ ;; CHECK: (func $callee-1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $callee-1 (result i32) (i32.const 1))
- ;; CHECK: (func $callee-2 (result i32)
+ ;; CHECK: (func $callee-2 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
(func $callee-2 (result i32) (i32.const 2))
- ;; CHECK: (func $callee-take-arg-0 (param $0 i32) (result i32)
+ ;; CHECK: (func $callee-take-arg-0 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $callee-take-arg-0 (param i32) (result i32) (i32.const 0))
- ;; CHECK: (func $callee-take-arg-1 (param $0 i32) (result i32)
+ ;; CHECK: (func $callee-take-arg-1 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $callee-take-arg-1 (param i32) (result i32) (i32.const 1))
- ;; CHECK: (func $callee-take-arg-2 (param $0 i32) (result i32)
+ ;; CHECK: (func $callee-take-arg-2 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
(func $callee-take-arg-2 (param i32) (result i32) (i32.const 2))
- ;; CHECK: (func $yes-call-callee-0 (result i32)
+ ;; CHECK: (func $yes-call-callee-0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-call-callee-0
;; CHECK-NEXT: (ref.func $callee-0)
;; CHECK-NEXT: )
@@ -172,7 +172,7 @@
(nop) (nop) (nop) (nop) (nop) (nop)
(call $callee-0)
)
- ;; CHECK: (func $yes-call-callee-1 (result i32)
+ ;; CHECK: (func $yes-call-callee-1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-call-callee-0
;; CHECK-NEXT: (ref.func $callee-1)
;; CHECK-NEXT: )
@@ -183,7 +183,7 @@
(nop) (nop) (nop) (nop) (nop) (nop)
(call $callee-1)
)
- ;; CHECK: (func $yes-call-callee-2 (result i32)
+ ;; CHECK: (func $yes-call-callee-2 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-call-callee-0
;; CHECK-NEXT: (ref.func $callee-2)
;; CHECK-NEXT: )
@@ -196,7 +196,7 @@
)
- ;; CHECK: (func $yes-call-callee-take-arg-0 (result i32)
+ ;; CHECK: (func $yes-call-callee-take-arg-0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-call-callee-take-arg-0
;; CHECK-NEXT: (ref.func $callee-take-arg-0)
;; CHECK-NEXT: (i32.const 0)
@@ -208,7 +208,7 @@
(nop) (nop) (nop) (nop) (nop) (nop)
(call $callee-take-arg-0 (i32.const 0))
)
- ;; CHECK: (func $yes-call-callee-take-arg-1 (result i32)
+ ;; CHECK: (func $yes-call-callee-take-arg-1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-call-callee-take-arg-0
;; CHECK-NEXT: (ref.func $callee-take-arg-1)
;; CHECK-NEXT: (i32.const 1)
@@ -224,7 +224,7 @@
;; NOTE: calls with different argument expressions are not mergeable
- ;; CHECK: (func $no-call-callee-take-arg-0 (result i32)
+ ;; CHECK: (func $no-call-callee-take-arg-0 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -263,7 +263,7 @@
)
)
)
- ;; CHECK: (func $no-call-callee-take-arg-1 (result i32)
+ ;; CHECK: (func $no-call-callee-take-arg-1 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -309,7 +309,7 @@
)
-;; CHECK: (func $byn$mgfn-shared$yes-call-callee-0 (param $0 (ref $none_=>_i32)) (result i32)
+;; CHECK: (func $byn$mgfn-shared$yes-call-callee-0 (type $ref|none_->_i32|_=>_i32) (param $0 (ref $none_=>_i32)) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -333,7 +333,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
-;; CHECK: (func $byn$mgfn-shared$yes-call-callee-take-arg-0 (param $0 (ref $i32_=>_i32)) (param $1 i32) (result i32)
+;; CHECK: (func $byn$mgfn-shared$yes-call-callee-take-arg-0 (type $ref|i32_->_i32|_i32_=>_i32) (param $0 (ref $i32_=>_i32)) (param $1 i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -362,7 +362,7 @@
;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (func $use-42-twice (result i32)
+ ;; CHECK: (func $use-42-twice (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$use-42-twice
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
@@ -375,7 +375,7 @@
(i32.const 42)
)
)
- ;; CHECK: (func $use-43-twice (result i32)
+ ;; CHECK: (func $use-43-twice (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$use-42-twice
;; CHECK-NEXT: (i32.const 43)
;; CHECK-NEXT: )
@@ -391,7 +391,7 @@
)
-;; CHECK: (func $byn$mgfn-shared$use-42-twice (param $0 i32) (result i32)
+;; CHECK: (func $byn$mgfn-shared$use-42-twice (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -414,7 +414,7 @@
;; CHECK: (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
- ;; CHECK: (func $yes-offset-local-indices-1 (param $a i32) (param $b i32)
+ ;; CHECK: (func $yes-offset-local-indices-1 (type $i32_i32_=>_none) (param $a i32) (param $b i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-offset-local-indices-1
;; CHECK-NEXT: (local.get $a)
;; CHECK-NEXT: (local.get $b)
@@ -434,7 +434,7 @@
(drop (local.tee $b (local.get $b)))
(drop (i32.const 1))
)
- ;; CHECK: (func $yes-offset-local-indices-2 (param $a i32) (param $b i32)
+ ;; CHECK: (func $yes-offset-local-indices-2 (type $i32_i32_=>_none) (param $a i32) (param $b i32)
;; CHECK-NEXT: (call $byn$mgfn-shared$yes-offset-local-indices-1
;; CHECK-NEXT: (local.get $a)
;; CHECK-NEXT: (local.get $b)
@@ -456,7 +456,7 @@
)
)
-;; CHECK: (func $byn$mgfn-shared$yes-offset-local-indices-1 (param $0 i32) (param $1 i32) (param $2 i32)
+;; CHECK: (func $byn$mgfn-shared$yes-offset-local-indices-1 (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (drop
diff --git a/test/lit/passes/merge-similar-functions_all-features.wast b/test/lit/passes/merge-similar-functions_all-features.wast
index bcd9c706b..91b7fa405 100644
--- a/test/lit/passes/merge-similar-functions_all-features.wast
+++ b/test/lit/passes/merge-similar-functions_all-features.wast
@@ -5,13 +5,13 @@
;; CHECK: (type $[i8] (array i8))
(type $[i8] (array i8))
- ;; CHECK: (func $take-ref-null-data (param $0 dataref)
+ ;; CHECK: (func $take-ref-null-data (type $dataref_=>_none) (param $0 dataref)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $take-ref-null-data (param (ref null data))
(unreachable)
)
- ;; CHECK: (func $take-ref-eq (param $0 (ref eq))
+ ;; CHECK: (func $take-ref-eq (type $ref|eq|_=>_none) (param $0 (ref eq))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $take-ref-eq (param (ref eq))
@@ -24,7 +24,7 @@
;; But in general, type B and C don't have a common subtype, so
;; we can't merge call instructions of func X and Y.
- ;; CHECK: (func $no-call-subtyping-same-operand-0
+ ;; CHECK: (func $no-call-subtyping-same-operand-0 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -55,7 +55,7 @@
(array.init_static $[i8])
)
)
- ;; CHECK: (func $no-call-subtyping-same-operand-1
+ ;; CHECK: (func $no-call-subtyping-same-operand-1 (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/merge-similar-functions_types.wast b/test/lit/passes/merge-similar-functions_types.wast
index 5cf5e473b..3fa71fa98 100644
--- a/test/lit/passes/merge-similar-functions_types.wast
+++ b/test/lit/passes/merge-similar-functions_types.wast
@@ -9,11 +9,11 @@
;; However, their nominal types differ, so in nominal typing we cannot do so.
(module
;; CHECK: (type $type$0 (func))
- ;; NOMNL: (type $type$0 (func_subtype func))
+ ;; NOMNL: (type $type$0 (func))
(type $type$0 (func_subtype func))
- ;; NOMNL: (type $type$1 (func_subtype func))
+ ;; NOMNL: (type $type$1 (func))
(type $type$1 (func_subtype func))
- ;; NOMNL: (type $type$2 (func_subtype func))
+ ;; NOMNL: (type $type$2 (func))
(type $type$2 (func_subtype func))
(type $type$3 (func_subtype (param f32) (result f32) func))
(type $type$4 (func_subtype (param f64) (result f64) func))
@@ -21,7 +21,7 @@
;; CHECK: (elem declare func $2 $3)
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $type$0)
;; CHECK-NEXT: (call $byn$mgfn-shared$0
;; CHECK-NEXT: (ref.func $2)
;; CHECK-NEXT: )
@@ -64,7 +64,7 @@
(nop)
(nop)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $type$0)
;; CHECK-NEXT: (call $byn$mgfn-shared$0
;; CHECK-NEXT: (ref.func $3)
;; CHECK-NEXT: )
@@ -107,7 +107,7 @@
(nop)
(nop)
)
- ;; CHECK: (func $2
+ ;; CHECK: (func $2 (type $type$0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 17)
;; CHECK-NEXT: )
@@ -122,7 +122,7 @@
(i32.const 17)
)
)
- ;; CHECK: (func $3
+ ;; CHECK: (func $3 (type $type$0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 999)
;; CHECK-NEXT: )
@@ -142,7 +142,7 @@
-;; CHECK: (func $byn$mgfn-shared$0 (param $0 (ref $type$0))
+;; CHECK: (func $byn$mgfn-shared$0 (type $ref|$type$0|_=>_none) (param $0 (ref $type$0))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -168,9 +168,9 @@
;; modes.
;; CHECK: (type $type$0 (func))
- ;; NOMNL: (type $type$1 (func_subtype func))
+ ;; NOMNL: (type $type$1 (func))
- ;; NOMNL: (type $type$0 (func_subtype func))
+ ;; NOMNL: (type $type$0 (func))
(type $type$0 (func_subtype func))
(type $type$1 (func_subtype func))
(type $type$3 (func_subtype (param f32) (result f32) func))
@@ -178,7 +178,7 @@
;; CHECK: (type $ref|$type$0|_=>_none (func (param (ref $type$0))))
;; CHECK: (global $global$0 (mut i32) (i32.const 10))
- ;; NOMNL: (type $ref|$type$1|_=>_none (func_subtype (param (ref $type$1)) func))
+ ;; NOMNL: (type $ref|$type$1|_=>_none (func (param (ref $type$1))))
;; NOMNL: (global $global$0 (mut i32) (i32.const 10))
(global $global$0 (mut i32) (i32.const 10))
@@ -187,7 +187,7 @@
(memory $0 (shared 16 17))
;; CHECK: (elem declare func $2 $3)
- ;; CHECK: (func $0
+ ;; CHECK: (func $0 (type $type$0)
;; CHECK-NEXT: (call $byn$mgfn-shared$0
;; CHECK-NEXT: (ref.func $2)
;; CHECK-NEXT: )
@@ -218,7 +218,7 @@
(nop)
(nop)
)
- ;; CHECK: (func $1
+ ;; CHECK: (func $1 (type $type$0)
;; CHECK-NEXT: (call $byn$mgfn-shared$0
;; CHECK-NEXT: (ref.func $3)
;; CHECK-NEXT: )
@@ -247,7 +247,7 @@
(nop)
(nop)
)
- ;; CHECK: (func $2
+ ;; CHECK: (func $2 (type $type$0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 17)
;; CHECK-NEXT: )
@@ -262,7 +262,7 @@
(i32.const 17)
)
)
- ;; CHECK: (func $3
+ ;; CHECK: (func $3 (type $type$0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 999)
;; CHECK-NEXT: )
@@ -278,7 +278,7 @@
)
)
)
-;; CHECK: (func $byn$mgfn-shared$0 (param $0 (ref $type$0))
+;; CHECK: (func $byn$mgfn-shared$0 (type $ref|$type$0|_=>_none) (param $0 (ref $type$0))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/monomorphize.wast b/test/lit/passes/monomorphize.wast
index 1cd219d08..1f0eb0f87 100644
--- a/test/lit/passes/monomorphize.wast
+++ b/test/lit/passes/monomorphize.wast
@@ -7,23 +7,23 @@
;; RUN: foreach %s %t wasm-opt --nominal --monomorphize -all -S -o - | filecheck %s --check-prefix CAREFUL
(module
- ;; ALWAYS: (type $A (struct_subtype data))
- ;; CAREFUL: (type $A (struct_subtype data))
+ ;; ALWAYS: (type $A (struct ))
+ ;; CAREFUL: (type $A (struct ))
(type $A (struct_subtype data))
;; ALWAYS: (type $B (struct_subtype $A))
;; CAREFUL: (type $B (struct_subtype $A))
(type $B (struct_subtype $A))
- ;; ALWAYS: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; ALWAYS: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $none_=>_none (func))
- ;; ALWAYS: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; ALWAYS: (type $ref|$B|_=>_none (func (param (ref $B))))
;; ALWAYS: (import "a" "b" (func $import (param (ref $A))))
- ;; CAREFUL: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CAREFUL: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; CAREFUL: (type $none_=>_none (func_subtype func))
+ ;; CAREFUL: (type $none_=>_none (func))
;; CAREFUL: (import "a" "b" (func $import (param (ref $A))))
(import "a" "b" (func $import (param (ref $A))))
@@ -124,10 +124,10 @@
;; As above, but now the refinable function uses the local in a way that
;; requires a fixup.
- ;; ALWAYS: (type $A (struct_subtype data))
- ;; CAREFUL: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $A (struct ))
+ ;; CAREFUL: (type $none_=>_none (func))
- ;; CAREFUL: (type $A (struct_subtype data))
+ ;; CAREFUL: (type $A (struct ))
(type $A (struct_subtype data))
;; ALWAYS: (type $B (struct_subtype $A))
;; CAREFUL: (type $B (struct_subtype $A))
@@ -135,18 +135,18 @@
- ;; ALWAYS: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $none_=>_none (func))
- ;; ALWAYS: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; ALWAYS: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; ALWAYS: (type $ref|$B|_=>_none (func (param (ref $B))))
;; ALWAYS: (func $calls (type $none_=>_none)
;; ALWAYS-NEXT: (call $refinable_0
;; ALWAYS-NEXT: (struct.new_default $B)
;; ALWAYS-NEXT: )
;; ALWAYS-NEXT: )
- ;; CAREFUL: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CAREFUL: (type $ref|$A|_=>_none (func (param (ref $A))))
;; CAREFUL: (func $calls (type $none_=>_none)
;; CAREFUL-NEXT: (call $refinable
@@ -204,28 +204,28 @@
(module
;; Multiple refinings of the same function, and of different functions.
- ;; ALWAYS: (type $A (struct_subtype data))
- ;; CAREFUL: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $A (struct ))
+ ;; CAREFUL: (type $none_=>_none (func))
- ;; CAREFUL: (type $A (struct_subtype data))
+ ;; CAREFUL: (type $A (struct ))
(type $A (struct_subtype data))
;; ALWAYS: (type $B (struct_subtype $A))
;; CAREFUL: (type $B (struct_subtype $A))
(type $B (struct_subtype $A))
- ;; ALWAYS: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $none_=>_none (func))
;; ALWAYS: (type $C (struct_subtype $B))
- ;; CAREFUL: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CAREFUL: (type $ref|$A|_=>_none (func (param (ref $A))))
;; CAREFUL: (type $C (struct_subtype $B))
(type $C (struct_subtype $B))
- ;; ALWAYS: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; ALWAYS: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; ALWAYS: (type $ref|$B|_=>_none (func (param (ref $B))))
- ;; ALWAYS: (type $ref|$C|_=>_none (func_subtype (param (ref $C)) func))
+ ;; ALWAYS: (type $ref|$C|_=>_none (func (param (ref $C))))
;; ALWAYS: (func $calls1 (type $none_=>_none)
;; ALWAYS-NEXT: (call $refinable1
@@ -327,28 +327,28 @@
;; A case where even CAREFUL mode will monomorphize, as it helps the target
;; function get optimized better.
- ;; ALWAYS: (type $A (struct_subtype data))
- ;; CAREFUL: (type $A (struct_subtype data))
+ ;; ALWAYS: (type $A (struct ))
+ ;; CAREFUL: (type $A (struct ))
(type $A (struct_subtype data))
;; ALWAYS: (type $B (struct_subtype $A))
;; CAREFUL: (type $B (struct_subtype $A))
(type $B (struct_subtype $A))
- ;; ALWAYS: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; ALWAYS: (type $ref|$B|_=>_none (func (param (ref $B))))
- ;; ALWAYS: (type $none_=>_none (func_subtype func))
+ ;; ALWAYS: (type $none_=>_none (func))
- ;; ALWAYS: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $ref|$A|_=>_none (func (param (ref $A))))
;; ALWAYS: (import "a" "b" (func $import (param (ref $B))))
;; ALWAYS: (global $global (mut i32) (i32.const 1))
- ;; CAREFUL: (type $ref|$B|_=>_none (func_subtype (param (ref $B)) func))
+ ;; CAREFUL: (type $ref|$B|_=>_none (func (param (ref $B))))
- ;; CAREFUL: (type $none_=>_none (func_subtype func))
+ ;; CAREFUL: (type $none_=>_none (func))
- ;; CAREFUL: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; CAREFUL: (type $ref|$A|_=>_none (func (param (ref $A))))
;; CAREFUL: (import "a" "b" (func $import (param (ref $B))))
@@ -558,12 +558,12 @@
(module
;; Test that we avoid recursive calls.
- ;; ALWAYS: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; ALWAYS: (type $A (struct_subtype data))
- ;; CAREFUL: (type $ref|$A|_=>_none (func_subtype (param (ref $A)) func))
+ ;; ALWAYS: (type $A (struct ))
+ ;; CAREFUL: (type $ref|$A|_=>_none (func (param (ref $A))))
- ;; CAREFUL: (type $A (struct_subtype data))
+ ;; CAREFUL: (type $A (struct ))
(type $A (struct_subtype data))
;; ALWAYS: (type $B (struct_subtype $A))
;; CAREFUL: (type $B (struct_subtype $A))
diff --git a/test/lit/passes/name-types.wast b/test/lit/passes/name-types.wast
index de3bb01e9..8f11e9efd 100644
--- a/test/lit/passes/name-types.wast
+++ b/test/lit/passes/name-types.wast
@@ -7,19 +7,19 @@
(type $obnoxious-super-long-type-name_____________________________1 (struct))
;; A reasonable name that will be kept.
- ;; CHECK: (type $type$0 (func (param (ref $type$1) (ref $reasonable-name))))
-
;; CHECK: (type $type$1 (struct ))
;; CHECK: (type $reasonable-name (struct (field i32)))
- ;; NOMNL: (type $type$0 (func_subtype (param (ref $type$1) (ref $reasonable-name)) func))
+ ;; NOMNL: (type $type$0 (func (param (ref $type$1) (ref $reasonable-name))))
- ;; NOMNL: (type $type$1 (struct_subtype data))
+ ;; NOMNL: (type $type$1 (struct ))
- ;; NOMNL: (type $reasonable-name (struct_subtype (field i32) data))
+ ;; NOMNL: (type $reasonable-name (struct (field i32)))
(type $reasonable-name (struct (field i32)))
- ;; CHECK: (func $foo (param $x (ref $type$1)) (param $y (ref $reasonable-name))
+ ;; CHECK: (type $type$0 (func (param (ref $type$1) (ref $reasonable-name))))
+
+ ;; CHECK: (func $foo (type $type$0) (param $x (ref $type$1)) (param $y (ref $reasonable-name))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $foo (type $type$0) (param $x (ref $type$1)) (param $y (ref $reasonable-name))
diff --git a/test/lit/passes/once-reduction.wast b/test/lit/passes/once-reduction.wast
index d5f6a95eb..9e99313e4 100644
--- a/test/lit/passes/once-reduction.wast
+++ b/test/lit/passes/once-reduction.wast
@@ -7,7 +7,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -25,7 +25,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -43,7 +43,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -65,7 +65,7 @@
(drop (i32.const 100))
)
- ;; CHECK: (func $caller-if-1
+ ;; CHECK: (func $caller-if-1 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (block
@@ -93,7 +93,7 @@
(call $once)
)
- ;; CHECK: (func $caller-if-2
+ ;; CHECK: (func $caller-if-2 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (call $once)
@@ -120,7 +120,7 @@
(call $once)
)
- ;; CHECK: (func $caller-loop-1
+ ;; CHECK: (func $caller-loop-1 (type $none_=>_none)
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -150,7 +150,7 @@
(call $once)
)
- ;; CHECK: (func $caller-loop-2
+ ;; CHECK: (func $caller-loop-2 (type $none_=>_none)
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -176,7 +176,7 @@
(call $once)
)
- ;; CHECK: (func $caller-single
+ ;; CHECK: (func $caller-single (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
(func $caller-single
@@ -184,7 +184,7 @@
(call $once)
)
- ;; CHECK: (func $caller-empty
+ ;; CHECK: (func $caller-empty (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $caller-empty
@@ -205,7 +205,7 @@
;; CHECK: (global $once (mut i32) (i32.const 42))
(global $once (mut i32) (i32.const 42))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -224,7 +224,7 @@
(call $foo)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -245,7 +245,7 @@
;; CHECK: (global $once (mut i32) (i32.const 42))
(global $once (mut i32) (i32.const 42))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
@@ -266,7 +266,7 @@
(call $foo)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -286,7 +286,7 @@
;; CHECK: (global $once (mut i32) (i32.const 42))
(global $once (mut i32) (i32.const 42))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -307,7 +307,7 @@
(call $foo)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -327,7 +327,7 @@
;; CHECK: (global $once (mut i32) (i32.const 42))
(global $once (mut i32) (i32.const 42))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -348,7 +348,7 @@
(call $foo)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -367,7 +367,7 @@
;; CHECK: (global $once2 (mut i32) (i32.const 0))
(global $once2 (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once1)
;; CHECK-NEXT: (return)
@@ -384,7 +384,7 @@
(global.set $once2 (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -401,7 +401,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -418,7 +418,7 @@
(global.set $once (i32.const 0))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -435,7 +435,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -452,7 +452,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (global.set $once
@@ -475,7 +475,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -492,7 +492,7 @@
(global.set $once (i32.const 42))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (nop)
@@ -503,7 +503,7 @@
(global.set $once (i32.const 1337))
)
- ;; CHECK: (func $caller-2
+ ;; CHECK: (func $caller-2 (type $none_=>_none)
;; CHECK-NEXT: (global.set $once
;; CHECK-NEXT: (i32.const 1337)
;; CHECK-NEXT: )
@@ -526,7 +526,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -553,7 +553,7 @@
;; CHECK: (global $once (mut f64) (f64.const 0))
(global $once (mut f64) (f64.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.trunc_f64_s
;; CHECK-NEXT: (global.get $once)
@@ -575,7 +575,7 @@
(global.set $once (f64.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -598,7 +598,7 @@
;; CHECK: (global $once (mut i32) (global.get $import))
(global $once (mut i32) (global.get $import))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -615,7 +615,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -632,7 +632,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -653,7 +653,7 @@
(global.set $once (i32.eqz (i32.eqz (i32.const 1))))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -672,7 +672,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once (param $x i32)
+ ;; CHECK: (func $once (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -689,7 +689,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -712,7 +712,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once (result i32)
+ ;; CHECK: (func $once (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return
@@ -733,7 +733,7 @@
(i32.const 3)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -754,7 +754,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
@@ -775,7 +775,7 @@
)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -792,7 +792,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -805,7 +805,7 @@
)
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -822,7 +822,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -839,7 +839,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (drop
@@ -860,7 +860,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -881,7 +881,7 @@
(drop (global.get $once))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -899,7 +899,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -916,7 +916,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (unreachable)
@@ -939,7 +939,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -956,7 +956,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (call $once)
@@ -1080,7 +1080,7 @@
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -1097,7 +1097,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $try-catch
+ ;; CHECK: (func $try-catch (type $none_=>_none)
;; CHECK-NEXT: (try $label$5
;; CHECK-NEXT: (do
;; CHECK-NEXT: (if
@@ -1144,7 +1144,7 @@
;; CHECK: (global $many2 (mut i32) (i32.const 0))
(global $many2 (mut i32) (i32.const 0))
- ;; CHECK: (func $once1
+ ;; CHECK: (func $once1 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once1)
;; CHECK-NEXT: (return)
@@ -1177,7 +1177,7 @@
(call $many2)
)
- ;; CHECK: (func $many1
+ ;; CHECK: (func $many1 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $many1)
;; CHECK-NEXT: (return)
@@ -1210,7 +1210,7 @@
(call $once2)
)
- ;; CHECK: (func $once2
+ ;; CHECK: (func $once2 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once2)
;; CHECK-NEXT: (return)
@@ -1243,7 +1243,7 @@
(call $many1)
)
- ;; CHECK: (func $many2
+ ;; CHECK: (func $many2 (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $many2)
;; CHECK-NEXT: (return)
@@ -1286,7 +1286,7 @@
;; CHECK: (global $once (mut i32) (i32.const 0))
(global $once (mut i32) (i32.const 0))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -1303,7 +1303,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $A
+ ;; CHECK: (func $A (type $none_=>_none)
;; CHECK-NEXT: (call $B)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -1314,21 +1314,21 @@
(call $once)
)
- ;; CHECK: (func $B
+ ;; CHECK: (func $B (type $none_=>_none)
;; CHECK-NEXT: (call $C)
;; CHECK-NEXT: )
(func $B
(call $C)
)
- ;; CHECK: (func $C
+ ;; CHECK: (func $C (type $none_=>_none)
;; CHECK-NEXT: (call $D)
;; CHECK-NEXT: )
(func $C
(call $D)
)
- ;; CHECK: (func $D
+ ;; CHECK: (func $D (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -1337,7 +1337,7 @@
(call $once)
)
- ;; CHECK: (func $bad-A
+ ;; CHECK: (func $bad-A (type $none_=>_none)
;; CHECK-NEXT: (call $bad-B)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -1348,7 +1348,7 @@
(call $once)
)
- ;; CHECK: (func $bad-B
+ ;; CHECK: (func $bad-B (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $bad-B
@@ -1363,7 +1363,7 @@
;; CHECK: (import "env" "glob" (global $once (mut i32)))
(import "env" "glob" (global $once (mut i32)))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -1380,7 +1380,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
@@ -1401,7 +1401,7 @@
;; CHECK: (export "once-global" (global $once))
(export "once-global" (global $once))
- ;; CHECK: (func $once
+ ;; CHECK: (func $once (type $none_=>_none)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (global.get $once)
;; CHECK-NEXT: (return)
@@ -1418,7 +1418,7 @@
(global.set $once (i32.const 1))
)
- ;; CHECK: (func $caller
+ ;; CHECK: (func $caller (type $none_=>_none)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: (call $once)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/opt_flatten.wast b/test/lit/passes/opt_flatten.wast
index 0e7ab9a41..cc8fd6028 100644
--- a/test/lit/passes/opt_flatten.wast
+++ b/test/lit/passes/opt_flatten.wast
@@ -7,7 +7,7 @@
(module
;; CHECK: (export "foo" (func $foo))
(export "foo" (func $foo))
- ;; CHECK: (func $foo (result funcref)
+ ;; CHECK: (func $foo (type $none_=>_funcref) (result funcref)
;; CHECK-NEXT: (local $0 funcref)
;; CHECK-NEXT: (local $1 (ref $none_=>_funcref))
;; CHECK-NEXT: (local $2 (ref $none_=>_funcref))
diff --git a/test/lit/passes/optimize-added-constants-memory64.wast b/test/lit/passes/optimize-added-constants-memory64.wast
index e44bc414b..3fbee69f4 100644
--- a/test/lit/passes/optimize-added-constants-memory64.wast
+++ b/test/lit/passes/optimize-added-constants-memory64.wast
@@ -7,7 +7,7 @@
(memory $0 i64 1 4294967296)
- ;; CHECK: (func $load_i64 (result i64)
+ ;; CHECK: (func $load_i64 (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (i64.load
;; CHECK-NEXT: (i64.const 579)
;; CHECK-NEXT: )
@@ -18,7 +18,7 @@
)
)
- ;; CHECK: (func $load_overflow_i64 (result i64)
+ ;; CHECK: (func $load_overflow_i64 (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (i64.load offset=32
;; CHECK-NEXT: (i64.const -16)
;; CHECK-NEXT: )
@@ -29,7 +29,7 @@
)
)
- ;; CHECK: (func $store
+ ;; CHECK: (func $store (type $none_=>_none)
;; CHECK-NEXT: (i64.store
;; CHECK-NEXT: (i64.const 579)
;; CHECK-NEXT: (i64.const 123)
@@ -42,7 +42,7 @@
)
)
- ;; CHECK: (func $store_overflow
+ ;; CHECK: (func $store_overflow (type $none_=>_none)
;; CHECK-NEXT: (i64.store offset=32
;; CHECK-NEXT: (i64.const -16)
;; CHECK-NEXT: (i64.const 123)
diff --git a/test/lit/passes/optimize-casts.wast b/test/lit/passes/optimize-casts.wast
index 449416e42..285060dac 100644
--- a/test/lit/passes/optimize-casts.wast
+++ b/test/lit/passes/optimize-casts.wast
@@ -3,7 +3,7 @@
;; RUN: | filecheck %s
(module
- ;; CHECK: (type $A (struct_subtype data))
+ ;; CHECK: (type $A (struct ))
(type $A (struct_subtype data))
;; CHECK: (type $B (struct_subtype $A))
diff --git a/test/lit/passes/optimize-for-js.wast b/test/lit/passes/optimize-for-js.wast
index c771f77a7..e35cb6a05 100644
--- a/test/lit/passes/optimize-for-js.wast
+++ b/test/lit/passes/optimize-for-js.wast
@@ -3,7 +3,7 @@
;; RUN: | filecheck %s
(module
- ;; CHECK: (func $is-power-of-2_32 (param $x i32) (result i32)
+ ;; CHECK: (func $is-power-of-2_32 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.eqz
@@ -27,7 +27,7 @@
(i32.const 1)
)
)
- ;; CHECK: (func $is-power-of-2_expr_32 (param $x i64) (result i32)
+ ;; CHECK: (func $is-power-of-2_expr_32 (type $i64_=>_i32) (param $x i64) (result i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (i32.eqz
@@ -56,7 +56,7 @@
(i32.const 1)
)
)
- ;; CHECK: (func $is-power-of-2_64 (param $x i64) (result i32)
+ ;; CHECK: (func $is-power-of-2_64 (type $i64_=>_i32) (param $x i64) (result i32)
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i64.eqz
diff --git a/test/lit/passes/optimize-instructions-call_ref-roundtrip.wast b/test/lit/passes/optimize-instructions-call_ref-roundtrip.wast
index e59c09307..de4d0da6f 100644
--- a/test/lit/passes/optimize-instructions-call_ref-roundtrip.wast
+++ b/test/lit/passes/optimize-instructions-call_ref-roundtrip.wast
@@ -10,16 +10,16 @@
;; distinct nominally. The three tables will use different ones, and the
;; emitted call_indirects should use the corresponding ones.
- ;; CHECK: (type $v1 (func_subtype func))
+ ;; CHECK: (type $v1 (func))
(type $v1 (func))
- ;; CHECK: (type $v2 (func_subtype func))
+ ;; CHECK: (type $v2 (func))
(type $v2 (func))
- ;; CHECK: (type $v3 (func_subtype func))
+ ;; CHECK: (type $v3 (func))
(type $v3 (func))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
;; CHECK: (table $table-1 10 (ref null $v1))
(table $table-1 10 (ref null $v1))
diff --git a/test/lit/passes/optimize-instructions-call_ref.wast b/test/lit/passes/optimize-instructions-call_ref.wast
index 66e0ee7d8..51d5cf020 100644
--- a/test/lit/passes/optimize-instructions-call_ref.wast
+++ b/test/lit/passes/optimize-instructions-call_ref.wast
@@ -29,21 +29,21 @@
;; CHECK: (elem declare func $bar $fallthrough-no-params $fallthrough-non-nullable $return-nothing)
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $foo (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $bar (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $bar (type $i32_i32_=>_none) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $bar (param i32) (param i32)
(unreachable)
)
- ;; CHECK: (func $call_ref-to-direct (param $x i32) (param $y i32)
+ ;; CHECK: (func $call_ref-to-direct (type $i32_i32_=>_none) (param $x i32) (param $y i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
@@ -58,7 +58,7 @@
)
)
- ;; CHECK: (func $fallthrough (param $x i32)
+ ;; CHECK: (func $fallthrough (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (call $foo
;; CHECK-NEXT: (local.tee $x
@@ -104,7 +104,7 @@
)
)
- ;; CHECK: (func $fallthrough-no-params (result i32)
+ ;; CHECK: (func $fallthrough-no-params (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref $none_=>_i32))
;; CHECK-NEXT: (nop)
@@ -124,7 +124,7 @@
)
)
- ;; CHECK: (func $fallthrough-non-nullable (param $x (ref data))
+ ;; CHECK: (func $fallthrough-non-nullable (type $data_=>_none) (param $x (ref data))
;; CHECK-NEXT: (local $1 dataref)
;; CHECK-NEXT: (call $fallthrough-non-nullable
;; CHECK-NEXT: (block (result (ref data))
@@ -157,7 +157,7 @@
)
)
- ;; CHECK: (func $fallthrough-bad-type (result i32)
+ ;; CHECK: (func $fallthrough-bad-type (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (call_ref $none_=>_i32
;; CHECK-NEXT: (block (result (ref $none_=>_i32))
;; CHECK-NEXT: (drop
@@ -182,12 +182,12 @@
)
;; Helper function for the above test.
- ;; CHECK: (func $return-nothing
+ ;; CHECK: (func $return-nothing (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $return-nothing)
- ;; CHECK: (func $fallthrough-unreachable
+ ;; CHECK: (func $fallthrough-unreachable (type $none_=>_none)
;; CHECK-NEXT: (call_ref $i32_i32_=>_none
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: (unreachable)
@@ -209,7 +209,7 @@
)
)
- ;; CHECK: (func $ignore-unreachable
+ ;; CHECK: (func $ignore-unreachable (type $none_=>_none)
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (unreachable)
@@ -224,7 +224,7 @@
)
)
- ;; CHECK: (func $call-table-get (param $x i32)
+ ;; CHECK: (func $call-table-get (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (call_indirect $table-1 (type $i32_i32_=>_none)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (i32.const 2)
@@ -241,7 +241,7 @@
)
)
- ;; CHECK: (func $call_ref-to-select (param $x i32) (param $y i32) (param $z i32) (param $f (ref $i32_i32_=>_none))
+ ;; CHECK: (func $call_ref-to-select (type $i32_i32_i32_ref|$i32_i32_=>_none|_=>_none) (param $x i32) (param $y i32) (param $z i32) (param $f (ref $i32_i32_=>_none))
;; CHECK-NEXT: (local $4 i32)
;; CHECK-NEXT: (local $5 i32)
;; CHECK-NEXT: (block
@@ -297,7 +297,7 @@
)
)
- ;; CHECK: (func $return_call_ref-to-select (param $x i32) (param $y i32)
+ ;; CHECK: (func $return_call_ref-to-select (type $i32_i32_=>_none) (param $x i32) (param $y i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local.set $2
@@ -332,7 +332,7 @@
)
)
- ;; CHECK: (func $get-i32 (result i32)
+ ;; CHECK: (func $get-i32 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
(func $get-i32 (result i32)
diff --git a/test/lit/passes/optimize-instructions-eh.wast b/test/lit/passes/optimize-instructions-eh.wast
index 7fd871c15..afed1accc 100644
--- a/test/lit/passes/optimize-instructions-eh.wast
+++ b/test/lit/passes/optimize-instructions-eh.wast
@@ -5,7 +5,7 @@
(module
;; CHECK: (tag $e (param i32))
- ;; CHECK: (func $dummy
+ ;; CHECK: (func $dummy (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $dummy)
@@ -23,7 +23,7 @@
;; is guaranteed to contain a value equal to or less than 7.
- ;; CHECK: (func $getFallthrough-try-no-throw
+ ;; CHECK: (func $getFallthrough-try-no-throw (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (try (result i32)
@@ -57,7 +57,7 @@
(drop (i32.and (local.get $x) (i32.const 7)))
)
- ;; CHECK: (func $getFallthrough-try-may-throw
+ ;; CHECK: (func $getFallthrough-try-may-throw (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (try (result i32)
@@ -95,7 +95,7 @@
(drop (i32.and (local.get $x) (i32.const 7)))
)
- ;; CHECK: (func $getFallthrough-nested-try-0
+ ;; CHECK: (func $getFallthrough-nested-try-0 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (try (result i32)
@@ -154,7 +154,7 @@
(drop (i32.and (local.get $x) (i32.const 7)))
)
- ;; CHECK: (func $getFallthrough-nested-try-1
+ ;; CHECK: (func $getFallthrough-nested-try-1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (try (result i32)
@@ -202,7 +202,7 @@
(drop (i32.and (local.get $x) (i32.const 7)))
)
- ;; CHECK: (func $getFallthrough-nested-try-2
+ ;; CHECK: (func $getFallthrough-nested-try-2 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (try (result i32)
diff --git a/test/lit/passes/optimize-instructions-gc-extern.wast b/test/lit/passes/optimize-instructions-gc-extern.wast
index 18c91f1bb..007be6efa 100644
--- a/test/lit/passes/optimize-instructions-gc-extern.wast
+++ b/test/lit/passes/optimize-instructions-gc-extern.wast
@@ -3,7 +3,7 @@
;; RUN: | filecheck %s
(module
- ;; CHECK: (func $extern.externalize (param $x anyref) (param $y externref)
+ ;; CHECK: (func $extern.externalize (type $anyref_externref_=>_none) (param $x anyref) (param $y externref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (extern.externalize
;; CHECK-NEXT: (local.get $x)
diff --git a/test/lit/passes/optimize-instructions-gc-heap.wast b/test/lit/passes/optimize-instructions-gc-heap.wast
index e448e57fd..6149719dd 100644
--- a/test/lit/passes/optimize-instructions-gc-heap.wast
+++ b/test/lit/passes/optimize-instructions-gc-heap.wast
@@ -15,7 +15,7 @@
;; CHECK: (type $struct3 (struct (field (mut i32)) (field (mut i32)) (field (mut i32))))
(type $struct3 (struct (field (mut i32)) (field (mut i32)) (field (mut i32))))
- ;; CHECK: (func $tee
+ ;; CHECK: (func $tee (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -36,7 +36,7 @@
)
)
- ;; CHECK: (func $side-effects-in-old-value
+ ;; CHECK: (func $side-effects-in-old-value (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -64,7 +64,7 @@
)
)
- ;; CHECK: (func $side-effects-in-new-value
+ ;; CHECK: (func $side-effects-in-new-value (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -87,7 +87,7 @@
)
)
- ;; CHECK: (func $many-fields
+ ;; CHECK: (func $many-fields (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct2))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct2
@@ -126,7 +126,7 @@
)
)
- ;; CHECK: (func $side-effect-conflict
+ ;; CHECK: (func $side-effect-conflict (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct2))
;; CHECK-NEXT: (struct.set $struct2 0
;; CHECK-NEXT: (local.tee $ref
@@ -157,7 +157,7 @@
)
)
- ;; CHECK: (func $side-effect-ok
+ ;; CHECK: (func $side-effect-ok (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct2))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct2
@@ -189,7 +189,7 @@
)
)
- ;; CHECK: (func $optimize-subsequent
+ ;; CHECK: (func $optimize-subsequent (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -212,7 +212,7 @@
)
)
- ;; CHECK: (func $optimize-subsequent-bad-local
+ ;; CHECK: (func $optimize-subsequent-bad-local (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local $other (ref null $struct))
;; CHECK-NEXT: (local.set $ref
@@ -241,7 +241,7 @@
)
)
- ;; CHECK: (func $optimize-chain
+ ;; CHECK: (func $optimize-chain (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -269,7 +269,7 @@
)
)
- ;; CHECK: (func $pattern-breaker
+ ;; CHECK: (func $pattern-breaker (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -297,7 +297,7 @@
)
)
- ;; CHECK: (func $ref-local-write
+ ;; CHECK: (func $ref-local-write (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -333,7 +333,7 @@
)
)
- ;; CHECK: (func $ref-local-write-tee
+ ;; CHECK: (func $ref-local-write-tee (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (struct.set $struct 0
;; CHECK-NEXT: (local.tee $ref
@@ -367,7 +367,7 @@
)
)
- ;; CHECK: (func $other-local-write
+ ;; CHECK: (func $other-local-write (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local $other (ref null $struct))
;; CHECK-NEXT: (local.set $ref
@@ -402,7 +402,7 @@
)
)
- ;; CHECK: (func $ref-local-read
+ ;; CHECK: (func $ref-local-read (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct
@@ -438,7 +438,7 @@
)
)
- ;; CHECK: (func $ref-local-read-tee
+ ;; CHECK: (func $ref-local-read-tee (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (struct.set $struct 0
;; CHECK-NEXT: (local.tee $ref
@@ -472,7 +472,7 @@
)
)
- ;; CHECK: (func $ref-other-read
+ ;; CHECK: (func $ref-other-read (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local $other (ref null $struct))
;; CHECK-NEXT: (local.set $ref
@@ -507,7 +507,7 @@
)
)
- ;; CHECK: (func $tee-and-subsequent
+ ;; CHECK: (func $tee-and-subsequent (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct3))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct3
@@ -543,7 +543,7 @@
)
)
- ;; CHECK: (func $side-effect-subsequent-ok
+ ;; CHECK: (func $side-effect-subsequent-ok (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct2))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new $struct2
@@ -573,7 +573,7 @@
)
)
- ;; CHECK: (func $default
+ ;; CHECK: (func $default (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (struct.set $struct 0
;; CHECK-NEXT: (local.tee $ref
@@ -594,7 +594,7 @@
)
)
- ;; CHECK: (func $many-news
+ ;; CHECK: (func $many-news (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct3))
;; CHECK-NEXT: (local $ref2 (ref null $struct3))
;; CHECK-NEXT: (local.set $ref
@@ -710,7 +710,7 @@
)
)
- ;; CHECK: (func $unreachable
+ ;; CHECK: (func $unreachable (type $none_=>_none)
;; CHECK-NEXT: (local $ref (ref null $struct))
;; CHECK-NEXT: (local.tee $ref
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
@@ -760,7 +760,7 @@
)
)
- ;; CHECK: (func $helper-i32 (param $x i32) (result i32)
+ ;; CHECK: (func $helper-i32 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
(func $helper-i32 (param $x i32) (result i32)
diff --git a/test/lit/passes/optimize-instructions-gc-iit.wast b/test/lit/passes/optimize-instructions-gc-iit.wast
index 24c5c6809..ce93b5d04 100644
--- a/test/lit/passes/optimize-instructions-gc-iit.wast
+++ b/test/lit/passes/optimize-instructions-gc-iit.wast
@@ -9,19 +9,19 @@
(module
;; CHECK: (type $parent (struct (field i32)))
- ;; NOMNL: (type $parent (struct_subtype (field i32) data))
- ;; NOMNL-TNH: (type $parent (struct_subtype (field i32) data))
+ ;; NOMNL: (type $parent (struct (field i32)))
+ ;; NOMNL-TNH: (type $parent (struct (field i32)))
(type $parent (struct (field i32)))
- ;; CHECK: (type $child (struct (field i32) (field f64)))
+ ;; CHECK: (type $child (struct_subtype (field i32) (field f64) $parent))
;; NOMNL: (type $child (struct_subtype (field i32) (field f64) $parent))
;; NOMNL-TNH: (type $child (struct_subtype (field i32) (field f64) $parent))
(type $child (struct_subtype (field i32) (field f64) $parent))
;; CHECK: (type $other (struct (field i64) (field f32)))
- ;; NOMNL: (type $other (struct_subtype (field i64) (field f32) data))
- ;; NOMNL-TNH: (type $other (struct_subtype (field i64) (field f32) data))
+ ;; NOMNL: (type $other (struct (field i64) (field f32)))
+ ;; NOMNL-TNH: (type $other (struct (field i64) (field f32)))
(type $other (struct (field i64) (field f32)))
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $foo (type $none_=>_none)
@@ -33,7 +33,7 @@
(func $foo)
- ;; CHECK: (func $ref-cast-iit (param $parent (ref $parent)) (param $child (ref $child)) (param $other (ref $other))
+ ;; CHECK: (func $ref-cast-iit (type $ref|$parent|_ref|$child|_ref|$other|_=>_none) (param $parent (ref $parent)) (param $child (ref $child)) (param $other (ref $other))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $parent)
;; CHECK-NEXT: )
@@ -130,7 +130,7 @@
)
)
- ;; CHECK: (func $ref-cast-iit-bad (param $parent (ref $parent))
+ ;; CHECK: (func $ref-cast-iit-bad (type $ref|$parent|_=>_none) (param $parent (ref $parent))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref $parent))
;; CHECK-NEXT: (call $foo)
@@ -190,7 +190,7 @@
)
)
- ;; CHECK: (func $ref-eq-ref-cast (param $x eqref)
+ ;; CHECK: (func $ref-eq-ref-cast (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -217,7 +217,7 @@
)
)
- ;; CHECK: (func $set-of-as-non-null (param $x anyref)
+ ;; CHECK: (func $set-of-as-non-null (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
@@ -243,24 +243,28 @@
)
(module
- ;; CHECK: (type $B (struct (field (ref null $A))))
-
- ;; CHECK: (type $A (struct ))
- ;; NOMNL: (type $A (struct_subtype data))
- ;; NOMNL-TNH: (type $A (struct_subtype data))
- (type $A (struct_subtype data))
- ;; NOMNL: (type $B (struct_subtype (field (ref null $A)) $A))
- ;; NOMNL-TNH: (type $B (struct_subtype (field (ref null $A)) $A))
- (type $B (struct_subtype (field (ref null $A)) $A))
- ;; NOMNL: (type $C (struct_subtype (field (ref null $D)) $B))
- ;; NOMNL-TNH: (type $C (struct_subtype (field (ref null $D)) $B))
- (type $C (struct_subtype (field (ref null $D)) $B))
- ;; NOMNL: (type $D (struct_subtype $A))
- ;; NOMNL-TNH: (type $D (struct_subtype $A))
- (type $D (struct_subtype $A))
+ (rec
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $A (struct ))
+ ;; NOMNL: (type $A (struct ))
+ ;; NOMNL-TNH: (type $A (struct ))
+ (type $A (struct_subtype data))
+ ;; CHECK: (type $B (struct_subtype (field (ref null $A)) $A))
+ ;; NOMNL: (type $B (struct_subtype (field (ref null $A)) $A))
+ ;; NOMNL-TNH: (type $B (struct_subtype (field (ref null $A)) $A))
+ (type $B (struct_subtype (field (ref null $A)) $A))
+ ;; CHECK: (type $C (struct_subtype (field (ref null $D)) $B))
+ ;; NOMNL: (type $C (struct_subtype (field (ref null $D)) $B))
+ ;; NOMNL-TNH: (type $C (struct_subtype (field (ref null $D)) $B))
+ (type $C (struct_subtype (field (ref null $D)) $B))
+ ;; CHECK: (type $D (struct_subtype $A))
+ ;; NOMNL: (type $D (struct_subtype $A))
+ ;; NOMNL-TNH: (type $D (struct_subtype $A))
+ (type $D (struct_subtype $A))
+ )
- ;; CHECK: (func $test (param $C (ref $B)) (result anyref)
- ;; CHECK-NEXT: (struct.get $B 0
+ ;; CHECK: (func $test (type $ref|$C|_=>_anyref) (param $C (ref $C)) (result anyref)
+ ;; CHECK-NEXT: (struct.get $C 0
;; CHECK-NEXT: (local.get $C)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
diff --git a/test/lit/passes/optimize-instructions-gc-tnh-nn.wast b/test/lit/passes/optimize-instructions-gc-tnh-nn.wast
index e0a580ae1..aa696f819 100644
--- a/test/lit/passes/optimize-instructions-gc-tnh-nn.wast
+++ b/test/lit/passes/optimize-instructions-gc-tnh-nn.wast
@@ -3,7 +3,7 @@
;; RUN: | filecheck %s
(module
- ;; CHECK: (func $set-of-as-non-null
+ ;; CHECK: (func $set-of-as-non-null (type $none_=>_none)
;; CHECK-NEXT: (local $x anyref)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.as_non_null
diff --git a/test/lit/passes/optimize-instructions-gc-tnh.wast b/test/lit/passes/optimize-instructions-gc-tnh.wast
index d8fe7a677..1e38ec8c7 100644
--- a/test/lit/passes/optimize-instructions-gc-tnh.wast
+++ b/test/lit/passes/optimize-instructions-gc-tnh.wast
@@ -3,8 +3,8 @@
;; RUN: wasm-opt %s --optimize-instructions -all --nominal -S -o - | filecheck %s --check-prefix NO_TNH
(module
- ;; TNH: (type $struct (struct_subtype data))
- ;; NO_TNH: (type $struct (struct_subtype data))
+ ;; TNH: (type $struct (struct ))
+ ;; NO_TNH: (type $struct (struct ))
(type $struct (struct_subtype data))
;; TNH: (func $ref.eq (type $eqref_eqref_=>_i32) (param $a eqref) (param $b eqref) (result i32)
diff --git a/test/lit/passes/optimize-instructions-gc.wast b/test/lit/passes/optimize-instructions-gc.wast
index fb50d103f..79c03227c 100644
--- a/test/lit/passes/optimize-instructions-gc.wast
+++ b/test/lit/passes/optimize-instructions-gc.wast
@@ -6,7 +6,7 @@
(module
;; CHECK: (type $struct (struct (field $i8 (mut i8)) (field $i16 (mut i16)) (field $i32 (mut i32)) (field $i64 (mut i64))))
- ;; NOMNL: (type $struct (struct_subtype (field $i8 (mut i8)) (field $i16 (mut i16)) (field $i32 (mut i32)) (field $i64 (mut i64)) data))
+ ;; NOMNL: (type $struct (struct (field $i8 (mut i8)) (field $i16 (mut i16)) (field $i32 (mut i32)) (field $i64 (mut i64))))
(type $struct (struct
(field $i8 (mut i8))
(field $i16 (mut i16))
@@ -14,35 +14,36 @@
(field $i64 (mut i64))
))
- ;; CHECK: (type $B (struct (field i32) (field i32) (field f32)))
-
- ;; CHECK: (type $array (array (mut i8)))
-
;; CHECK: (type $A (struct (field i32)))
- ;; NOMNL: (type $A (struct_subtype (field i32) data))
+ ;; NOMNL: (type $A (struct (field i32)))
(type $A (struct (field i32)))
+ ;; CHECK: (type $B (struct_subtype (field i32) (field i32) (field f32) $A))
+
+ ;; CHECK: (type $array (array (mut i8)))
;; NOMNL: (type $B (struct_subtype (field i32) (field i32) (field f32) $A))
- ;; NOMNL: (type $array (array_subtype (mut i8) data))
+ ;; NOMNL: (type $array (array (mut i8)))
(type $array (array (mut i8)))
(type $B (struct_subtype (field i32) (field i32) (field f32) $A))
- ;; CHECK: (type $B-child (struct (field i32) (field i32) (field f32) (field i64)))
+ ;; CHECK: (type $B-child (struct_subtype (field i32) (field i32) (field f32) (field i64) $B))
;; NOMNL: (type $B-child (struct_subtype (field i32) (field i32) (field f32) (field i64) $B))
(type $B-child (struct_subtype (field i32) (field i32) (field f32) (field i64) $B))
- ;; NOMNL: (type $void (func_subtype func))
+ ;; CHECK: (type $void (func))
+
+ ;; CHECK: (type $C (struct_subtype (field i32) (field i32) (field f64) $A))
+
+ ;; CHECK: (type $empty (struct ))
+ ;; NOMNL: (type $void (func))
;; NOMNL: (type $C (struct_subtype (field i32) (field i32) (field f64) $A))
- ;; NOMNL: (type $empty (struct_subtype data))
+ ;; NOMNL: (type $empty (struct ))
(type $empty (struct))
- ;; CHECK: (type $void (func))
-
- ;; CHECK: (type $C (struct (field i32) (field i32) (field f64)))
(type $C (struct_subtype (field i32) (field i32) (field f64) $A))
(type $void (func))
@@ -53,7 +54,7 @@
;; These functions test if an `if` with subtyped arms is correctly folded
;; 1. if its `ifTrue` and `ifFalse` arms are identical (can fold)
- ;; CHECK: (func $if-arms-subtype-fold (result anyref)
+ ;; CHECK: (func $if-arms-subtype-fold (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: )
;; NOMNL: (func $if-arms-subtype-fold (type $none_=>_anyref) (result anyref)
@@ -67,7 +68,7 @@
)
)
;; 2. if its `ifTrue` and `ifFalse` arms are not identical (cannot fold)
- ;; CHECK: (func $if-arms-subtype-nofold (param $i31ref i31ref) (result anyref)
+ ;; CHECK: (func $if-arms-subtype-nofold (type $i31ref_=>_anyref) (param $i31ref i31ref) (result anyref)
;; CHECK-NEXT: (if (result anyref)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (ref.null none)
@@ -90,7 +91,7 @@
)
;; Stored values automatically truncate unneeded bytes.
- ;; CHECK: (func $store-trunc (param $x (ref null $struct))
+ ;; CHECK: (func $store-trunc (type $ref?|$struct|_=>_none) (param $x (ref null $struct))
;; CHECK-NEXT: (struct.set $struct $i8
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (i32.const 35)
@@ -137,7 +138,7 @@
)
;; Similar, but for arrays.
- ;; CHECK: (func $store-trunc2 (param $x (ref null $array))
+ ;; CHECK: (func $store-trunc2 (type $ref?|$array|_=>_none) (param $x (ref null $array))
;; CHECK-NEXT: (array.set $array
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (i32.const 0)
@@ -161,7 +162,7 @@
;; ref.is_null is not needed on a non-nullable value, and if something is
;; a func we don't need that either etc. if we know the result
- ;; CHECK: (func $unneeded_is (param $struct (ref $struct)) (param $func (ref func)) (param $data (ref data)) (param $i31 (ref i31))
+ ;; CHECK: (func $unneeded_is (type $ref|$struct|_ref|func|_ref|data|_ref|i31|_=>_none) (param $struct (ref $struct)) (param $func (ref func)) (param $data (ref data)) (param $i31 (ref i31))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -250,7 +251,7 @@
;; similar to $unneeded_is, but the values are nullable. we can at least
;; leave just the null check.
- ;; CHECK: (func $unneeded_is_null (param $struct (ref null $struct)) (param $func funcref) (param $data dataref) (param $i31 i31ref)
+ ;; CHECK: (func $unneeded_is_null (type $ref?|$struct|_funcref_dataref_i31ref_=>_none) (param $struct (ref null $struct)) (param $func funcref) (param $data dataref) (param $i31 i31ref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $struct)
@@ -327,7 +328,7 @@
;; similar to $unneeded_is, but the values are of mixed kind (is_func of
;; data, etc.). regardless of nullability the result here is always 0.
- ;; CHECK: (func $unneeded_is_bad_kinds (param $func funcref) (param $data dataref) (param $i31 i31ref)
+ ;; CHECK: (func $unneeded_is_bad_kinds (type $funcref_dataref_i31ref_=>_none) (param $func funcref) (param $data dataref) (param $i31 i31ref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -466,7 +467,7 @@
;; ref.as_non_null is not needed on a non-nullable value, and if something is
;; a func we don't need that either etc., and can just return the value.
- ;; CHECK: (func $unneeded_as (param $struct (ref $struct)) (param $func (ref func)) (param $data (ref data)) (param $i31 (ref i31))
+ ;; CHECK: (func $unneeded_as (type $ref|$struct|_ref|func|_ref|data|_ref|i31|_=>_none) (param $struct (ref $struct)) (param $func (ref func)) (param $data (ref data)) (param $i31 (ref i31))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $struct)
;; CHECK-NEXT: )
@@ -515,7 +516,7 @@
;; similar to $unneeded_as, but the values are nullable. we can turn the
;; more specific things into ref.as_non_null.
- ;; CHECK: (func $unneeded_as_null (param $struct (ref null $struct)) (param $func funcref) (param $data dataref) (param $i31 i31ref)
+ ;; CHECK: (func $unneeded_as_null (type $ref?|$struct|_funcref_dataref_i31ref_=>_none) (param $struct (ref null $struct)) (param $func funcref) (param $data dataref) (param $i31 i31ref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (local.get $struct)
@@ -580,7 +581,7 @@
;; similar to $unneeded_as, but the values are of mixed kind (as_func of
;; data, etc.), so we know we will trap
- ;; CHECK: (func $unneeded_as_bad_kinds (param $func funcref) (param $data dataref) (param $i31 i31ref)
+ ;; CHECK: (func $unneeded_as_bad_kinds (type $funcref_dataref_i31ref_=>_none) (param $func funcref) (param $data dataref) (param $i31 i31ref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref func))
;; CHECK-NEXT: (drop
@@ -705,7 +706,7 @@
)
)
- ;; CHECK: (func $unneeded_unreachability
+ ;; CHECK: (func $unneeded_unreachability (type $void)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.is_func
;; CHECK-NEXT: (unreachable)
@@ -739,7 +740,7 @@
)
)
- ;; CHECK: (func $redundant-non-null-casts (param $x (ref null $struct)) (param $y (ref null $array)) (param $f (ref null $void))
+ ;; CHECK: (func $redundant-non-null-casts (type $ref?|$struct|_ref?|$array|_ref?|$void|_=>_none) (param $x (ref null $struct)) (param $y (ref null $array)) (param $f (ref null $void))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (local.get $x)
@@ -861,7 +862,7 @@
)
)
- ;; CHECK: (func $get-eqref (result eqref)
+ ;; CHECK: (func $get-eqref (type $none_=>_eqref) (result eqref)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $get-eqref (type $none_=>_eqref) (result eqref)
@@ -871,7 +872,7 @@
(unreachable)
)
- ;; CHECK: (func $ref-eq (param $x eqref) (param $y eqref)
+ ;; CHECK: (func $ref-eq (type $eqref_eqref_=>_none) (param $x eqref) (param $y eqref)
;; CHECK-NEXT: (local $lx eqref)
;; CHECK-NEXT: (local $ly eqref)
;; CHECK-NEXT: (drop
@@ -962,7 +963,7 @@
)
)
- ;; CHECK: (func $nothing
+ ;; CHECK: (func $nothing (type $void)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $nothing (type $void)
@@ -971,7 +972,7 @@
(func $nothing)
- ;; CHECK: (func $ref-eq-corner-cases (param $x eqref)
+ ;; CHECK: (func $ref-eq-corner-cases (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.eq
;; CHECK-NEXT: (block (result eqref)
@@ -1091,7 +1092,7 @@
)
)
- ;; CHECK: (func $ref-eq-ref-cast (param $x eqref)
+ ;; CHECK: (func $ref-eq-ref-cast (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.eq
;; CHECK-NEXT: (local.get $x)
@@ -1124,7 +1125,7 @@
)
)
- ;; CHECK: (func $flip-cast-of-as-non-null (param $x anyref)
+ ;; CHECK: (func $flip-cast-of-as-non-null (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (ref.cast_static $struct
@@ -1241,7 +1242,7 @@
)
)
)
- ;; CHECK: (func $flip-tee-of-as-non-null (param $x anyref)
+ ;; CHECK: (func $flip-tee-of-as-non-null (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (local.tee $x
@@ -1270,7 +1271,7 @@
)
)
- ;; CHECK: (func $flip-tee-of-as-non-null-non-nullable (param $x (ref any))
+ ;; CHECK: (func $flip-tee-of-as-non-null-non-nullable (type $ref|any|_=>_none) (param $x (ref any))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.tee $x
;; CHECK-NEXT: (ref.as_non_null
@@ -1300,7 +1301,7 @@
)
)
)
- ;; CHECK: (func $ternary-identical-arms (param $x i32) (param $y (ref null $struct)) (param $z (ref null $struct))
+ ;; CHECK: (func $ternary-identical-arms (type $i32_ref?|$struct|_ref?|$struct|_=>_none) (param $x i32) (param $y (ref null $struct)) (param $z (ref null $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (if (result (ref null $struct))
@@ -1331,7 +1332,7 @@
)
)
)
- ;; CHECK: (func $select-identical-arms-but-side-effect (param $x (ref null $struct)) (param $y (ref null $struct)) (param $z i32)
+ ;; CHECK: (func $select-identical-arms-but-side-effect (type $ref?|$struct|_ref?|$struct|_i32_=>_none) (param $x (ref null $struct)) (param $y (ref null $struct)) (param $z i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (select
;; CHECK-NEXT: (struct.get_u $struct $i8
@@ -1371,7 +1372,7 @@
)
)
)
- ;; CHECK: (func $ternary-identical-arms-no-side-effect (param $x (ref $struct)) (param $y (ref $struct)) (param $z i32)
+ ;; CHECK: (func $ternary-identical-arms-no-side-effect (type $ref|$struct|_ref|$struct|_i32_=>_none) (param $x (ref $struct)) (param $y (ref $struct)) (param $z i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.get_u $struct $i8
;; CHECK-NEXT: (select (result (ref $struct))
@@ -1407,7 +1408,7 @@
)
)
)
- ;; CHECK: (func $if-identical-arms-with-side-effect (param $x (ref null $struct)) (param $y (ref null $struct)) (param $z i32)
+ ;; CHECK: (func $if-identical-arms-with-side-effect (type $ref?|$struct|_ref?|$struct|_i32_=>_none) (param $x (ref null $struct)) (param $y (ref null $struct)) (param $z i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (struct.get_u $struct $i8
;; CHECK-NEXT: (if (result (ref null $struct))
@@ -1445,7 +1446,7 @@
)
)
- ;; CHECK: (func $ref-cast-squared (param $x eqref)
+ ;; CHECK: (func $ref-cast-squared (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
;; CHECK-NEXT: (local.get $x)
@@ -1469,7 +1470,7 @@
)
)
)
- ;; CHECK: (func $ref-cast-squared-fallthrough (param $x eqref)
+ ;; CHECK: (func $ref-cast-squared-fallthrough (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
;; CHECK-NEXT: (local.tee $x
@@ -1503,7 +1504,7 @@
)
)
)
- ;; CHECK: (func $ref-cast-cubed (param $x eqref)
+ ;; CHECK: (func $ref-cast-cubed (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
;; CHECK-NEXT: (local.get $x)
@@ -1529,10 +1530,12 @@
)
)
)
- ;; CHECK: (func $ref-cast-squared-different (param $x eqref)
+ ;; CHECK: (func $ref-cast-squared-different (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
- ;; CHECK-NEXT: (local.get $x)
+ ;; CHECK-NEXT: (ref.cast_static $empty
+ ;; CHECK-NEXT: (local.get $x)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -1556,7 +1559,7 @@
)
)
- ;; CHECK: (func $ref-eq-null (param $x eqref)
+ ;; CHECK: (func $ref-eq-null (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.is_null
;; CHECK-NEXT: (local.get $x)
@@ -1612,7 +1615,7 @@
)
)
- ;; CHECK: (func $ref-eq-possible (param $x eqref) (param $y eqref)
+ ;; CHECK: (func $ref-eq-possible (type $eqref_eqref_=>_none) (param $x eqref) (param $y eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.eq
;; CHECK-NEXT: (ref.cast_static $struct
@@ -1651,7 +1654,7 @@
)
)
- ;; CHECK: (func $ref-eq-impossible (param $x eqref) (param $y eqref)
+ ;; CHECK: (func $ref-eq-impossible (type $eqref_eqref_=>_none) (param $x eqref) (param $y eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -1806,7 +1809,7 @@
)
)
- ;; CHECK: (func $ref-eq-possible-b (param $x eqref) (param $y eqref)
+ ;; CHECK: (func $ref-eq-possible-b (type $eqref_eqref_=>_none) (param $x eqref) (param $y eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.eq
;; CHECK-NEXT: (ref.as_non_null
@@ -1900,7 +1903,7 @@
)
)
- ;; CHECK: (func $hoist-LUB-danger (param $x i32) (param $b (ref $B)) (param $c (ref $C)) (result i32)
+ ;; CHECK: (func $hoist-LUB-danger (type $i32_ref|$B|_ref|$C|_=>_i32) (param $x i32) (param $b (ref $B)) (param $c (ref $C)) (result i32)
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (struct.get $B 1
@@ -1942,7 +1945,7 @@
)
)
- ;; CHECK: (func $incompatible-cast-of-non-null (param $struct (ref $struct))
+ ;; CHECK: (func $incompatible-cast-of-non-null (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref $array))
;; CHECK-NEXT: (drop
@@ -1970,7 +1973,7 @@
)
)
- ;; CHECK: (func $incompatible-cast-of-null
+ ;; CHECK: (func $incompatible-cast-of-null (type $void)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result nullref)
;; CHECK-NEXT: (drop
@@ -2032,7 +2035,7 @@
)
)
- ;; CHECK: (func $incompatible-cast-of-unknown (param $struct (ref null $struct))
+ ;; CHECK: (func $incompatible-cast-of-unknown (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $array
;; CHECK-NEXT: (local.get $struct)
@@ -2054,7 +2057,7 @@
)
)
- ;; CHECK: (func $incompatible-test (param $struct (ref null $struct))
+ ;; CHECK: (func $incompatible-test (type $ref?|$struct|_=>_none) (param $struct (ref null $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -2083,7 +2086,7 @@
)
)
- ;; CHECK: (func $subtype-compatible (param $A (ref null $A)) (param $B (ref null $B))
+ ;; CHECK: (func $subtype-compatible (type $ref?|$A|_ref?|$B|_=>_none) (param $A (ref null $A)) (param $B (ref null $B))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $B
;; CHECK-NEXT: (local.get $A)
@@ -2121,7 +2124,7 @@
)
)
)
- ;; CHECK: (func $ref.test-unreachable (param $A (ref null $A))
+ ;; CHECK: (func $ref.test-unreachable (type $ref?|$A|_=>_none) (param $A (ref null $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $A
;; CHECK-NEXT: (unreachable)
@@ -2145,7 +2148,7 @@
)
)
- ;; CHECK: (func $consecutive-opts-with-unreachable (param $func funcref)
+ ;; CHECK: (func $consecutive-opts-with-unreachable (type $funcref_=>_none) (param $func funcref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
;; CHECK-NEXT: (block (result (ref data))
@@ -2188,7 +2191,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-null
+ ;; CHECK: (func $ref-cast-static-null (type $void)
;; CHECK-NEXT: (local $a (ref null $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result nullref)
@@ -2290,7 +2293,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-impossible (param $func (ref func))
+ ;; CHECK: (func $ref-cast-static-impossible (type $ref|func|_=>_none) (param $func (ref func))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref $struct))
;; CHECK-NEXT: (drop
@@ -2319,7 +2322,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-general (param $a (ref null $A)) (param $b (ref null $B))
+ ;; CHECK: (func $ref-cast-static-general (type $ref?|$A|_ref?|$B|_=>_none) (param $a (ref null $A)) (param $b (ref null $B))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $a)
;; CHECK-NEXT: )
@@ -2384,7 +2387,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-squared (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-squared (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $A
;; CHECK-NEXT: (local.get $x)
@@ -2444,7 +2447,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-many (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-many (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $B-child
;; CHECK-NEXT: (local.get $x)
@@ -2567,7 +2570,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-very-many (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-very-many (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $B-child
;; CHECK-NEXT: (local.get $x)
@@ -2612,7 +2615,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-fallthrough-remaining (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-fallthrough-remaining (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref null $B))
;; CHECK-NEXT: (call $ref-cast-static-fallthrough-remaining
@@ -2659,7 +2662,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-fallthrough-remaining-child (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-fallthrough-remaining-child (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $B
;; CHECK-NEXT: (block (result eqref)
@@ -2705,7 +2708,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-fallthrough-remaining-impossible (param $x (ref eq))
+ ;; CHECK: (func $ref-cast-static-fallthrough-remaining-impossible (type $ref|eq|_=>_none) (param $x (ref eq))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result (ref $array))
;; CHECK-NEXT: (drop
@@ -2757,7 +2760,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-fallthrough-remaining-nonnull (param $x (ref eq))
+ ;; CHECK: (func $ref-cast-static-fallthrough-remaining-nonnull (type $ref|eq|_=>_none) (param $x (ref eq))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $A
;; CHECK-NEXT: (block (result (ref eq))
@@ -2805,7 +2808,7 @@
)
)
- ;; CHECK: (func $ref-cast-static-squared-impossible (param $x eqref)
+ ;; CHECK: (func $ref-cast-static-squared-impossible (type $eqref_=>_none) (param $x eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.cast_static $struct
;; CHECK-NEXT: (ref.cast_static $array
@@ -2865,7 +2868,7 @@
)
)
- ;; CHECK: (func $ref-test-static-same-type (param $nullable (ref null $A)) (param $non-nullable (ref $A))
+ ;; CHECK: (func $ref-test-static-same-type (type $ref?|$A|_ref|$A|_=>_none) (param $nullable (ref null $A)) (param $non-nullable (ref $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $A
;; CHECK-NEXT: (local.get $nullable)
@@ -2911,7 +2914,7 @@
)
)
- ;; CHECK: (func $ref-test-static-subtype (param $nullable (ref null $B)) (param $non-nullable (ref $B))
+ ;; CHECK: (func $ref-test-static-subtype (type $ref?|$B|_ref|$B|_=>_none) (param $nullable (ref null $B)) (param $non-nullable (ref $B))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $A
;; CHECK-NEXT: (local.get $nullable)
@@ -2955,7 +2958,7 @@
)
)
- ;; CHECK: (func $ref-test-static-supertype (param $nullable (ref null $A)) (param $non-nullable (ref $A))
+ ;; CHECK: (func $ref-test-static-supertype (type $ref?|$A|_ref|$A|_=>_none) (param $nullable (ref null $A)) (param $non-nullable (ref $A))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.test_static $B
;; CHECK-NEXT: (local.get $nullable)
@@ -2994,7 +2997,7 @@
)
)
- ;; CHECK: (func $ref-test-static-impossible (param $nullable (ref null $array)) (param $non-nullable (ref $array))
+ ;; CHECK: (func $ref-test-static-impossible (type $ref?|$array|_ref|$array|_=>_none) (param $nullable (ref null $array)) (param $non-nullable (ref $array))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (drop
@@ -3044,7 +3047,7 @@
)
)
- ;; CHECK: (func $ref-boolean (param $x eqref) (param $y eqref)
+ ;; CHECK: (func $ref-boolean (type $eqref_eqref_=>_none) (param $x eqref) (param $y eqref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.eq
;; CHECK-NEXT: (local.get $x)
@@ -3110,7 +3113,7 @@
)
)
- ;; CHECK: (func $impossible (result (ref none))
+ ;; CHECK: (func $impossible (type $none_=>_ref|none|) (result (ref none))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $impossible (type $none_=>_ref|none|) (result (ref none))
@@ -3120,7 +3123,7 @@
(unreachable)
)
- ;; CHECK: (func $bottom-type-accessors (param $bot (ref none)) (param $null nullref)
+ ;; CHECK: (func $bottom-type-accessors (type $ref|none|_nullref_=>_none) (param $bot (ref none)) (param $null nullref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/optimize-instructions-ignore-traps.wast b/test/lit/passes/optimize-instructions-ignore-traps.wast
index a199f1b46..a2602bf4c 100644
--- a/test/lit/passes/optimize-instructions-ignore-traps.wast
+++ b/test/lit/passes/optimize-instructions-ignore-traps.wast
@@ -12,7 +12,7 @@
(import "a" "b" (func $get-i32 (result i32)))
- ;; CHECK: (func $conditionals (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $conditionals (type $0) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
@@ -181,7 +181,7 @@
(local.get $5)
)
)
- ;; CHECK: (func $side-effect (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $side-effect (type $0) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
@@ -350,7 +350,7 @@
(local.get $5)
)
)
- ;; CHECK: (func $flip (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $flip (type $0) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (local $2 i32)
;; CHECK-NEXT: (local $3 i32)
;; CHECK-NEXT: (local $4 i32)
@@ -516,7 +516,7 @@
(local.get $5)
)
)
- ;; CHECK: (func $invalidate-conditionalizeExpensiveOnBitwise (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $invalidate-conditionalizeExpensiveOnBitwise (type $0) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.and
@@ -580,7 +580,7 @@
)
(return (local.get $1))
)
- ;; CHECK: (func $invalidate-conditionalizeExpensiveOnBitwise-ok (param $0 i32) (param $1 i32) (result i32)
+ ;; CHECK: (func $invalidate-conditionalizeExpensiveOnBitwise-ok (type $0) (param $0 i32) (param $1 i32) (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (if (result i32)
@@ -643,7 +643,7 @@
(return (local.get $1))
)
- ;; CHECK: (func $conditionalize-if-type-change (result f64)
+ ;; CHECK: (func $conditionalize-if-type-change (type $none_=>_f64) (result f64)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (loop $label$1 (result f32)
@@ -717,7 +717,7 @@
)
(f64.const -nan:0xfffffffffffff)
)
- ;; CHECK: (func $optimize-bulk-memory-copy (param $dst i32) (param $src i32) (param $sz i32)
+ ;; CHECK: (func $optimize-bulk-memory-copy (type $i32_i32_i32_=>_none) (param $dst i32) (param $src i32) (param $sz i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $dst)
@@ -775,7 +775,7 @@
)
)
- ;; CHECK: (func $optimize-bulk-memory-fill (param $dst i32) (param $val i32) (param $sz i32)
+ ;; CHECK: (func $optimize-bulk-memory-fill (type $i32_i32_i32_=>_none) (param $dst i32) (param $val i32) (param $sz i32)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (local.get $dst)
diff --git a/test/lit/passes/optimize-instructions-iit-eh.wast b/test/lit/passes/optimize-instructions-iit-eh.wast
index ee6b78738..6d8a8fe39 100644
--- a/test/lit/passes/optimize-instructions-iit-eh.wast
+++ b/test/lit/passes/optimize-instructions-iit-eh.wast
@@ -8,7 +8,7 @@
;; CHECK: (tag $e (param (ref null $struct.A)))
(tag $e (param (ref null $struct.A)))
- ;; CHECK: (func $ref-cast-statically-removed
+ ;; CHECK: (func $ref-cast-statically-removed (type $none_=>_none)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/poppify-globals.wast b/test/lit/passes/poppify-globals.wast
index 869015cb7..205fac513 100644
--- a/test/lit/passes/poppify-globals.wast
+++ b/test/lit/passes/poppify-globals.wast
@@ -31,7 +31,7 @@
;; CHECK: (global $other-tuple$0 i32 (global.get $tuple$0))
- ;; CHECK: (func $global-get-tuple (result i32 i64 f32)
+ ;; CHECK: (func $global-get-tuple (type $none_=>_i32_i64_f32) (result i32 i64 f32)
;; CHECK-NEXT: (global.get $tuple$0)
;; CHECK-NEXT: (global.get $tuple$1_0)
;; CHECK-NEXT: (global.get $tuple$2)
@@ -40,7 +40,7 @@
(global.get $tuple)
)
- ;; CHECK: (func $global-set-tuple
+ ;; CHECK: (func $global-set-tuple (type $none_=>_none)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
;; CHECK-NEXT: (f32.const 2)
diff --git a/test/lit/passes/poppify.wast b/test/lit/passes/poppify.wast
index 4675d0a97..88f46de8c 100644
--- a/test/lit/passes/poppify.wast
+++ b/test/lit/passes/poppify.wast
@@ -6,14 +6,14 @@
;; CHECK: (tag $e (param i32))
(tag $e (param i32))
- ;; CHECK: (func $id (param $x i32) (result i32)
+ ;; CHECK: (func $id (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
(func $id (param $x i32) (result i32)
(local.get $x)
)
- ;; CHECK: (func $add (param $x i32) (param $y i32) (result i32)
+ ;; CHECK: (func $add (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (local.get $y)
;; CHECK-NEXT: (i32.add
@@ -28,7 +28,7 @@
)
)
- ;; CHECK: (func $expr-tree (result i32)
+ ;; CHECK: (func $expr-tree (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (i32.mul
@@ -59,7 +59,7 @@
)
)
- ;; CHECK: (func $block (result i32)
+ ;; CHECK: (func $block (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -70,7 +70,7 @@
)
)
- ;; CHECK: (func $nested (result i32)
+ ;; CHECK: (func $nested (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $block (result i32)
;; CHECK-NEXT: (block $block0 (result i32)
;; CHECK-NEXT: (block $block1 (result i32)
@@ -89,7 +89,7 @@
)
)
- ;; CHECK: (func $nested-nonames (result i32)
+ ;; CHECK: (func $nested-nonames (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $nested-nonames (result i32)
@@ -102,7 +102,7 @@
)
)
- ;; CHECK: (func $child-blocks (result i32)
+ ;; CHECK: (func $child-blocks (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $block (result i32)
;; CHECK-NEXT: (block $block0 (result i32)
;; CHECK-NEXT: (i32.const 0)
@@ -129,7 +129,7 @@
)
)
- ;; CHECK: (func $child-blocks-nonames (result i32)
+ ;; CHECK: (func $child-blocks-nonames (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (i32.add
@@ -150,7 +150,7 @@
)
)
- ;; CHECK: (func $block-br (result i32)
+ ;; CHECK: (func $block-br (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (block $l (result i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (i32.const 0)
@@ -168,7 +168,7 @@
)
)
- ;; CHECK: (func $loop
+ ;; CHECK: (func $loop (type $none_=>_none)
;; CHECK-NEXT: (loop $l
;; CHECK-NEXT: (br $l)
;; CHECK-NEXT: )
@@ -180,7 +180,7 @@
)
)
- ;; CHECK: (func $if
+ ;; CHECK: (func $if (type $none_=>_none)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (pop i32)
@@ -194,7 +194,7 @@
)
)
- ;; CHECK: (func $if-else (result i32)
+ ;; CHECK: (func $if-else (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (pop i32)
@@ -210,7 +210,7 @@
)
)
- ;; CHECK: (func $try-catch (result i32)
+ ;; CHECK: (func $try-catch (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try $try (result i32)
;; CHECK-NEXT: (do
;; CHECK-NEXT: (i32.const 0)
@@ -241,7 +241,7 @@
)
)
- ;; CHECK: (func $try-delegate (result i32)
+ ;; CHECK: (func $try-delegate (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (try $l0 (result i32)
;; CHECK-NEXT: (do
;; CHECK-NEXT: (try $try
@@ -277,7 +277,7 @@
)
)
- ;; CHECK: (func $tuple (result i32 i64)
+ ;; CHECK: (func $tuple (type $none_=>_i32_i64) (result i32 i64)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
;; CHECK-NEXT: )
@@ -288,7 +288,7 @@
)
)
- ;; CHECK: (func $extract-first (result i32)
+ ;; CHECK: (func $extract-first (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
;; CHECK-NEXT: (f32.const 2)
@@ -309,7 +309,7 @@
)
)
- ;; CHECK: (func $extract-middle (result i64)
+ ;; CHECK: (func $extract-middle (type $none_=>_i64) (result i64)
;; CHECK-NEXT: (local $0 i64)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
@@ -335,7 +335,7 @@
)
)
- ;; CHECK: (func $extract-last (result f32)
+ ;; CHECK: (func $extract-last (type $none_=>_f32) (result f32)
;; CHECK-NEXT: (local $0 f32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
@@ -361,7 +361,7 @@
)
)
- ;; CHECK: (func $drop
+ ;; CHECK: (func $drop (type $none_=>_none)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (pop i32)
@@ -373,7 +373,7 @@
)
)
- ;; CHECK: (func $drop-tuple
+ ;; CHECK: (func $drop-tuple (type $none_=>_none)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
;; CHECK-NEXT: (drop
@@ -392,7 +392,7 @@
)
)
- ;; CHECK: (func $local-get-tuple (result i32 i64)
+ ;; CHECK: (func $local-get-tuple (type $none_=>_i32_i64) (result i32 i64)
;; CHECK-NEXT: (local $x (i32 i64))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i64)
@@ -404,7 +404,7 @@
(local.get $x)
)
- ;; CHECK: (func $local-set
+ ;; CHECK: (func $local-set (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (local.set $x
@@ -418,7 +418,7 @@
)
)
- ;; CHECK: (func $local-set-tuple
+ ;; CHECK: (func $local-set-tuple (type $none_=>_none)
;; CHECK-NEXT: (local $x (i32 i64))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i64)
@@ -441,7 +441,7 @@
)
)
- ;; CHECK: (func $local-tee-tuple (result i32 i64)
+ ;; CHECK: (func $local-tee-tuple (type $none_=>_i32_i64) (result i32 i64)
;; CHECK-NEXT: (local $x (i32 i64))
;; CHECK-NEXT: (local $1 i32)
;; CHECK-NEXT: (local $2 i64)
@@ -465,7 +465,7 @@
)
)
- ;; CHECK: (func $break-tuple (result i32 i64)
+ ;; CHECK: (func $break-tuple (type $none_=>_i32_i64) (result i32 i64)
;; CHECK-NEXT: (block $l (result i32 i64)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
@@ -485,7 +485,7 @@
)
)
- ;; CHECK: (func $return-tuple (result i32 i64)
+ ;; CHECK: (func $return-tuple (type $none_=>_i32_i64) (result i32 i64)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i64.const 1)
;; CHECK-NEXT: (return
diff --git a/test/lit/passes/precompute-gc-immutable.wast b/test/lit/passes/precompute-gc-immutable.wast
index ebb26bfb5..95e8d0e96 100644
--- a/test/lit/passes/precompute-gc-immutable.wast
+++ b/test/lit/passes/precompute-gc-immutable.wast
@@ -3,10 +3,10 @@
;; RUN: foreach %s %t wasm-opt --precompute-propagate -all --nominal -S -o - | filecheck %s
(module
- ;; CHECK: (type $struct-imm (struct_subtype (field i32) data))
+ ;; CHECK: (type $struct-imm (struct (field i32)))
(type $struct-imm (struct_subtype i32 data))
- ;; CHECK: (type $struct-mut (struct_subtype (field (mut i32)) data))
+ ;; CHECK: (type $struct-mut (struct (field (mut i32))))
(type $struct-mut (struct_subtype (mut i32) data))
;; CHECK: (func $propagate (type $none_=>_none)
@@ -358,7 +358,7 @@
(module
;; One field is immutable, the other is not, so we can only propagate the
;; former.
- ;; CHECK: (type $struct (struct_subtype (field (mut i32)) (field i32) data))
+ ;; CHECK: (type $struct (struct (field (mut i32)) (field i32)))
(type $struct (struct_subtype (mut i32) i32 data))
;; CHECK: (func $propagate (type $none_=>_none)
@@ -410,9 +410,9 @@
;; Create an immutable vtable in an immutable field, which lets us read from
;; it.
- ;; CHECK: (type $object (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $object (struct (field (ref $vtable))))
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct_subtype funcref data))
(type $object (struct_subtype (ref $vtable) data))
@@ -458,9 +458,9 @@
(module
;; As above, but make $vtable not immutable, which prevents optimization.
- ;; CHECK: (type $object (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $object (struct (field (ref $vtable))))
- ;; CHECK: (type $vtable (struct_subtype (field (mut funcref)) data))
+ ;; CHECK: (type $vtable (struct (field (mut funcref))))
(type $vtable (struct_subtype (mut funcref) data))
(type $object (struct_subtype (ref $vtable) data))
@@ -511,9 +511,9 @@
(module
;; As above, but make $object not immutable, which prevents optimization.
- ;; CHECK: (type $object (struct_subtype (field (mut (ref $vtable))) data))
+ ;; CHECK: (type $object (struct (field (mut (ref $vtable)))))
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct_subtype funcref data))
(type $object (struct_subtype (mut (ref $vtable)) data))
@@ -562,9 +562,9 @@
;; Create an immutable vtable in an immutable global, which we can optimize
;; with.
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct_subtype funcref data))
- ;; CHECK: (type $object (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $object (struct (field (ref $vtable))))
(type $object (struct_subtype (ref $vtable) data))
;; CHECK: (global $vtable (ref $vtable) (struct.new $vtable
@@ -613,9 +613,9 @@
;; Create an immutable vtable in an mutable global, whose mutability prevents
;; optimization.
- ;; CHECK: (type $vtable (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable (struct (field funcref)))
(type $vtable (struct_subtype funcref data))
- ;; CHECK: (type $object (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $object (struct (field (ref $vtable))))
(type $object (struct_subtype (ref $vtable) data))
;; CHECK: (global $vtable (mut (ref $vtable)) (struct.new $vtable
@@ -668,9 +668,9 @@
;; Create an immutable vtable in an immutable global, but using an array
;; instead of a struct.
- ;; CHECK: (type $vtable (array_subtype funcref data))
+ ;; CHECK: (type $vtable (array funcref))
(type $vtable (array_subtype funcref data))
- ;; CHECK: (type $object (struct_subtype (field (ref $vtable)) data))
+ ;; CHECK: (type $object (struct (field (ref $vtable))))
(type $object (struct_subtype (ref $vtable) data))
;; CHECK: (global $vtable (ref $vtable) (array.init_static $vtable
@@ -739,16 +739,16 @@
;; data that is filled with vtables of different types. On usage, we do a
;; cast of the vtable type.
- ;; CHECK: (type $itable (array_subtype dataref data))
+ ;; CHECK: (type $itable (array dataref))
(type $itable (array_subtype (ref null data) data))
- ;; CHECK: (type $object (struct_subtype (field (ref $itable)) data))
+ ;; CHECK: (type $object (struct (field (ref $itable))))
(type $object (struct_subtype (ref $itable) data))
- ;; CHECK: (type $vtable-0 (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable-0 (struct (field funcref)))
(type $vtable-0 (struct_subtype funcref data))
- ;; CHECK: (type $vtable-1 (struct_subtype (field funcref) data))
+ ;; CHECK: (type $vtable-1 (struct (field funcref)))
(type $vtable-1 (struct_subtype funcref data))
;; CHECK: (global $itable (ref $itable) (array.init_static $itable
diff --git a/test/lit/passes/precompute-gc.wast b/test/lit/passes/precompute-gc.wast
index 896158637..7c4292ea2 100644
--- a/test/lit/passes/precompute-gc.wast
+++ b/test/lit/passes/precompute-gc.wast
@@ -6,11 +6,11 @@
(module
;; CHECK: (type $empty (struct ))
- ;; NOMNL: (type $empty (struct_subtype data))
+ ;; NOMNL: (type $empty (struct ))
(type $empty (struct))
;; CHECK: (type $struct (struct (field (mut i32))))
- ;; NOMNL: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; NOMNL: (type $struct (struct (field (mut i32))))
(type $struct (struct (mut i32)))
;; two incompatible struct types
@@ -18,9 +18,9 @@
;; CHECK: (type $func-return-i32 (func (result i32)))
;; CHECK: (type $B (struct (field (mut f64))))
- ;; NOMNL: (type $func-return-i32 (func_subtype (result i32) func))
+ ;; NOMNL: (type $func-return-i32 (func (result i32)))
- ;; NOMNL: (type $B (struct_subtype (field (mut f64)) data))
+ ;; NOMNL: (type $B (struct (field (mut f64))))
(type $B (struct (field (mut f64))))
(type $func-return-i32 (func (result i32)))
@@ -29,7 +29,7 @@
;; NOMNL: (import "fuzzing-support" "log-i32" (func $log (param i32)))
(import "fuzzing-support" "log-i32" (func $log (param i32)))
- ;; CHECK: (func $test-fallthrough (result i32)
+ ;; CHECK: (func $test-fallthrough (type $func-return-i32) (result i32)
;; CHECK-NEXT: (local $x funcref)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (block (result nullfuncref)
@@ -73,7 +73,7 @@
)
)
- ;; CHECK: (func $load-from-struct
+ ;; CHECK: (func $load-from-struct (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref null $struct))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (struct.new $struct
@@ -167,7 +167,7 @@
(struct.get $struct 0 (local.get $x))
)
)
- ;; CHECK: (func $load-from-struct-bad-merge (param $i i32)
+ ;; CHECK: (func $load-from-struct-bad-merge (type $i32_=>_none) (param $i i32)
;; CHECK-NEXT: (local $x (ref null $struct))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $i)
@@ -229,7 +229,7 @@
(struct.get $struct 0 (local.get $x))
)
)
- ;; CHECK: (func $modify-gc-heap (param $x (ref null $struct))
+ ;; CHECK: (func $modify-gc-heap (type $ref?|$struct|_=>_none) (param $x (ref null $struct))
;; CHECK-NEXT: (struct.set $struct 0
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (i32.add
@@ -264,7 +264,7 @@
)
;; --fuzz-exec verifies the output of this function, checking that the change
;; makde in modify-gc-heap is not ignored
- ;; CHECK: (func $load-from-struct-bad-escape
+ ;; CHECK: (func $load-from-struct-bad-escape (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref null $struct))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (struct.new $struct
@@ -310,7 +310,7 @@
(struct.get $struct 0 (local.get $x))
)
)
- ;; CHECK: (func $load-from-struct-bad-arrive (param $x (ref null $struct))
+ ;; CHECK: (func $load-from-struct-bad-arrive (type $ref?|$struct|_=>_none) (param $x (ref null $struct))
;; CHECK-NEXT: (call $log
;; CHECK-NEXT: (struct.get $struct 0
;; CHECK-NEXT: (local.get $x)
@@ -330,7 +330,7 @@
(struct.get $struct 0 (local.get $x))
)
)
- ;; CHECK: (func $ref-comparisons (param $x (ref null $struct)) (param $y (ref null $struct))
+ ;; CHECK: (func $ref-comparisons (type $ref?|$struct|_ref?|$struct|_=>_none) (param $x (ref null $struct)) (param $y (ref null $struct))
;; CHECK-NEXT: (local $z (ref null $struct))
;; CHECK-NEXT: (local $w (ref null $struct))
;; CHECK-NEXT: (call $log
@@ -413,7 +413,7 @@
)
)
)
- ;; CHECK: (func $new-ref-comparisons (result i32)
+ ;; CHECK: (func $new-ref-comparisons (type $func-return-i32) (result i32)
;; CHECK-NEXT: (local $x (ref null $struct))
;; CHECK-NEXT: (local $y (ref null $struct))
;; CHECK-NEXT: (local $tempresult i32)
@@ -470,7 +470,7 @@
;; and that 1 is propagated to here.
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-equal (result i32)
+ ;; CHECK: (func $propagate-equal (type $func-return-i32) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local.set $tempresult
@@ -513,7 +513,7 @@
;; that the ref.eq itself cannot be precomputed away (as it has side effects).
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-unequal (result i32)
+ ;; CHECK: (func $propagate-unequal (type $func-return-i32) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local.set $tempresult
@@ -546,7 +546,7 @@
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-uncertain-param (param $input (ref $empty)) (result i32)
+ ;; CHECK: (func $propagate-uncertain-param (type $ref|$empty|_=>_i32) (param $input (ref $empty)) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local.set $tempresult
@@ -582,7 +582,7 @@
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-different-params (param $input1 (ref $empty)) (param $input2 (ref $empty)) (result i32)
+ ;; CHECK: (func $propagate-different-params (type $ref|$empty|_ref|$empty|_=>_i32) (param $input1 (ref $empty)) (param $input2 (ref $empty)) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local.set $tempresult
;; CHECK-NEXT: (ref.eq
@@ -614,7 +614,7 @@
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-same-param (param $input (ref $empty)) (result i32)
+ ;; CHECK: (func $propagate-same-param (type $ref|$empty|_=>_i32) (param $input (ref $empty)) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local.set $tempresult
;; CHECK-NEXT: (ref.eq
@@ -647,7 +647,7 @@
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-uncertain-local (result i32)
+ ;; CHECK: (func $propagate-uncertain-local (type $func-return-i32) (result i32)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local $stashedref (ref null $empty))
@@ -728,7 +728,7 @@
(local.get $tempresult)
)
- ;; CHECK: (func $propagate-uncertain-loop
+ ;; CHECK: (func $propagate-uncertain-loop (type $none_=>_none)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local $stashedref (ref null $empty))
@@ -812,7 +812,7 @@
)
)
- ;; CHECK: (func $propagate-certain-loop
+ ;; CHECK: (func $propagate-certain-loop (type $none_=>_none)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local $stashedref (ref null $empty))
@@ -881,7 +881,7 @@
)
)
- ;; CHECK: (func $propagate-certain-loop-2
+ ;; CHECK: (func $propagate-certain-loop-2 (type $none_=>_none)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local $stashedref (ref null $empty))
@@ -950,7 +950,7 @@
)
)
- ;; CHECK: (func $propagate-possibly-certain-loop
+ ;; CHECK: (func $propagate-possibly-certain-loop (type $none_=>_none)
;; CHECK-NEXT: (local $tempresult i32)
;; CHECK-NEXT: (local $tempref (ref null $empty))
;; CHECK-NEXT: (local $stashedref (ref null $empty))
@@ -1042,7 +1042,7 @@
)
)
- ;; CHECK: (func $helper (param $0 i32) (result i32)
+ ;; CHECK: (func $helper (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $helper (type $i32_=>_i32) (param $0 i32) (result i32)
@@ -1052,7 +1052,7 @@
(unreachable)
)
- ;; CHECK: (func $odd-cast-and-get
+ ;; CHECK: (func $odd-cast-and-get (type $none_=>_none)
;; CHECK-NEXT: (local $temp (ref null $B))
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (ref.null none)
@@ -1100,7 +1100,7 @@
)
)
- ;; CHECK: (func $odd-cast-and-get-tuple
+ ;; CHECK: (func $odd-cast-and-get-tuple (type $none_=>_none)
;; CHECK-NEXT: (local $temp ((ref null $B) i32))
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (tuple.make
@@ -1154,7 +1154,7 @@
)
)
- ;; CHECK: (func $receive-f64 (param $0 f64)
+ ;; CHECK: (func $receive-f64 (type $f64_=>_none) (param $0 f64)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $receive-f64 (type $f64_=>_none) (param $0 f64)
@@ -1164,7 +1164,7 @@
(unreachable)
)
- ;; CHECK: (func $odd-cast-and-get-non-null (param $temp (ref $func-return-i32))
+ ;; CHECK: (func $odd-cast-and-get-non-null (type $ref|$func-return-i32|_=>_none) (param $temp (ref $func-return-i32))
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (ref.cast_static $func-return-i32
;; CHECK-NEXT: (ref.func $receive-f64)
@@ -1204,7 +1204,7 @@
)
)
- ;; CHECK: (func $new_block_unreachable (result anyref)
+ ;; CHECK: (func $new_block_unreachable (type $none_=>_anyref) (result anyref)
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block
@@ -1235,7 +1235,7 @@
)
)
- ;; CHECK: (func $br_on_cast-on-creation (result (ref $empty))
+ ;; CHECK: (func $br_on_cast-on-creation (type $none_=>_ref|$empty|) (result (ref $empty))
;; CHECK-NEXT: (block $label (result (ref $empty))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_on_cast_static $label $empty
@@ -1266,7 +1266,7 @@
)
)
- ;; CHECK: (func $ref.is_null (param $param i32)
+ ;; CHECK: (func $ref.is_null (type $i32_=>_none) (param $param i32)
;; CHECK-NEXT: (local $ref (ref null $empty))
;; CHECK-NEXT: (local.set $ref
;; CHECK-NEXT: (struct.new_default $empty)
@@ -1372,7 +1372,7 @@
)
)
- ;; CHECK: (func $remove-set (result (ref func))
+ ;; CHECK: (func $remove-set (type $none_=>_ref|func|) (result (ref func))
;; CHECK-NEXT: (local $nn funcref)
;; CHECK-NEXT: (local $i i32)
;; CHECK-NEXT: (loop $loop
diff --git a/test/lit/passes/remove-unused-brs-gc.wast b/test/lit/passes/remove-unused-brs-gc.wast
index 9473b0627..23d43bdb5 100644
--- a/test/lit/passes/remove-unused-brs-gc.wast
+++ b/test/lit/passes/remove-unused-brs-gc.wast
@@ -6,7 +6,7 @@
;; CHECK: (type $struct (struct ))
(type $struct (struct ))
- ;; CHECK: (func $br_on_non_data-1
+ ;; CHECK: (func $br_on_non_data-1 (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $any (result i31ref)
;; CHECK-NEXT: (drop
@@ -33,7 +33,7 @@
)
)
)
- ;; CHECK: (func $br_on_non_data-2 (param $data (ref data))
+ ;; CHECK: (func $br_on_non_data-2 (type $ref|data|_=>_none) (param $data (ref data))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $any (result nullref)
;; CHECK-NEXT: (drop
@@ -57,7 +57,7 @@
)
)
- ;; CHECK: (func $br_on-if (param $0 (ref data))
+ ;; CHECK: (func $br_on-if (type $ref|data|_=>_none) (param $0 (ref data))
;; CHECK-NEXT: (block $label
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (select (result (ref data))
@@ -88,7 +88,7 @@
)
)
- ;; CHECK: (func $nested_br_on (result dataref)
+ ;; CHECK: (func $nested_br_on (type $none_=>_dataref) (result dataref)
;; CHECK-NEXT: (block $label$1 (result (ref $struct))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br $label$1
@@ -114,7 +114,7 @@
)
)
- ;; CHECK: (func $br_on_cast_static (result (ref $struct))
+ ;; CHECK: (func $br_on_cast_static (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (local $temp (ref null $struct))
;; CHECK-NEXT: (block $block (result (ref $struct))
;; CHECK-NEXT: (drop
@@ -139,7 +139,7 @@
)
)
- ;; CHECK: (func $br_on_cast_static_no (result (ref $struct))
+ ;; CHECK: (func $br_on_cast_static_no (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (local $temp (ref null $struct))
;; CHECK-NEXT: (block $block (result (ref $struct))
;; CHECK-NEXT: (drop
@@ -163,7 +163,7 @@
)
)
- ;; CHECK: (func $br_on_cast_fail_static (result (ref $struct))
+ ;; CHECK: (func $br_on_cast_fail_static (type $none_=>_ref|$struct|) (result (ref $struct))
;; CHECK-NEXT: (local $temp (ref null $struct))
;; CHECK-NEXT: (block $block
;; CHECK-NEXT: (drop
@@ -186,7 +186,7 @@
)
)
- ;; CHECK: (func $casts-are-costly (param $x i32)
+ ;; CHECK: (func $casts-are-costly (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (local.get $x)
diff --git a/test/lit/passes/remove-unused-brs.wast b/test/lit/passes/remove-unused-brs.wast
index 7db4bdcd5..4c384f34d 100644
--- a/test/lit/passes/remove-unused-brs.wast
+++ b/test/lit/passes/remove-unused-brs.wast
@@ -5,7 +5,7 @@
(module
;; Regression test in which we need to calculate a proper LUB.
- ;; CHECK: (func $selectify-fresh-lub (param $x i32) (result anyref)
+ ;; CHECK: (func $selectify-fresh-lub (type $i32_=>_anyref) (param $x i32) (result anyref)
;; CHECK-NEXT: (select (result nullref)
;; CHECK-NEXT: (ref.null none)
;; CHECK-NEXT: (ref.null none)
@@ -24,7 +24,7 @@
)
)
- ;; CHECK: (func $selectify-simple (param $0 i32) (result i32)
+ ;; CHECK: (func $selectify-simple (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: (i32.lt_u
@@ -69,7 +69,7 @@
)
)
- ;; CHECK: (func $restructure-br_if (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: (i32.const 100)
@@ -96,13 +96,13 @@
)
)
- ;; CHECK: (func $nothing
+ ;; CHECK: (func $nothing (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $nothing)
- ;; CHECK: (func $restructure-br_if-condition-reorderable (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-condition-reorderable (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (call $nothing)
@@ -135,7 +135,7 @@
)
)
- ;; CHECK: (func $restructure-br_if-value-effectful (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-value-effectful (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (select
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (call $nothing)
@@ -177,7 +177,7 @@
)
)
- ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-1 (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-1 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (block $x (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_if $x
@@ -215,14 +215,14 @@
)
)
- ;; CHECK: (func $get-i32 (result i32)
+ ;; CHECK: (func $get-i32 (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 400)
;; CHECK-NEXT: )
(func $get-i32 (result i32)
(i32.const 400)
)
- ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-2 (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-2 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (block $x (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_if $x
@@ -261,7 +261,7 @@
(call $get-i32)
)
)
- ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-3 (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-3 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (block $x (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_if $x
@@ -294,7 +294,7 @@
)
)
- ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-4 (param $x i32) (result i32)
+ ;; CHECK: (func $restructure-br_if-value-effectful-corner-case-4 (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (block $x (result i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_if $x
@@ -329,7 +329,7 @@
)
)
- ;; CHECK: (func $restructure-select-no-multivalue
+ ;; CHECK: (func $restructure-select-no-multivalue (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (block $block (result i32 i32)
;; CHECK-NEXT: (drop
@@ -376,7 +376,7 @@
)
)
- ;; CHECK: (func $if-of-if
+ ;; CHECK: (func $if-of-if (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (select
@@ -404,7 +404,7 @@
)
)
- ;; CHECK: (func $if-of-if-but-side-effects
+ ;; CHECK: (func $if-of-if-but-side-effects (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $x
@@ -435,7 +435,7 @@
)
)
- ;; CHECK: (func $if-of-if-but-too-costly
+ ;; CHECK: (func $if-of-if-but-too-costly (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $x
@@ -482,7 +482,7 @@
)
)
- ;; CHECK: (func $if-of-if-but-inner-else
+ ;; CHECK: (func $if-of-if-but-inner-else (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $x
@@ -510,7 +510,7 @@
)
)
- ;; CHECK: (func $if-of-if-but-outer-else
+ ;; CHECK: (func $if-of-if-but-outer-else (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $x
diff --git a/test/lit/passes/remove-unused-module-elements-refs.wast b/test/lit/passes/remove-unused-module-elements-refs.wast
index 2c9df16f8..1e23099b9 100644
--- a/test/lit/passes/remove-unused-module-elements-refs.wast
+++ b/test/lit/passes/remove-unused-module-elements-refs.wast
@@ -2,11 +2,11 @@
;; RUN: foreach %s %t wasm-opt --remove-unused-module-elements --nominal -all -S -o - | filecheck %s
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
- ;; CHECK: (type $ref?|$A|_=>_none (func_subtype (param (ref null $A)) func))
+ ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
- ;; CHECK: (type $B (func_subtype func))
+ ;; CHECK: (type $B (func))
(type $B (func))
;; CHECK: (elem declare func $target-A $target-B)
@@ -76,7 +76,7 @@
;; As above, but reverse the order inside $foo, so we see the CallRef first.
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
(type $B (func))
@@ -118,11 +118,11 @@
;; As above, but interleave CallRefs with RefFuncs.
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
(type $B (func))
- ;; CHECK: (type $ref?|$A|_=>_none (func_subtype (param (ref null $A)) func))
+ ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
;; CHECK: (elem declare func $target-A-1 $target-A-2)
@@ -179,11 +179,11 @@
;; As above, with the order reversed inside $foo. The results should be the
;; same.
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
(type $B (func))
- ;; CHECK: (type $ref?|$A|_=>_none (func_subtype (param (ref null $A)) func))
+ ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
;; CHECK: (elem declare func $target-A-1 $target-A-2)
@@ -240,10 +240,10 @@
;; The call.without.effects intrinsic does a call to the reference given to it,
;; but for now other imports do not (until we add a flag for closed-world).
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
- ;; CHECK: (type $funcref_=>_none (func_subtype (param funcref) func))
+ ;; CHECK: (type $funcref_=>_none (func (param funcref)))
;; CHECK: (import "binaryen-intrinsics" "call.without.effects" (func $call-without-effects (param funcref)))
(import "binaryen-intrinsics" "call.without.effects"
@@ -293,12 +293,12 @@
;; As above, but now the call to the intrinsic does not let us see the exact
;; function being called.
(module
- ;; CHECK: (type $A (func_subtype func))
+ ;; CHECK: (type $A (func))
(type $A (func))
- ;; CHECK: (type $funcref_=>_none (func_subtype (param funcref) func))
+ ;; CHECK: (type $funcref_=>_none (func (param funcref)))
- ;; CHECK: (type $ref?|$A|_=>_none (func_subtype (param (ref null $A)) func))
+ ;; CHECK: (type $ref?|$A|_=>_none (func (param (ref null $A))))
;; CHECK: (import "binaryen-intrinsics" "call.without.effects" (func $call-without-effects (param funcref)))
(import "binaryen-intrinsics" "call.without.effects"
diff --git a/test/lit/passes/remove-unused-names-eh.wast b/test/lit/passes/remove-unused-names-eh.wast
index e7a26cbae..7f6e09839 100644
--- a/test/lit/passes/remove-unused-names-eh.wast
+++ b/test/lit/passes/remove-unused-names-eh.wast
@@ -5,7 +5,7 @@
;; CHECK: (tag $tag$0 (param i32))
(tag $tag$0 (param i32))
- ;; CHECK: (func $func0
+ ;; CHECK: (func $func0 (type $none_=>_none)
;; CHECK-NEXT: (try $label$9
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
@@ -52,7 +52,7 @@
)
)
- ;; CHECK: (func $func1
+ ;; CHECK: (func $func1 (type $none_=>_none)
;; CHECK-NEXT: (try
;; CHECK-NEXT: (do
;; CHECK-NEXT: (nop)
diff --git a/test/lit/passes/roundtrip-gc-types.wast b/test/lit/passes/roundtrip-gc-types.wast
index acbfea3a8..7397d08ba 100644
--- a/test/lit/passes/roundtrip-gc-types.wast
+++ b/test/lit/passes/roundtrip-gc-types.wast
@@ -7,21 +7,26 @@
;; types already existed in the store.
(module
- ;; CHECK: (type $A (struct (field (ref $C))))
- ;; NOMNL: (type $A (struct_subtype (field (ref $C)) data))
- (type $A (struct (field (ref $C))))
- ;; CHECK: (type $C (struct (field (mut (ref $B)))))
+ (rec
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $A (struct (field (ref $C))))
+ ;; NOMNL: (type $A (struct (field (ref $C))))
+ (type $A (struct (field (ref $C))))
+ ;; CHECK: (type $B (func (param (ref $A)) (result (ref $B))))
+ ;; NOMNL: (type $C (struct (field (mut (ref $B)))))
- ;; CHECK: (type $B (func (param (ref $A)) (result (ref $B))))
- ;; NOMNL: (type $C (struct_subtype (field (mut (ref $B))) data))
+ ;; NOMNL: (type $B (func (param (ref $A)) (result (ref $B))))
+ (type $B (func (param (ref $A)) (result (ref $B))))
- ;; NOMNL: (type $B (func_subtype (param (ref $A)) (result (ref $B)) func))
- (type $B (func (param (ref $A)) (result (ref $B))))
- (type $C (struct (field (mut (ref $B)))))
- ;; CHECK: (type $D (struct (field (ref $C)) (field (ref $A))))
- ;; NOMNL: (type $D (struct_subtype (field (ref $C)) (field (ref $A)) $A))
- (type $D (struct_subtype (field (ref $C)) (field (ref $A)) $A))
- ;; CHECK: (func $use-types (param $0 (ref $A)) (param $1 (ref $D))
+ ;; CHECK: (type $C (struct (field (mut (ref $B)))))
+ (type $C (struct (field (mut (ref $B)))))
+
+ ;; CHECK: (type $D (struct_subtype (field (ref $C)) (field (ref $A)) $A))
+ ;; NOMNL: (type $D (struct_subtype (field (ref $C)) (field (ref $A)) $A))
+ (type $D (struct_subtype (field (ref $C)) (field (ref $A)) $A))
+ )
+
+ ;; CHECK: (func $use-types (type $ref|$A|_ref|$D|_=>_none) (param $0 (ref $A)) (param $1 (ref $D))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $use-types (type $ref|$A|_ref|$D|_=>_none) (param $0 (ref $A)) (param $1 (ref $D))
diff --git a/test/lit/passes/roundtrip-gc.wast b/test/lit/passes/roundtrip-gc.wast
index 2692b7b99..7a22d7ec3 100644
--- a/test/lit/passes/roundtrip-gc.wast
+++ b/test/lit/passes/roundtrip-gc.wast
@@ -7,7 +7,7 @@
;; CHECK: (export "export" (func $test))
;; NOMNL: (export "export" (func $test))
(export "export" (func $test))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $0 (ref $\7bi32\7d))
;; CHECK-NEXT: (call $help
;; CHECK-NEXT: (block (result (ref $\7bi32\7d))
@@ -46,7 +46,7 @@
)
)
)
- ;; CHECK: (func $help (param $3 (ref $\7bi32\7d)) (param $4 i32)
+ ;; CHECK: (func $help (type $ref|$\7bi32\7d|_i32_=>_none) (param $3 (ref $\7bi32\7d)) (param $4 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $help (type $ref|$\7bi32\7d|_i32_=>_none) (param $3 (ref $\7bi32\7d)) (param $4 i32)
diff --git a/test/lit/passes/roundtrip.wast b/test/lit/passes/roundtrip.wast
index b23819b7b..6b00f2e6d 100644
--- a/test/lit/passes/roundtrip.wast
+++ b/test/lit/passes/roundtrip.wast
@@ -4,7 +4,7 @@
(module
;; CHECK: (type $none (func))
(type $none (func))
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none)
;; CHECK-NEXT: (local $0 (funcref (ref null $none)))
;; CHECK-NEXT: (local $1 funcref)
;; CHECK-NEXT: (local.set $0
diff --git a/test/lit/passes/rse-eh.wast b/test/lit/passes/rse-eh.wast
index 8be0cfa82..f12088d35 100644
--- a/test/lit/passes/rse-eh.wast
+++ b/test/lit/passes/rse-eh.wast
@@ -7,7 +7,7 @@
;; CHECK: (tag $e2 (param))
(tag $e2)
- ;; CHECK: (func $try1
+ ;; CHECK: (func $try1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -35,7 +35,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try2
+ ;; CHECK: (func $try2 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -68,7 +68,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try3
+ ;; CHECK: (func $try3 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -101,12 +101,12 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo)
- ;; CHECK: (func $try4
+ ;; CHECK: (func $try4 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -137,7 +137,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try5
+ ;; CHECK: (func $try5 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -168,7 +168,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $nested-try1
+ ;; CHECK: (func $nested-try1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -216,7 +216,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $nested-try2
+ ;; CHECK: (func $nested-try2 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -263,7 +263,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $nested-try3
+ ;; CHECK: (func $nested-try3 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -314,7 +314,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $nested-catch1
+ ;; CHECK: (func $nested-catch1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -380,7 +380,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $nested-catch2
+ ;; CHECK: (func $nested-catch2 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -453,7 +453,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $catchless-try
+ ;; CHECK: (func $catchless-try (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -482,7 +482,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try-delegate0
+ ;; CHECK: (func $try-delegate0 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
@@ -537,7 +537,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try-delegate1
+ ;; CHECK: (func $try-delegate1 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
@@ -593,7 +593,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try-delegate2
+ ;; CHECK: (func $try-delegate2 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
@@ -653,7 +653,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try-delegate3
+ ;; CHECK: (func $try-delegate3 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
@@ -734,7 +734,7 @@
(local.set $x (i32.const 1))
)
- ;; CHECK: (func $try-delegate4
+ ;; CHECK: (func $try-delegate4 (type $none_=>_none)
;; CHECK-NEXT: (local $x i32)
;; CHECK-NEXT: (try $l0
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/rse-gc.wast b/test/lit/passes/rse-gc.wast
index 71d9baea1..777ddff73 100644
--- a/test/lit/passes/rse-gc.wast
+++ b/test/lit/passes/rse-gc.wast
@@ -2,16 +2,15 @@
;; RUN: wasm-opt %s --rse -all -S -o - | filecheck %s
(module
- ;; CHECK: (type $B (struct (field (ref data))))
-
;; CHECK: (type $A (struct (field dataref)))
(type $A (struct_subtype (field (ref null data)) data))
;; $B is a subtype of $A, and its field has a more refined type (it is non-
;; nullable).
+ ;; CHECK: (type $B (struct_subtype (field (ref data)) $A))
(type $B (struct_subtype (field (ref data)) $A))
- ;; CHECK: (func $test
+ ;; CHECK: (func $test (type $none_=>_none)
;; CHECK-NEXT: (local $single (ref func))
;; CHECK-NEXT: (local $tuple ((ref any) (ref any)))
;; CHECK-NEXT: (nop)
@@ -25,7 +24,7 @@
(local $tuple ((ref any) (ref any)))
)
- ;; CHECK: (func $needs-refinalize (param $b (ref $B)) (result anyref)
+ ;; CHECK: (func $needs-refinalize (type $ref|$B|_=>_anyref) (param $b (ref $B)) (result anyref)
;; CHECK-NEXT: (local $a (ref null $A))
;; CHECK-NEXT: (local.set $a
;; CHECK-NEXT: (local.get $b)
@@ -50,7 +49,7 @@
)
)
- ;; CHECK: (func $pick-refined (param $A (ref null $A)) (param $x i32)
+ ;; CHECK: (func $pick-refined (type $ref?|$A|_i32_=>_none) (param $A (ref null $A)) (param $x i32)
;; CHECK-NEXT: (local $B (ref null $B))
;; CHECK-NEXT: (local.set $B
;; CHECK-NEXT: (ref.cast_static $B
@@ -111,7 +110,7 @@
)
)
- ;; CHECK: (func $pick-refined-nn (param $A (ref $A))
+ ;; CHECK: (func $pick-refined-nn (type $ref|$A|_=>_none) (param $A (ref $A))
;; CHECK-NEXT: (local $B (ref $B))
;; CHECK-NEXT: (local.set $B
;; CHECK-NEXT: (ref.cast_static $B
@@ -142,7 +141,7 @@
)
)
- ;; CHECK: (func $avoid-unrefined (param $A (ref $A))
+ ;; CHECK: (func $avoid-unrefined (type $ref|$A|_=>_none) (param $A (ref $A))
;; CHECK-NEXT: (local $B (ref null $B))
;; CHECK-NEXT: (local.set $B
;; CHECK-NEXT: (ref.cast_static $B
@@ -174,7 +173,7 @@
)
)
- ;; CHECK: (func $pick-refined-earlier (param $A (ref $A))
+ ;; CHECK: (func $pick-refined-earlier (type $ref|$A|_=>_none) (param $A (ref $A))
;; CHECK-NEXT: (local $A2 (ref null $A))
;; CHECK-NEXT: (local.set $A2
;; CHECK-NEXT: (local.get $A)
@@ -201,7 +200,7 @@
)
)
- ;; CHECK: (func $different-choices (param $non-nullable (ref $A))
+ ;; CHECK: (func $different-choices (type $ref|$A|_=>_none) (param $non-nullable (ref $A))
;; CHECK-NEXT: (local $nullable (ref null $A))
;; CHECK-NEXT: (local.set $nullable
;; CHECK-NEXT: (local.get $non-nullable)
diff --git a/test/lit/passes/signature-pruning.wast b/test/lit/passes/signature-pruning.wast
index 4b3cfa0c4..d1bcde7aa 100644
--- a/test/lit/passes/signature-pruning.wast
+++ b/test/lit/passes/signature-pruning.wast
@@ -2,12 +2,12 @@
;; RUN: foreach %s %t wasm-opt --nominal --signature-pruning -all -S -o - | filecheck %s
(module
- ;; CHECK: (type $sig (func_subtype (param i32 f64) func))
+ ;; CHECK: (type $sig (func (param i32 f64)))
(type $sig (func_subtype (param i32) (param i64) (param f32) (param f64) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -67,12 +67,12 @@
)
(module
- ;; CHECK: (type $sig (func_subtype (param i64 f32) func))
+ ;; CHECK: (type $sig (func (param i64 f32)))
(type $sig (func_subtype (param i32) (param i64) (param f32) (param f64) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -131,12 +131,12 @@
)
(module
- ;; CHECK: (type $sig (func_subtype (param i32 i64 f32) func))
+ ;; CHECK: (type $sig (func (param i32 i64 f32)))
(type $sig (func_subtype (param i32) (param i64) (param f32) (param f64) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -207,12 +207,12 @@
;; As above, but with the effects on a call_ref. Once more, we can only optimize
;; away the very last param.
(module
- ;; CHECK: (type $sig (func_subtype (param i32 i64 f32) func))
+ ;; CHECK: (type $sig (func (param i32 i64 f32)))
(type $sig (func_subtype (param i32) (param i64) (param f32) (param f64) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -277,12 +277,12 @@
)
(module
- ;; CHECK: (type $sig (func_subtype func))
+ ;; CHECK: (type $sig (func))
(type $sig (func_subtype (param i32) (param i64) (param f32) (param f64) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -323,12 +323,12 @@
)
(module
- ;; CHECK: (type $sig (func_subtype func))
+ ;; CHECK: (type $sig (func))
(type $sig (func_subtype (param i32) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -369,7 +369,7 @@
)
(module
- ;; CHECK: (type $sig (func_subtype func))
+ ;; CHECK: (type $sig (func))
(type $sig (func_subtype (param i32) func))
(memory 1 1)
@@ -387,7 +387,7 @@
)
(module
- ;; CHECK: (type $sig (func_subtype (param i32) func))
+ ;; CHECK: (type $sig (func (param i32)))
(type $sig (func_subtype (param i32) func))
;; As above, but now an import also uses this signature, which prevents us
@@ -407,7 +407,7 @@
)
(module
- ;; CHECK: (type $sig (func_subtype (param i32) func))
+ ;; CHECK: (type $sig (func (param i32)))
(type $sig (func_subtype (param i32) func))
(memory 1 1)
@@ -437,10 +437,10 @@
)
(module
- ;; CHECK: (type $sig (func_subtype func))
+ ;; CHECK: (type $sig (func))
(type $sig (func_subtype (param i32) func))
- ;; CHECK: (type $sig2 (func_subtype (param i32) func))
+ ;; CHECK: (type $sig2 (func (param i32)))
(type $sig2 (func_subtype (param i32) func))
(memory 1 1)
@@ -471,12 +471,12 @@
)
(module
- ;; CHECK: (type $sig (func_subtype func))
+ ;; CHECK: (type $sig (func))
(type $sig (func_subtype (param i32) func))
(memory 1 1)
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (memory $0 1 1)
@@ -547,7 +547,7 @@
;; The presence of a table prevents us from doing any optimizations.
(table 1 1 anyref)
- ;; CHECK: (type $sig (func_subtype (param i32) func))
+ ;; CHECK: (type $sig (func (param i32)))
(type $sig (func_subtype (param i32) func))
;; CHECK: (table $0 1 1 anyref)
@@ -562,10 +562,10 @@
;; Exports cannot be optimized in any way: we cannot remove parameters from
;; them, and also we cannot apply constant parameter values either.
(module
- ;; CHECK: (type $sig (func_subtype (param i32) func))
+ ;; CHECK: (type $sig (func (param i32)))
(type $sig (func_subtype (param i32) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (export "foo" (func $foo))
@@ -600,9 +600,9 @@
;; *not* have the same type, however: the type should be different nominally
;; even though after the pruning they are identical structurally.
(module
- ;; CHECK: (type $sig1 (func_subtype func))
+ ;; CHECK: (type $sig1 (func))
(type $sig1 (func_subtype (param i32) func))
- ;; CHECK: (type $sig2 (func_subtype func))
+ ;; CHECK: (type $sig2 (func))
(type $sig2 (func_subtype (param f64) func))
;; CHECK: (func $foo1 (type $sig1)
@@ -621,9 +621,9 @@
)
(module
- ;; CHECK: (type $sig-foo (func_subtype func))
+ ;; CHECK: (type $sig-foo (func))
(type $sig-foo (func_subtype (param i32) func))
- ;; CHECK: (type $sig-bar (func_subtype (param i32) func))
+ ;; CHECK: (type $sig-bar (func (param i32)))
(type $sig-bar (func_subtype (param i32) func))
(memory 1 1)
@@ -685,9 +685,9 @@
;; value that we can optimize in the case of $foo (but not $bar, again, as $bar
;; is not always sent a constant value).
(module
- ;; CHECK: (type $sig-foo (func_subtype func))
+ ;; CHECK: (type $sig-foo (func))
(type $sig-foo (func_subtype (param funcref) func))
- ;; CHECK: (type $sig-bar (func_subtype (param funcref) func))
+ ;; CHECK: (type $sig-bar (func (param funcref)))
(type $sig-bar (func_subtype (param funcref) func))
(memory 1 1)
@@ -738,9 +738,9 @@
;; As above, but the values are now ref.nulls. All nulls compare equal, so we
;; can still optimize even though the types differ.
(module
- ;; CHECK: (type $sig-foo (func_subtype func))
+ ;; CHECK: (type $sig-foo (func))
(type $sig-foo (func_subtype (param anyref) func))
- ;; CHECK: (type $sig-bar (func_subtype (param anyref) func))
+ ;; CHECK: (type $sig-bar (func (param anyref)))
(type $sig-bar (func_subtype (param anyref) func))
(memory 1 1)
@@ -788,9 +788,9 @@
)
(module
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $A (struct_subtype data))
+ ;; CHECK: (type $A (struct ))
(type $A (struct_subtype data))
;; CHECK: (func $0 (type $none_=>_none)
;; CHECK-NEXT: (local $0 f32)
@@ -813,11 +813,11 @@
;; Do not prune signatures used in the call.without.effects intrinsic.
(module
- ;; CHECK: (type $i32_funcref_=>_i32 (func_subtype (param i32 funcref) (result i32) func))
+ ;; CHECK: (type $i32_funcref_=>_i32 (func (param i32 funcref) (result i32)))
- ;; CHECK: (type $i32_=>_i32 (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
;; CHECK: (import "binaryen-intrinsics" "call.without.effects" (func $cwe (param i32 funcref) (result i32)))
(import "binaryen-intrinsics" "call.without.effects" (func $cwe (param i32 funcref) (result i32)))
diff --git a/test/lit/passes/signature-refining-isorecursive.wast b/test/lit/passes/signature-refining-isorecursive.wast
index d1fef1c29..e69c64406 100644
--- a/test/lit/passes/signature-refining-isorecursive.wast
+++ b/test/lit/passes/signature-refining-isorecursive.wast
@@ -4,7 +4,7 @@
(module
;; The signature should be refined to a single self-referential type.
- ;; CHECK: (type $refined (func_subtype (param (ref $refined)) (result (ref $refined)) func))
+ ;; CHECK: (type $refined (func (param (ref $refined)) (result (ref $refined))))
(type $refined (func (param (ref $refined)) (result (ref $refined))))
;; CHECK: (elem declare func $foo)
@@ -31,9 +31,9 @@
;; The signatures should be refined to a pair of mutually self-referential types.
;; CHECK: (rec
- ;; CHECK-NEXT: (type $0 (func_subtype (param i32 (ref $0)) (result (ref $1)) func))
+ ;; CHECK-NEXT: (type $0 (func (param i32 (ref $0)) (result (ref $1))))
(type $0 (func (param i32 funcref) (result funcref)))
- ;; CHECK: (type $1 (func_subtype (param f32 (ref $1)) (result (ref $0)) func))
+ ;; CHECK: (type $1 (func (param f32 (ref $1)) (result (ref $0))))
(type $1 (func (param f32 funcref) (result funcref)))
@@ -84,9 +84,9 @@
(rec
;; CHECK: (rec
- ;; CHECK-NEXT: (type $0 (func_subtype (param (ref $0)) func))
+ ;; CHECK-NEXT: (type $0 (func (param (ref $0))))
(type $0 (func (param funcref)))
- ;; CHECK: (type $1 (func_subtype (param (ref $0)) func))
+ ;; CHECK: (type $1 (func (param (ref $0))))
(type $1 (func (param funcref)))
)
@@ -120,14 +120,14 @@
;; another type that refers to them.
;; CHECK: (rec
- ;; CHECK-NEXT: (type $1 (func_subtype (param f32 (ref $1)) (result (ref $0)) func))
+ ;; CHECK-NEXT: (type $1 (func (param f32 (ref $1)) (result (ref $0))))
- ;; CHECK: (type $0 (func_subtype (param i32 (ref $0)) (result (ref $1)) func))
+ ;; CHECK: (type $0 (func (param i32 (ref $0)) (result (ref $1))))
(type $0 (func (param i32 funcref) (result funcref)))
(type $1 (func (param f32 funcref) (result funcref)))
- ;; CHECK: (type $2 (func_subtype (param (ref $0)) (result (ref $1)) func))
+ ;; CHECK: (type $2 (func (param (ref $0)) (result (ref $1))))
(type $2 (func (param funcref) (result funcref)))
diff --git a/test/lit/passes/signature-refining.wast b/test/lit/passes/signature-refining.wast
index 8313a75f9..f254a2f63 100644
--- a/test/lit/passes/signature-refining.wast
+++ b/test/lit/passes/signature-refining.wast
@@ -7,13 +7,13 @@
;; heap type's definition as well as the types of the parameters as printed
;; on the function (which are derived from the heap type).
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
- ;; CHECK: (type $sig (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct))))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $sig) (param $x (ref $struct))
;; CHECK-NEXT: (nop)
@@ -36,14 +36,14 @@
(module
;; As above, but the call is via call_ref.
- ;; CHECK: (type $sig (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct))))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -72,14 +72,14 @@
;; call uses a nullable $struct, the other a non-nullable dataref, so the LUB
;; is a nullable dataref.
- ;; CHECK: (type $sig (func_subtype (param dataref) func))
+ ;; CHECK: (type $sig (func (param dataref)))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -120,12 +120,12 @@
;; Multiple functions with the same heap type. Again, the LUB is in the
;; middle, this time the parent $struct and not a subtype.
- ;; CHECK: (type $sig (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct))))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
;; CHECK: (type $struct-sub1 (struct_subtype $struct))
(type $struct-sub1 (struct_subtype $struct))
@@ -169,13 +169,13 @@
;; As above, but now only one of the functions is called. The other is still
;; updated, though, as they share a heap type.
- ;; CHECK: (type $sig (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct))))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func-1 (type $sig) (param $x (ref $struct))
;; CHECK-NEXT: (nop)
@@ -205,13 +205,13 @@
;; Define a field in the struct of the signature type that will be updated,
;; to check for proper validation after the update.
- ;; CHECK: (type $sig (func_subtype (param (ref $struct) (ref $sig)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct) (ref $sig))))
(type $sig (func_subtype (param anyref funcref) func))
- ;; CHECK: (type $struct (struct_subtype (field (ref $sig)) data))
+ ;; CHECK: (type $struct (struct (field (ref $sig))))
(type $struct (struct_subtype (field (ref $sig)) data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -268,14 +268,14 @@
;; An unreachable value does not prevent optimization: we will update the
;; param to be $struct.
- ;; CHECK: (type $sig (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref $struct))))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -311,10 +311,10 @@
(type $struct (struct_subtype data))
- ;; CHECK: (type $sig (func_subtype (param anyref) func))
+ ;; CHECK: (type $sig (func (param anyref)))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func)
@@ -344,7 +344,7 @@
(type $struct (struct_subtype data))
- ;; CHECK: (type $sig (func_subtype (param anyref) func))
+ ;; CHECK: (type $sig (func (param anyref)))
(type $sig (func_subtype (param anyref) func))
;; CHECK: (func $func (type $sig) (param $x anyref)
@@ -356,16 +356,16 @@
(module
;; Test multiple fields in multiple types.
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
- ;; CHECK: (type $sig-2 (func_subtype (param eqref (ref $struct)) func))
+ ;; CHECK: (type $sig-2 (func (param eqref (ref $struct))))
- ;; CHECK: (type $sig-1 (func_subtype (param dataref anyref) func))
+ ;; CHECK: (type $sig-1 (func (param dataref anyref)))
(type $sig-1 (func_subtype (param anyref) (param anyref) func))
(type $sig-2 (func_subtype (param anyref) (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func-2)
@@ -431,12 +431,12 @@
(module
;; The presence of a table prevents us from doing any optimizations.
- ;; CHECK: (type $sig (func_subtype (param anyref) func))
+ ;; CHECK: (type $sig (func (param anyref)))
(type $sig (func_subtype (param anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(table 1 1 anyref)
@@ -465,14 +465,14 @@
;; Pass a null in one call to the function. The null can be updated which
;; allows us to refine (but the new type must be nullable).
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
- ;; CHECK: (type $sig (func_subtype (param (ref null $struct)) func))
+ ;; CHECK: (type $sig (func (param (ref null $struct))))
(type $sig (func_subtype (param anyref) func))
(type $struct (struct_subtype data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (func $func (type $sig) (param $x (ref null $struct))
;; CHECK-NEXT: (nop)
@@ -499,23 +499,23 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
;; This signature has a single function using it, which returns a more
;; refined type, and we can refine to that.
- ;; CHECK: (type $sig-can-refine (func_subtype (result (ref $struct)) func))
+ ;; CHECK: (type $sig-can-refine (func (result (ref $struct))))
(type $sig-can-refine (func_subtype (result anyref) func))
;; Also a single function, but no refinement is possible.
- ;; CHECK: (type $sig-cannot-refine (func_subtype (result anyref) func))
+ ;; CHECK: (type $sig-cannot-refine (func (result anyref)))
(type $sig-cannot-refine (func_subtype (result anyref) func))
;; The single function never returns, so no refinement is possible.
- ;; CHECK: (type $sig-unreachable (func_subtype (result anyref) func))
+ ;; CHECK: (type $sig-unreachable (func (result anyref)))
(type $sig-unreachable (func_subtype (result anyref) func))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (elem declare func $func-can-refine)
@@ -583,9 +583,9 @@
)
(module
- ;; CHECK: (type $sig (func_subtype (result (ref null $struct)) func))
+ ;; CHECK: (type $sig (func (result (ref null $struct))))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
;; This signature has multiple functions using it, and some of them have nulls
@@ -635,11 +635,11 @@
;; Exports prevent optimization, so $func's type will not change here.
(module
- ;; CHECK: (type $sig (func_subtype (param anyref) func))
+ ;; CHECK: (type $sig (func (param anyref)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
(type $sig (func_subtype (param anyref) func))
@@ -665,7 +665,7 @@
)
(module
- ;; CHECK: (type $A (func_subtype (param i32) func))
+ ;; CHECK: (type $A (func (param i32)))
(type $A (func_subtype (param i32) func))
;; CHECK: (type $B (func_subtype (param i32) $A))
(type $B (func_subtype (param i32) $A))
@@ -683,9 +683,9 @@
)
(module
- ;; CHECK: (type $ref|${}|_i32_=>_none (func_subtype (param (ref ${}) i32) func))
+ ;; CHECK: (type $ref|${}|_i32_=>_none (func (param (ref ${}) i32)))
- ;; CHECK: (type ${} (struct_subtype data))
+ ;; CHECK: (type ${} (struct ))
(type ${} (struct_subtype data))
;; CHECK: (func $foo (type $ref|${}|_i32_=>_none) (param $ref (ref ${})) (param $i32 i32)
@@ -731,11 +731,11 @@
;; Do not modify the types used on imported functions (until the spec and VM
;; support becomes stable).
(module
- ;; CHECK: (type $dataref_=>_none (func_subtype (param dataref) func))
+ ;; CHECK: (type $dataref_=>_none (func (param dataref)))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $struct (struct_subtype data))
+ ;; CHECK: (type $struct (struct ))
(type $struct (struct_subtype data))
;; CHECK: (import "a" "b" (func $import (param dataref)))
diff --git a/test/lit/passes/signature-refining_gto.wat b/test/lit/passes/signature-refining_gto.wat
index 183ce7d54..5ce8aa576 100644
--- a/test/lit/passes/signature-refining_gto.wat
+++ b/test/lit/passes/signature-refining_gto.wat
@@ -3,11 +3,11 @@
(module
;; The type $A should not be emitted at all (see below).
;; CHECK-NOT: (type $A
- (type $A (struct_subtype (field (mut (ref null $A))) data))
+ (type $A (struct (field (mut (ref null $A)))))
- ;; CHECK: (type $ref|none|_=>_none (func_subtype (param (ref none)) func))
+ ;; CHECK: (type $ref|none|_=>_none (func (param (ref none))))
- ;; CHECK: (type $funcref_i32_=>_none (func_subtype (param funcref i32) func))
+ ;; CHECK: (type $funcref_i32_=>_none (func (param funcref i32)))
;; CHECK: (func $struct.get (type $ref|none|_=>_none) (param $0 (ref none))
;; CHECK-NEXT: (drop
diff --git a/test/lit/passes/simplify-locals-eh.wast b/test/lit/passes/simplify-locals-eh.wast
index 9eb8680b0..38b9d1af7 100644
--- a/test/lit/passes/simplify-locals-eh.wast
+++ b/test/lit/passes/simplify-locals-eh.wast
@@ -4,11 +4,11 @@
(module
;; CHECK: (tag $e-i32 (param i32))
(tag $e-i32 (param i32))
- ;; CHECK: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK: (func $foo (type $i32_i32_=>_none) (param $0 i32) (param $1 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo (param i32 i32))
- ;; CHECK: (func $pop-cannot-be-sinked
+ ;; CHECK: (func $pop-cannot-be-sinked (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -40,7 +40,7 @@
)
)
- ;; CHECK: (func $pop-within-catch-can-be-sinked
+ ;; CHECK: (func $pop-within-catch-can-be-sinked (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -83,11 +83,11 @@
)
)
- ;; CHECK: (func $bar (result i32)
+ ;; CHECK: (func $bar (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
(func $bar (result i32) (i32.const 3))
- ;; CHECK: (func $call-cannot-be-sinked-into-try
+ ;; CHECK: (func $call-cannot-be-sinked-into-try (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local.set $0
;; CHECK-NEXT: (call $bar)
@@ -121,7 +121,7 @@
)
)
- ;; CHECK: (func $non-call-can-be-sinked-into-try
+ ;; CHECK: (func $non-call-can-be-sinked-into-try (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (try $try
diff --git a/test/lit/passes/simplify-locals-gc-nn.wast b/test/lit/passes/simplify-locals-gc-nn.wast
index c7e4b6373..4d536bd1f 100644
--- a/test/lit/passes/simplify-locals-gc-nn.wast
+++ b/test/lit/passes/simplify-locals-gc-nn.wast
@@ -2,7 +2,7 @@
;; RUN: wasm-opt %s --simplify-locals -all -S -o - | filecheck %s
(module
- ;; CHECK: (func $test-nn
+ ;; CHECK: (func $test-nn (type $none_=>_none)
;; CHECK-NEXT: (local $nn anyref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (try $try
@@ -49,7 +49,7 @@
)
)
- ;; CHECK: (func $test-nullable
+ ;; CHECK: (func $test-nullable (type $none_=>_none)
;; CHECK-NEXT: (local $nullable anyref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (try $try
diff --git a/test/lit/passes/simplify-locals-gc-validation.wast b/test/lit/passes/simplify-locals-gc-validation.wast
index 0587303c2..f21d30fcb 100644
--- a/test/lit/passes/simplify-locals-gc-validation.wast
+++ b/test/lit/passes/simplify-locals-gc-validation.wast
@@ -5,7 +5,7 @@
;; a local.get until the end of the current block.
(module
- ;; CHECK: (func $test-nn (param $x (ref any))
+ ;; CHECK: (func $test-nn (type $ref|any|_=>_none) (param $x (ref any))
;; CHECK-NEXT: (local $nn anyref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (block $inner
diff --git a/test/lit/passes/simplify-locals-gc.wast b/test/lit/passes/simplify-locals-gc.wast
index 35f90387d..84e20eecb 100644
--- a/test/lit/passes/simplify-locals-gc.wast
+++ b/test/lit/passes/simplify-locals-gc.wast
@@ -5,20 +5,20 @@
;; RUN: | filecheck %s --check-prefix=NOMNL
(module
- ;; CHECK: (type $B (struct (field (ref data))))
+ ;; CHECK: (type $A (struct (field dataref)))
+
+ ;; CHECK: (type $B (struct_subtype (field (ref data)) $A))
;; CHECK: (type $struct (struct (field (mut i32))))
- ;; NOMNL: (type $A (struct_subtype (field dataref) data))
+ ;; NOMNL: (type $A (struct (field dataref)))
;; NOMNL: (type $B (struct_subtype (field (ref data)) $A))
- ;; NOMNL: (type $struct (struct_subtype (field (mut i32)) data))
+ ;; NOMNL: (type $struct (struct (field (mut i32))))
(type $struct (struct (field (mut i32))))
- ;; CHECK: (type $A (struct (field dataref)))
-
;; CHECK: (type $struct-immutable (struct (field i32)))
- ;; NOMNL: (type $struct-immutable (struct_subtype (field i32) data))
+ ;; NOMNL: (type $struct-immutable (struct (field i32)))
(type $struct-immutable (struct (field i32)))
(type $A (struct_subtype (field (ref null data)) data))
@@ -28,7 +28,7 @@
(type $B (struct_subtype (field (ref data)) $A))
;; Writes to heap objects cannot be reordered with reads.
- ;; CHECK: (func $no-reorder-past-write (param $x (ref $struct)) (result i32)
+ ;; CHECK: (func $no-reorder-past-write (type $ref|$struct|_=>_i32) (param $x (ref $struct)) (result i32)
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (struct.get $struct 0
@@ -68,7 +68,7 @@
(local.get $temp)
)
- ;; CHECK: (func $reorder-past-write-if-immutable (param $x (ref $struct)) (param $y (ref $struct-immutable)) (result i32)
+ ;; CHECK: (func $reorder-past-write-if-immutable (type $ref|$struct|_ref|$struct-immutable|_=>_i32) (param $x (ref $struct)) (param $y (ref $struct-immutable)) (result i32)
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (struct.set $struct 0
@@ -104,7 +104,7 @@
(local.get $temp)
)
- ;; CHECK: (func $unreachable-struct.get (param $x (ref $struct)) (param $y (ref $struct-immutable)) (result i32)
+ ;; CHECK: (func $unreachable-struct.get (type $ref|$struct|_ref|$struct-immutable|_=>_i32) (param $x (ref $struct)) (param $y (ref $struct-immutable)) (result i32)
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (local.tee $temp
;; CHECK-NEXT: (block ;; (replaces something unreachable we can't emit)
@@ -154,7 +154,7 @@
(local.get $temp)
)
- ;; CHECK: (func $no-block-values-if-br_on
+ ;; CHECK: (func $no-block-values-if-br_on (type $none_=>_none)
;; CHECK-NEXT: (local $temp anyref)
;; CHECK-NEXT: (block $block
;; CHECK-NEXT: (drop
@@ -231,7 +231,7 @@
)
)
- ;; CHECK: (func $if-nnl
+ ;; CHECK: (func $if-nnl (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.const 1)
@@ -298,7 +298,7 @@
)
)
- ;; CHECK: (func $if-nnl-previous-set
+ ;; CHECK: (func $if-nnl-previous-set (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $if-nnl)
@@ -361,7 +361,7 @@
)
)
- ;; CHECK: (func $helper (param $ref (ref func))
+ ;; CHECK: (func $helper (type $ref|func|_=>_none) (param $ref (ref func))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $helper (type $ref|func|_=>_none) (param $ref (ref func))
@@ -370,7 +370,7 @@
(func $helper (param $ref (ref func))
)
- ;; CHECK: (func $needs-refinalize (param $b (ref $B)) (result anyref)
+ ;; CHECK: (func $needs-refinalize (type $ref|$B|_=>_anyref) (param $b (ref $B)) (result anyref)
;; CHECK-NEXT: (local $a (ref null $A))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (struct.get $B 0
@@ -397,7 +397,7 @@
)
)
- ;; CHECK: (func $call-vs-mutable-read (param $0 (ref $struct)) (result i32)
+ ;; CHECK: (func $call-vs-mutable-read (type $ref|$struct|_=>_i32) (param $0 (ref $struct)) (result i32)
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (call $side-effect)
@@ -438,7 +438,7 @@
(local.get $temp)
)
- ;; CHECK: (func $side-effect (result i32)
+ ;; CHECK: (func $side-effect (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $side-effect (type $none_=>_i32) (result i32)
@@ -449,7 +449,7 @@
(unreachable)
)
- ;; CHECK: (func $pick-refined (param $nn-any (ref any)) (result anyref)
+ ;; CHECK: (func $pick-refined (type $ref|any|_=>_anyref) (param $nn-any (ref any)) (result anyref)
;; CHECK-NEXT: (local $any anyref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (call $use-any
@@ -495,7 +495,7 @@
(local.get $any)
)
- ;; CHECK: (func $pick-casted (param $any anyref) (result anyref)
+ ;; CHECK: (func $pick-casted (type $anyref_=>_anyref) (param $any anyref) (result anyref)
;; CHECK-NEXT: (local $nn-any (ref any))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (call $use-any
@@ -549,7 +549,7 @@
(local.get $any)
)
- ;; CHECK: (func $pick-fallthrough (param $x i32)
+ ;; CHECK: (func $pick-fallthrough (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $t i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
@@ -593,7 +593,7 @@
)
)
- ;; CHECK: (func $ignore-unrefined (param $A (ref $A))
+ ;; CHECK: (func $ignore-unrefined (type $ref|$A|_=>_none) (param $A (ref $A))
;; CHECK-NEXT: (local $B (ref null $B))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
@@ -683,7 +683,7 @@
)
)
- ;; CHECK: (func $use-nn-any (param $nn-any (ref any))
+ ;; CHECK: (func $use-nn-any (type $ref|any|_=>_none) (param $nn-any (ref any))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $use-nn-any (type $ref|any|_=>_none) (param $nn-any (ref any))
@@ -693,7 +693,7 @@
;; Helper function for the above.
)
- ;; CHECK: (func $use-any (param $any anyref)
+ ;; CHECK: (func $use-any (type $anyref_=>_none) (param $any anyref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
;; NOMNL: (func $use-any (type $anyref_=>_none) (param $any anyref)
@@ -703,7 +703,7 @@
;; Helper function for the above.
)
- ;; CHECK: (func $remove-tee-refinalize (param $a (ref null $A)) (param $b (ref null $B)) (result dataref)
+ ;; CHECK: (func $remove-tee-refinalize (type $ref?|$A|_ref?|$B|_=>_dataref) (param $a (ref null $A)) (param $b (ref null $B)) (result dataref)
;; CHECK-NEXT: (struct.get $B 0
;; CHECK-NEXT: (local.get $b)
;; CHECK-NEXT: )
diff --git a/test/lit/passes/simplify-locals-strings.wast b/test/lit/passes/simplify-locals-strings.wast
index 1dd28efa5..176d6fbb8 100644
--- a/test/lit/passes/simplify-locals-strings.wast
+++ b/test/lit/passes/simplify-locals-strings.wast
@@ -10,7 +10,7 @@
;; CHECK: (type $array16 (array (mut i16)))
(type $array16 (array_subtype (mut i16) data))
- ;; CHECK: (func $no-new-past-store
+ ;; CHECK: (func $no-new-past-store (type $none_=>_none)
;; CHECK-NEXT: (local $temp stringref)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (string.new_wtf8 utf8
@@ -122,7 +122,7 @@
)
)
- ;; CHECK: (func $yes-new-past-store
+ ;; CHECK: (func $yes-new-past-store (type $none_=>_none)
;; CHECK-NEXT: (local $temp stringref)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (drop
@@ -156,7 +156,7 @@
)
)
- ;; CHECK: (func $no-new-past-store-gc (param $array (ref $array)) (param $array16 (ref $array16))
+ ;; CHECK: (func $no-new-past-store-gc (type $ref|$array|_ref|$array16|_=>_none) (param $array (ref $array)) (param $array16 (ref $array16))
;; CHECK-NEXT: (local $temp stringref)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (string.new_wtf8_array utf8
@@ -284,7 +284,7 @@
)
)
- ;; CHECK: (func $no-load-past-encode (param $ref stringref)
+ ;; CHECK: (func $no-load-past-encode (type $stringref_=>_none) (param $ref stringref)
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (i32.load
@@ -376,7 +376,7 @@
)
)
- ;; CHECK: (func $no-load-past-encode-gc (param $ref stringref) (param $array (ref $array)) (param $array16 (ref $array16))
+ ;; CHECK: (func $no-load-past-encode-gc (type $stringref_ref|$array|_ref|$array16|_=>_none) (param $ref stringref) (param $array (ref $array)) (param $array16 (ref $array16))
;; CHECK-NEXT: (local $temp i32)
;; CHECK-NEXT: (local.set $temp
;; CHECK-NEXT: (array.get_u $array
@@ -481,7 +481,7 @@
)
)
- ;; CHECK: (func $no-iteration-past-each-other (param $iter stringview_iter)
+ ;; CHECK: (func $no-iteration-past-each-other (type $stringview_iter_=>_none) (param $iter stringview_iter)
;; CHECK-NEXT: (local $i32 i32)
;; CHECK-NEXT: (local.set $i32
;; CHECK-NEXT: (stringview_iter.next
diff --git a/test/lit/passes/ssa-gc-nn-locals.wast b/test/lit/passes/ssa-gc-nn-locals.wast
index 57cb43118..38cdbabed 100644
--- a/test/lit/passes/ssa-gc-nn-locals.wast
+++ b/test/lit/passes/ssa-gc-nn-locals.wast
@@ -4,7 +4,7 @@
;; RUN: wasm-opt %s -all --ssa --enable-gc-nn-locals -g --roundtrip -S -o - | filecheck %s
(module
- ;; CHECK: (func $nn-locals
+ ;; CHECK: (func $nn-locals (type $none_=>_none)
;; CHECK-NEXT: (local $x (ref func))
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (ref.func $nn-locals)
diff --git a/test/lit/passes/ssa.wast b/test/lit/passes/ssa.wast
index 420761e40..ed5b94f7b 100644
--- a/test/lit/passes/ssa.wast
+++ b/test/lit/passes/ssa.wast
@@ -2,12 +2,12 @@
;; RUN: wasm-opt %s -all --ssa -S -o - | filecheck %s
(module
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $foo)
- ;; CHECK: (func $bar (param $x (ref func))
+ ;; CHECK: (func $bar (type $ref|func|_=>_none) (param $x (ref func))
;; CHECK-NEXT: (local $1 (ref func))
;; CHECK-NEXT: (local $2 (ref func))
;; CHECK-NEXT: (local.set $1
diff --git a/test/lit/passes/stack-ir-eh.wast b/test/lit/passes/stack-ir-eh.wast
index b9e44174d..71064f512 100644
--- a/test/lit/passes/stack-ir-eh.wast
+++ b/test/lit/passes/stack-ir-eh.wast
@@ -6,7 +6,7 @@
;; CHECK: (tag $e0 (param i32))
(tag $e0 (param i32))
- ;; CHECK: (func $eh
+ ;; CHECK: (func $eh (type $none_=>_none)
;; CHECK-NEXT: try $l0
;; CHECK-NEXT: i32.const 0
;; CHECK-NEXT: throw $e0
diff --git a/test/lit/passes/stack-ir-roundtrip-eh.wast b/test/lit/passes/stack-ir-roundtrip-eh.wast
index 790462cb9..5521e2232 100644
--- a/test/lit/passes/stack-ir-roundtrip-eh.wast
+++ b/test/lit/passes/stack-ir-roundtrip-eh.wast
@@ -4,7 +4,7 @@
(module
;; CHECK: (tag $tag (param i32))
(tag $tag (param i32))
- ;; CHECK: (func $delegate-child
+ ;; CHECK: (func $delegate-child (type $none_=>_none)
;; CHECK-NEXT: (try $label$9
;; CHECK-NEXT: (do
;; CHECK-NEXT: (try $label$7
diff --git a/test/lit/passes/type-refining-isorecursive.wast b/test/lit/passes/type-refining-isorecursive.wast
index 9df686154..3ede5146c 100644
--- a/test/lit/passes/type-refining-isorecursive.wast
+++ b/test/lit/passes/type-refining-isorecursive.wast
@@ -5,14 +5,14 @@
;; The types should be refined to a set of three mutually recursive types.
;; CHECK: (rec
- ;; CHECK-NEXT: (type $0 (struct_subtype (field anyref) (field (ref $1)) data))
+ ;; CHECK-NEXT: (type $0 (struct (field anyref) (field (ref $1))))
(type $0 (struct_subtype (ref null any) anyref data))
- ;; CHECK: (type $1 (struct_subtype (field eqref) (field (ref $2)) data))
+ ;; CHECK: (type $1 (struct (field eqref) (field (ref $2))))
(type $1 (struct_subtype (ref null eq) anyref data))
- ;; CHECK: (type $2 (struct_subtype (field i31ref) (field (ref $0)) data))
+ ;; CHECK: (type $2 (struct (field i31ref) (field (ref $0))))
(type $2 (struct_subtype (ref null i31) anyref data))
- ;; CHECK: (type $ref|$0|_ref|$1|_ref|$2|_=>_none (func_subtype (param (ref $0) (ref $1) (ref $2)) func))
+ ;; CHECK: (type $ref|$0|_ref|$1|_ref|$2|_=>_none (func (param (ref $0) (ref $1) (ref $2))))
;; CHECK: (func $foo (type $ref|$0|_ref|$1|_ref|$2|_=>_none) (param $x (ref $0)) (param $y (ref $1)) (param $z (ref $2))
;; CHECK-NEXT: (drop
@@ -62,17 +62,17 @@
;; correctly.
;; CHECK: (rec
- ;; CHECK-NEXT: (type $all (struct_subtype (field i32) (field (ref $0)) (field (ref $1)) (field (ref $2)) data))
+ ;; CHECK-NEXT: (type $all (struct (field i32) (field (ref $0)) (field (ref $1)) (field (ref $2))))
(type $all (struct_subtype i32 anyref anyref anyref data))
- ;; CHECK: (type $0 (struct_subtype (field anyref) (field (ref null $all)) (field (ref $0)) data))
+ ;; CHECK: (type $0 (struct (field anyref) (field (ref null $all)) (field (ref $0))))
(type $0 (struct_subtype (ref null any) anyref anyref data))
;; CHECK: (type $1 (struct_subtype (field eqref) (field (ref null $all)) (field (ref $0)) $0))
(type $1 (struct_subtype (ref null eq) anyref anyref $0))
;; CHECK: (type $2 (struct_subtype (field i31ref) (field (ref null $all)) (field (ref $0)) $1))
(type $2 (struct_subtype (ref null i31) anyref anyref $1))
- ;; CHECK: (type $ref|$0|_ref|$1|_ref|$2|_=>_none (func_subtype (param (ref $0) (ref $1) (ref $2)) func))
+ ;; CHECK: (type $ref|$0|_ref|$1|_ref|$2|_=>_none (func (param (ref $0) (ref $1) (ref $2))))
;; CHECK: (func $foo (type $ref|$0|_ref|$1|_ref|$2|_=>_none) (param $x (ref $0)) (param $y (ref $1)) (param $z (ref $2))
;; CHECK-NEXT: (local $all (ref null $all))
diff --git a/test/lit/passes/type-refining.wast b/test/lit/passes/type-refining.wast
index f578e3416..082f16bfb 100644
--- a/test/lit/passes/type-refining.wast
+++ b/test/lit/passes/type-refining.wast
@@ -5,10 +5,10 @@
;; A struct with three fields. The first will have no writes, the second one
;; write of the same type, and the last a write of a subtype, which will allow
;; us to specialize that one.
- ;; CHECK: (type $struct (struct_subtype (field (mut anyref)) (field (mut anyref)) (field (mut (ref i31))) data))
+ ;; CHECK: (type $struct (struct (field (mut anyref)) (field (mut anyref)) (field (mut (ref i31)))))
(type $struct (struct_subtype (field (mut anyref)) (field (mut anyref)) (field (mut anyref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (struct.set $struct 1
@@ -51,10 +51,10 @@
;; must keep the type nullable, unlike in the previous module, due to the
;; default value being null.
- ;; CHECK: (type $struct (struct_subtype (field (mut i31ref)) data))
+ ;; CHECK: (type $struct (struct (field (mut i31ref))))
(type $struct (struct_subtype (field (mut anyref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (drop
@@ -84,10 +84,10 @@
;; that we do so in all three types, not just the parent to which we write
;; (the children have no writes, but must still be updated).
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
- ;; CHECK: (type $ref|$struct|_ref|$child-A|_ref|$child-B|_=>_none (func_subtype (param (ref $struct) (ref $child-A) (ref $child-B)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child-A|_ref|$child-B|_=>_none (func (param (ref $struct) (ref $child-A) (ref $child-B))))
;; CHECK: (type $child-A (struct_subtype (field (mut (ref $struct))) $struct))
(type $child-A (struct_subtype (field (mut dataref)) $struct))
@@ -121,16 +121,16 @@
;; As above, but all writes are of $child-A, which allows more optimization
;; up to that type.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $child-A))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $child-A)))))
;; CHECK: (type $child-A (struct_subtype (field (mut (ref $child-A))) $struct))
(type $child-A (struct_subtype (field (mut dataref)) $struct))
(type $struct (struct_subtype (field (mut dataref)) data))
- ;; CHECK: (type $ref|$struct|_ref|$child-A|_=>_none (func_subtype (param (ref $struct) (ref $child-A)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child-A|_=>_none (func (param (ref $struct) (ref $child-A))))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
;; CHECK: (type $child-B (struct_subtype (field (mut (ref $child-A))) $struct))
(type $child-B (struct_subtype (field (mut dataref)) $struct))
@@ -173,13 +173,13 @@
;; child prevents specialization even in the parent and we only improve up to
;; $struct but not to $child.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref $struct))) $struct))
(type $child (struct_subtype (field (mut dataref)) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (struct.set $struct 0
@@ -206,14 +206,14 @@
(module
;; As above, but both writes are of $child, so we can optimize.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $child))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $child)))))
;; CHECK: (type $child (struct_subtype (field (mut (ref $child))) $struct))
(type $child (struct_subtype (field (mut dataref)) $struct))
(type $struct (struct_subtype (field (mut dataref)) data))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (struct.set $struct 0
@@ -243,13 +243,13 @@
;; info, however, we can't make the parent field more specific than the
;; child's.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref $struct))) $struct))
(type $child (struct_subtype (field (mut dataref)) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (drop
@@ -287,13 +287,13 @@
;; imply the fields are mutable, which limits optimization, see the next
;; testcase after this.)
- ;; CHECK: (type $struct (struct_subtype (field (ref $struct)) data))
+ ;; CHECK: (type $struct (struct (field (ref $struct))))
(type $struct (struct_subtype (field dataref) data))
;; CHECK: (type $child (struct_subtype (field (ref $child)) $struct))
(type $child (struct_subtype (field dataref) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (drop
@@ -326,13 +326,13 @@
;; different types in this case, and both will become $struct (still an
;; improvement!)
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref $struct))) $struct))
(type $child (struct_subtype (field (mut dataref)) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (drop
@@ -365,13 +365,13 @@
;; that case there is nothing stopping us from specializing that new field
;; to $child.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref $struct))) (field (mut (ref $child))) $struct))
(type $child (struct_subtype (field (mut dataref)) (field (mut dataref)) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $work (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (drop
@@ -405,10 +405,10 @@
;; A copy of a field does not prevent optimization (even though it assigns
;; the old type).
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref $struct)))))
(type $struct (struct_subtype (field (mut dataref)) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (struct.set $struct 0
@@ -437,14 +437,14 @@
)
(module
- ;; CHECK: (type $X (struct_subtype data))
+ ;; CHECK: (type $X (struct ))
;; CHECK: (type $Y (struct_subtype $X))
(type $Y (struct_subtype $X))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $A (struct_subtype (field (ref $Y)) data))
+ ;; CHECK: (type $A (struct (field (ref $Y))))
;; CHECK: (type $C (struct_subtype (field (ref $Y)) $A))
(type $C (struct_subtype (field (ref $X)) $A))
@@ -488,12 +488,12 @@
;; As above, but remove the struct.new to $B, which means $A, $B, $C all have
;; no writes to them. There are no optimizations to do here.
- ;; CHECK: (type $X (struct_subtype data))
+ ;; CHECK: (type $X (struct ))
(type $X (struct_subtype data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $A (struct_subtype (field (ref $X)) data))
+ ;; CHECK: (type $A (struct (field (ref $X))))
;; CHECK: (type $C (struct_subtype (field (ref $X)) $A))
(type $C (struct_subtype (field (ref $X)) $A))
@@ -521,11 +521,11 @@
)
(module
- ;; CHECK: (type $X (struct_subtype data))
+ ;; CHECK: (type $X (struct ))
(type $X (struct_subtype data))
- ;; CHECK: (type $none_=>_none (func_subtype func))
+ ;; CHECK: (type $none_=>_none (func))
- ;; CHECK: (type $A (struct_subtype (field (ref $X)) data))
+ ;; CHECK: (type $A (struct (field (ref $X))))
;; CHECK: (type $B (struct_subtype (field (ref $Y)) $A))
(type $B (struct_subtype (field (ref $Y)) $A))
@@ -559,10 +559,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $update-null (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (struct.set $struct 0
@@ -593,12 +593,12 @@
;; As above, but now the null is in a child. The result should be the same:
;; refine the field to nullable $struct.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref null $struct))) $struct))
(type $child (struct_subtype (field (mut (ref null data))) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $update-null (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (struct.set $struct 0
@@ -625,12 +625,12 @@
(module
;; As above, but now the null is in a parent. The result should be the same.
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref null $struct))) $struct))
(type $child (struct_subtype (field (mut (ref null data))) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $update-null (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (struct.set $struct 0
@@ -655,10 +655,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut dataref)) data))
+ ;; CHECK: (type $struct (struct (field (mut dataref))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (drop
@@ -675,10 +675,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (drop
@@ -703,10 +703,10 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) data))
- ;; CHECK: (type $ref|$struct|_=>_none (func_subtype (param (ref $struct)) func))
+ ;; CHECK: (type $ref|$struct|_=>_none (func (param (ref $struct))))
;; CHECK: (func $work (type $ref|$struct|_=>_none) (param $struct (ref $struct))
;; CHECK-NEXT: (drop
@@ -735,13 +735,13 @@
)
(module
- ;; CHECK: (type $struct (struct_subtype (field (mut (ref null $child))) (field (mut (ref null $struct))) data))
+ ;; CHECK: (type $struct (struct (field (mut (ref null $child))) (field (mut (ref null $struct)))))
(type $struct (struct_subtype (field (mut (ref null data))) (field (mut (ref null data))) data))
;; CHECK: (type $child (struct_subtype (field (mut (ref null $child))) (field (mut (ref null $struct))) $struct))
(type $child (struct_subtype (field (mut (ref null data))) (field (mut (ref null data))) $struct))
- ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func_subtype (param (ref $struct) (ref $child)) func))
+ ;; CHECK: (type $ref|$struct|_ref|$child|_=>_none (func (param (ref $struct) (ref $child))))
;; CHECK: (func $update-null (type $ref|$struct|_ref|$child|_=>_none) (param $struct (ref $struct)) (param $child (ref $child))
;; CHECK-NEXT: (drop
@@ -790,14 +790,14 @@
;; Root-Outer[Root-Inner] -> Leaf1-Outer[Leaf1-Inner]
;; -> Leaf2-Outer[Leaf2-Inner]
- ;; CHECK: (type $Root-Inner (struct_subtype data))
+ ;; CHECK: (type $Root-Inner (struct ))
;; CHECK: (type $Leaf2-Inner (struct_subtype $Root-Inner))
(type $Leaf2-Inner (struct_subtype $Root-Inner))
- ;; CHECK: (type $ref?|$Leaf1-Outer|_=>_none (func_subtype (param (ref null $Leaf1-Outer)) func))
+ ;; CHECK: (type $ref?|$Leaf1-Outer|_=>_none (func (param (ref null $Leaf1-Outer))))
- ;; CHECK: (type $Root-Outer (struct_subtype (field (ref $Leaf2-Inner)) data))
+ ;; CHECK: (type $Root-Outer (struct (field (ref $Leaf2-Inner))))
;; CHECK: (type $Leaf2-Outer (struct_subtype (field (ref $Leaf2-Inner)) $Root-Outer))
@@ -867,10 +867,10 @@
)
(module
- ;; CHECK: (type $A (struct_subtype (field (mut (ref null $A))) data))
+ ;; CHECK: (type $A (struct (field (mut (ref null $A)))))
(type $A (struct_subtype (field (mut (ref null $A))) data))
- ;; CHECK: (type $ref|$A|_ref?|$A|_=>_none (func_subtype (param (ref $A) (ref null $A)) func))
+ ;; CHECK: (type $ref|$A|_ref?|$A|_=>_none (func (param (ref $A) (ref null $A))))
;; CHECK: (func $non-nullability (type $ref|$A|_ref?|$A|_=>_none) (param $nn (ref $A)) (param $A (ref null $A))
;; CHECK-NEXT: (local $temp (ref null $A))
@@ -930,12 +930,12 @@
)
(module
- ;; CHECK: (type $A (struct_subtype (field (ref null $A)) data))
+ ;; CHECK: (type $A (struct (field (ref null $A))))
(type $A (struct_subtype (field (ref null $A)) data))
;; CHECK: (type $B (struct_subtype (field (ref null $B)) $A))
(type $B (struct_subtype (field (ref null $A)) $A))
- ;; CHECK: (type $ref?|$B|_ref?|$A|_=>_none (func_subtype (param (ref null $B) (ref null $A)) func))
+ ;; CHECK: (type $ref?|$B|_ref?|$A|_=>_none (func (param (ref null $B) (ref null $A))))
;; CHECK: (func $heap-type (type $ref?|$B|_ref?|$A|_=>_none) (param $b (ref null $B)) (param $A (ref null $A))
;; CHECK-NEXT: (local $a (ref null $A))
@@ -980,10 +980,10 @@
)
(module
- ;; CHECK: (type $A (struct_subtype (field (mut (ref $A))) data))
+ ;; CHECK: (type $A (struct (field (mut (ref $A)))))
(type $A (struct_subtype (field (mut (ref null $A))) data))
- ;; CHECK: (type $ref|$A|_ref?|$A|_=>_none (func_subtype (param (ref $A) (ref null $A)) func))
+ ;; CHECK: (type $ref|$A|_ref?|$A|_=>_none (func (param (ref $A) (ref null $A))))
;; CHECK: (func $non-nullability-block (type $ref|$A|_ref?|$A|_=>_none) (param $nn (ref $A)) (param $A (ref null $A))
;; CHECK-NEXT: (struct.set $A 0
diff --git a/test/lit/passes/vacuum-eh.wast b/test/lit/passes/vacuum-eh.wast
index 5a6a4b20b..0030d928c 100644
--- a/test/lit/passes/vacuum-eh.wast
+++ b/test/lit/passes/vacuum-eh.wast
@@ -7,7 +7,7 @@
;; CHECK: (tag $e2 (param i32))
(tag $e2 (param i32))
- ;; CHECK: (func $try-test
+ ;; CHECK: (func $try-test (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $try-test
@@ -22,7 +22,7 @@
)
)
- ;; CHECK: (func $inner-try-catch_all-test (result i32)
+ ;; CHECK: (func $inner-try-catch_all-test (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try0
;; CHECK-NEXT: (do
@@ -60,7 +60,7 @@
(i32.const 2)
)
- ;; CHECK: (func $inner-try-catch-test
+ ;; CHECK: (func $inner-try-catch-test (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try
;; CHECK-NEXT: (do
@@ -108,7 +108,7 @@
)
)
- ;; CHECK: (func $br-in-catch
+ ;; CHECK: (func $br-in-catch (type $none_=>_none)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $br-in-catch
@@ -128,7 +128,7 @@
)
)
- ;; CHECK: (func $try-delegate-outer-target
+ ;; CHECK: (func $try-delegate-outer-target (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $label$0
;; CHECK-NEXT: (do
@@ -179,7 +179,7 @@
)
)
- ;; CHECK: (func $trivial-catch-all-of-throw
+ ;; CHECK: (func $trivial-catch-all-of-throw (type $none_=>_none)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (try $try3
;; CHECK-NEXT: (do
diff --git a/test/lit/passes/vacuum-func.wast b/test/lit/passes/vacuum-func.wast
index fb400b7d1..ba16a1a83 100644
--- a/test/lit/passes/vacuum-func.wast
+++ b/test/lit/passes/vacuum-func.wast
@@ -5,7 +5,7 @@
;; effects like a return or changes to locals.
(module
- ;; CHECK: (func $optimizable (param $x i32)
+ ;; CHECK: (func $optimizable (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $y i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
@@ -26,7 +26,7 @@
(return)
)
- ;; CHECK: (func $result (param $x i32) (result i32)
+ ;; CHECK: (func $result (type $i32_=>_i32) (param $x i32) (result i32)
;; CHECK-NEXT: (local $y i32)
;; CHECK-NEXT: (local.set $x
;; CHECK-NEXT: (i32.const 1)
@@ -55,7 +55,7 @@
)
)
- ;; CHECK: (func $partial (param $x i32)
+ ;; CHECK: (func $partial (type $i32_=>_none) (param $x i32)
;; CHECK-NEXT: (local $y i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.get $x)
diff --git a/test/lit/passes/vacuum-gc.wast b/test/lit/passes/vacuum-gc.wast
index 8ec273332..f84988f46 100644
--- a/test/lit/passes/vacuum-gc.wast
+++ b/test/lit/passes/vacuum-gc.wast
@@ -4,7 +4,7 @@
(module
(type ${} (struct))
- ;; CHECK: (func $drop-ref-as (param $x anyref)
+ ;; CHECK: (func $drop-ref-as (type $anyref_=>_none) (param $x anyref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (ref.as_non_null
;; CHECK-NEXT: (local.get $x)
@@ -51,7 +51,7 @@
)
)
- ;; CHECK: (func $vacuum-nonnull
+ ;; CHECK: (func $vacuum-nonnull (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $vacuum-nonnull
@@ -72,7 +72,7 @@
)
)
- ;; CHECK: (func $drop-i31.get (param $ref i31ref) (param $ref-nn (ref i31))
+ ;; CHECK: (func $drop-i31.get (type $i31ref_ref|i31|_=>_none) (param $ref i31ref) (param $ref-nn (ref i31))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i31.get_s
;; CHECK-NEXT: (local.get $ref)
diff --git a/test/lit/passes/vacuum-intrinsics.wast b/test/lit/passes/vacuum-intrinsics.wast
index 263c07c15..9d9a25d01 100644
--- a/test/lit/passes/vacuum-intrinsics.wast
+++ b/test/lit/passes/vacuum-intrinsics.wast
@@ -11,7 +11,7 @@
;; CHECK: (import "binaryen-intrinsics" "call.without.effects" (func $call.without.effects-ref (param funcref) (result (ref any))))
(import "binaryen-intrinsics" "call.without.effects" (func $call.without.effects-ref (param funcref) (result (ref any))))
- ;; CHECK: (func $used (result i32)
+ ;; CHECK: (func $used (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (local $i32 i32)
;; CHECK-NEXT: (local.set $i32
;; CHECK-NEXT: (call $call.without.effects
@@ -29,7 +29,7 @@
(local.get $i32)
)
- ;; CHECK: (func $unused
+ ;; CHECK: (func $unused (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $unused
@@ -39,7 +39,7 @@
)
)
- ;; CHECK: (func $unused-fj
+ ;; CHECK: (func $unused-fj (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $unused-fj
@@ -49,7 +49,7 @@
)
)
- ;; CHECK: (func $unused-fj-side-effects (result f32)
+ ;; CHECK: (func $unused-fj-side-effects (type $none_=>_f32) (result f32)
;; CHECK-NEXT: (local $f32 f32)
;; CHECK-NEXT: (local.set $f32
;; CHECK-NEXT: (f32.const 2.718280076980591)
@@ -71,7 +71,7 @@
(local.get $f32)
)
- ;; CHECK: (func $unused-unreachable
+ ;; CHECK: (func $unused-unreachable (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $call.without.effects-fj
;; CHECK-NEXT: (unreachable)
@@ -87,7 +87,7 @@
)
)
- ;; CHECK: (func $used-fallthrough
+ ;; CHECK: (func $used-fallthrough (type $none_=>_none)
;; CHECK-NEXT: (local $i32 i32)
;; CHECK-NEXT: (local.set $i32
;; CHECK-NEXT: (if (result i32)
@@ -136,7 +136,7 @@
)
)
- ;; CHECK: (func $unused-fallthrough
+ ;; CHECK: (func $unused-fallthrough (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (block $condition (result i32)
@@ -177,7 +177,7 @@
)
)
- ;; CHECK: (func $unused-fallthrough-bad-type
+ ;; CHECK: (func $unused-fallthrough-bad-type (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (if (result (ref any))
;; CHECK-NEXT: (call $i)
@@ -202,7 +202,7 @@
)
)
- ;; CHECK: (func $i (result i32)
+ ;; CHECK: (func $i (type $none_=>_i32) (result i32)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $i (result i32)
@@ -210,7 +210,7 @@
(unreachable)
)
- ;; CHECK: (func $fj (param $0 f32) (result i64)
+ ;; CHECK: (func $fj (type $f32_=>_i64) (param $0 f32) (result i64)
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $fj (param f32) (result i64)
@@ -218,7 +218,7 @@
(unreachable)
)
- ;; CHECK: (func $ref (result (ref any))
+ ;; CHECK: (func $ref (type $none_=>_ref|any|) (result (ref any))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $ref (result (ref any))
@@ -227,7 +227,7 @@
)
- ;; CHECK: (func $nop
+ ;; CHECK: (func $nop (type $none_=>_none)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $nop
diff --git a/test/lit/passes/vacuum-tnh.wast b/test/lit/passes/vacuum-tnh.wast
index 37aecc5f6..c1e8c2059 100644
--- a/test/lit/passes/vacuum-tnh.wast
+++ b/test/lit/passes/vacuum-tnh.wast
@@ -12,10 +12,10 @@
;; NO_TNH: (type $struct (struct (field (mut i32))))
(type $struct (struct (field (mut i32))))
- ;; YESTNH: (func $drop (param $x i32) (param $y anyref)
+ ;; YESTNH: (func $drop (type $i32_anyref_=>_none) (param $x i32) (param $y anyref)
;; YESTNH-NEXT: (nop)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $drop (param $x i32) (param $y anyref)
+ ;; NO_TNH: (func $drop (type $i32_anyref_=>_none) (param $x i32) (param $y anyref)
;; NO_TNH-NEXT: (drop
;; NO_TNH-NEXT: (i32.load
;; NO_TNH-NEXT: (local.get $x)
@@ -83,7 +83,7 @@
)
;; Other side effects prevent us making any changes.
- ;; YESTNH: (func $other-side-effects (param $x i32) (result i32)
+ ;; YESTNH: (func $other-side-effects (type $i32_=>_i32) (param $x i32) (result i32)
;; YESTNH-NEXT: (drop
;; YESTNH-NEXT: (call $other-side-effects
;; YESTNH-NEXT: (i32.const 1)
@@ -94,7 +94,7 @@
;; YESTNH-NEXT: )
;; YESTNH-NEXT: (i32.const 1)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $other-side-effects (param $x i32) (result i32)
+ ;; NO_TNH: (func $other-side-effects (type $i32_=>_i32) (param $x i32) (result i32)
;; NO_TNH-NEXT: (drop
;; NO_TNH-NEXT: (call $other-side-effects
;; NO_TNH-NEXT: (i32.const 1)
@@ -131,15 +131,15 @@
)
;; A helper function for the above, that returns nothing.
- ;; YESTNH: (func $return-nothing
+ ;; YESTNH: (func $return-nothing (type $none_=>_none)
;; YESTNH-NEXT: (nop)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $return-nothing
+ ;; NO_TNH: (func $return-nothing (type $none_=>_none)
;; NO_TNH-NEXT: (nop)
;; NO_TNH-NEXT: )
(func $return-nothing)
- ;; YESTNH: (func $partial (param $x (ref $struct)) (result (ref null $struct))
+ ;; YESTNH: (func $partial (type $ref|$struct|_=>_ref?|$struct|) (param $x (ref $struct)) (result (ref null $struct))
;; YESTNH-NEXT: (local $y (ref null $struct))
;; YESTNH-NEXT: (local.set $y
;; YESTNH-NEXT: (local.get $x)
@@ -149,7 +149,7 @@
;; YESTNH-NEXT: )
;; YESTNH-NEXT: (local.get $y)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $partial (param $x (ref $struct)) (result (ref null $struct))
+ ;; NO_TNH: (func $partial (type $ref|$struct|_=>_ref?|$struct|) (param $x (ref $struct)) (result (ref null $struct))
;; NO_TNH-NEXT: (local $y (ref null $struct))
;; NO_TNH-NEXT: (drop
;; NO_TNH-NEXT: (struct.get $struct 0
@@ -193,10 +193,10 @@
(local.get $y)
)
- ;; YESTNH: (func $toplevel
+ ;; YESTNH: (func $toplevel (type $none_=>_none)
;; YESTNH-NEXT: (nop)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $toplevel
+ ;; NO_TNH: (func $toplevel (type $none_=>_none)
;; NO_TNH-NEXT: (unreachable)
;; NO_TNH-NEXT: )
(func $toplevel
@@ -205,10 +205,10 @@
(unreachable)
)
- ;; YESTNH: (func $drop-loop
+ ;; YESTNH: (func $drop-loop (type $none_=>_none)
;; YESTNH-NEXT: (nop)
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $drop-loop
+ ;; NO_TNH: (func $drop-loop (type $none_=>_none)
;; NO_TNH-NEXT: (drop
;; NO_TNH-NEXT: (loop $loop (result i32)
;; NO_TNH-NEXT: (br_if $loop
@@ -231,7 +231,7 @@
)
)
- ;; YESTNH: (func $loop-effects
+ ;; YESTNH: (func $loop-effects (type $none_=>_none)
;; YESTNH-NEXT: (drop
;; YESTNH-NEXT: (loop $loop (result i32)
;; YESTNH-NEXT: (drop
@@ -246,7 +246,7 @@
;; YESTNH-NEXT: )
;; YESTNH-NEXT: )
;; YESTNH-NEXT: )
- ;; NO_TNH: (func $loop-effects
+ ;; NO_TNH: (func $loop-effects (type $none_=>_none)
;; NO_TNH-NEXT: (drop
;; NO_TNH-NEXT: (loop $loop (result i32)
;; NO_TNH-NEXT: (drop
diff --git a/test/lit/recursive-type-sort.wast b/test/lit/recursive-type-sort.wast
index 40ae14dfd..3b241fd96 100644
--- a/test/lit/recursive-type-sort.wast
+++ b/test/lit/recursive-type-sort.wast
@@ -2,7 +2,7 @@
;; Regression test for a bug in TypeComparator that made it fail to properly
;; implement the C++ Compare requirements. See #3648.
-;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s
+;; RUN: wasm-opt %s -all --roundtrip --structural -S -o - | filecheck %s
;; RUN: wasm-opt %s -all --roundtrip --nominal -S -o - | filecheck %s
;; Check that there's no crash.
diff --git a/test/lit/recursive-types.wast b/test/lit/recursive-types.wast
index ced89612d..30fd13db9 100644
--- a/test/lit/recursive-types.wast
+++ b/test/lit/recursive-types.wast
@@ -7,40 +7,49 @@
(type (func (param (ref null 0)) (result (ref null 0))))
(type (func (param (ref null 1)) (result (ref null 1))))
(type (func (param (ref null 0)) (result (ref null 1))))
- (type (func (param (ref null 3)) (result (ref null 4))))
- (type (func (param (ref null 4)) (result (ref null 3))))
+ (rec
+ (type (func (param (ref null 3)) (result (ref null 4))))
+ (type (func (param (ref null 4)) (result (ref null 3))))
+ )
;; CHECK: (type $type$0 (func (param (ref null $type$0)) (result (ref null $type$0))))
- ;; CHECK: (func $foo (param $0 (ref null $type$0)) (result (ref null $type$0))
+ ;; CHECK: (rec
+ ;; CHECK-NEXT: (type $type$2 (func (param (ref null $type$2)) (result (ref null $type$3))))
+
+ ;; CHECK: (type $type$3 (func (param (ref null $type$3)) (result (ref null $type$2))))
+
+ ;; CHECK: (type $type$1 (func (param (ref null $type$0)) (result (ref null $type$0))))
+
+ ;; CHECK: (func $foo (type $type$0) (param $0 (ref null $type$0)) (result (ref null $type$0))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $foo (type 0)
(unreachable)
)
- ;; CHECK: (func $bar (param $0 (ref null $type$0)) (result (ref null $type$0))
+ ;; CHECK: (func $bar (type $type$0) (param $0 (ref null $type$0)) (result (ref null $type$0))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $bar (type 1)
(unreachable)
)
- ;; CHECK: (func $baz (param $0 (ref null $type$0)) (result (ref null $type$0))
+ ;; CHECK: (func $baz (type $type$1) (param $0 (ref null $type$0)) (result (ref null $type$0))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $baz (type 2)
(unreachable)
)
- ;; CHECK: (func $qux (param $0 (ref null $type$0)) (result (ref null $type$0))
+ ;; CHECK: (func $qux (type $type$2) (param $0 (ref null $type$2)) (result (ref null $type$3))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $qux (type 3)
(unreachable)
)
- ;; CHECK: (func $quux (param $0 (ref null $type$0)) (result (ref null $type$0))
+ ;; CHECK: (func $quux (type $type$3) (param $0 (ref null $type$3)) (result (ref null $type$2))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $quux (type 4)
diff --git a/test/lit/ref-cast-nop.wast b/test/lit/ref-cast-nop.wast
index 6e49508d5..51df10947 100644
--- a/test/lit/ref-cast-nop.wast
+++ b/test/lit/ref-cast-nop.wast
@@ -5,7 +5,7 @@
(module
;; CHECK: (type $struct (struct (field i32)))
(type $struct (struct i32))
- ;; CHECK: (func $ref.cast_nop_static (param $x (ref any)) (result (ref $struct))
+ ;; CHECK: (func $ref.cast_nop_static (type $ref|any|_=>_ref|$struct|) (param $x (ref any)) (result (ref $struct))
;; CHECK-NEXT: (ref.cast_nop_static $struct
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
diff --git a/test/lit/relaxed-simd.wast b/test/lit/relaxed-simd.wast
index 772ff2065..17f11761e 100644
--- a/test/lit/relaxed-simd.wast
+++ b/test/lit/relaxed-simd.wast
@@ -19,7 +19,7 @@
;; CHECK-BINARY: (memory $0 1 1)
- ;; CHECK-BINARY: (func $i8x16.relaxed_swizzle (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $i8x16.relaxed_swizzle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (i8x16.relaxed_swizzle
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
@@ -33,7 +33,7 @@
;; CHECK-TEXT: (memory $0 1 1)
- ;; CHECK-TEXT: (func $i8x16.relaxed_swizzle (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $i8x16.relaxed_swizzle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (i8x16.relaxed_swizzle
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -46,12 +46,12 @@
)
)
- ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_s (param $0 v128) (result v128)
+ ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_s
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_s (param $0 v128) (result v128)
+ ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_s
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: )
@@ -61,12 +61,12 @@
(local.get $0)
)
)
- ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_u (param $0 v128) (result v128)
+ ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_u
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_u (param $0 v128) (result v128)
+ ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_u
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: )
@@ -76,12 +76,12 @@
(local.get $0)
)
)
- ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_s_zero (param $0 v128) (result v128)
+ ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_s_zero (param $0 v128) (result v128)
+ ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: )
@@ -91,12 +91,12 @@
(local.get $0)
)
)
- ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_u_zero (param $0 v128) (result v128)
+ ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_u_zero (param $0 v128) (result v128)
+ ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: )
@@ -107,14 +107,14 @@
)
)
- ;; CHECK-BINARY: (func $f32x4.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $f32x4.relaxed_fma (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (f32x4.relaxed_fma
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f32x4.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $f32x4.relaxed_fma (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (f32x4.relaxed_fma
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -128,14 +128,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $f32x4.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $f32x4.relaxed_fms (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (f32x4.relaxed_fms
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f32x4.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $f32x4.relaxed_fms (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (f32x4.relaxed_fms
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -149,14 +149,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $f64x2.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $f64x2.relaxed_fma (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (f64x2.relaxed_fma
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f64x2.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $f64x2.relaxed_fma (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (f64x2.relaxed_fma
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -170,14 +170,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $f64x2.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $f64x2.relaxed_fms (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (f64x2.relaxed_fms
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f64x2.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $f64x2.relaxed_fms (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (f64x2.relaxed_fms
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -192,14 +192,14 @@
)
)
- ;; CHECK-BINARY: (func $i8x16.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $i8x16.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (i8x16.laneselect
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i8x16.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $i8x16.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (i8x16.laneselect
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -213,14 +213,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $i16x8.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $i16x8.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (i16x8.laneselect
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i16x8.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $i16x8.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (i16x8.laneselect
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -234,14 +234,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $i32x4.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $i32x4.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.laneselect
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i32x4.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $i32x4.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.laneselect
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -255,14 +255,14 @@
(local.get $2)
)
)
- ;; CHECK-BINARY: (func $i64x2.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-BINARY: (func $i64x2.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (i64x2.laneselect
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i64x2.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ ;; CHECK-TEXT: (func $i64x2.laneselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (i64x2.laneselect
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -277,13 +277,13 @@
)
)
- ;; CHECK-BINARY: (func $f32x4.relaxed_min (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $f32x4.relaxed_min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (f32x4.relaxed_min
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f32x4.relaxed_min (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $f32x4.relaxed_min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (f32x4.relaxed_min
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -295,13 +295,13 @@
(local.get $1)
)
)
- ;; CHECK-BINARY: (func $f32x4.relaxed_max (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $f32x4.relaxed_max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (f32x4.relaxed_max
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f32x4.relaxed_max (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $f32x4.relaxed_max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (f32x4.relaxed_max
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -313,13 +313,13 @@
(local.get $1)
)
)
- ;; CHECK-BINARY: (func $f64x2.relaxed_min (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $f64x2.relaxed_min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (f64x2.relaxed_min
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f64x2.relaxed_min (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $f64x2.relaxed_min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (f64x2.relaxed_min
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -331,13 +331,13 @@
(local.get $1)
)
)
- ;; CHECK-BINARY: (func $f64x2.relaxed_max (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $f64x2.relaxed_max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (f64x2.relaxed_max
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $f64x2.relaxed_max (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $f64x2.relaxed_max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (f64x2.relaxed_max
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -350,13 +350,13 @@
)
)
- ;; CHECK-BINARY: (func $i16x8.relaxed_q15mulr_s (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $i16x8.relaxed_q15mulr_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (i16x8.relaxed_q15mulr_s
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i16x8.relaxed_q15mulr_s (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $i16x8.relaxed_q15mulr_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (i16x8.relaxed_q15mulr_s
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -369,13 +369,13 @@
)
)
- ;; CHECK-BINARY: (func $i16x8.dot_i8x16_i7x16_s (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-BINARY: (func $i16x8.dot_i8x16_i7x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-BINARY-NEXT: (i16x8.dot_i8x16_i7x16_s
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $i16x8.dot_i8x16_i7x16_s (param $0 v128) (param $1 v128) (result v128)
+ ;; CHECK-TEXT: (func $i16x8.dot_i8x16_i7x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-TEXT-NEXT: (i16x8.dot_i8x16_i7x16_s
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -388,14 +388,14 @@
)
)
-;; CHECK-BINARY: (func $i32x4.dot_i8x16_i7x16_add_s (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-BINARY: (func $i32x4.dot_i8x16_i7x16_add_s (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-BINARY-NEXT: (i32x4.dot_i8x16_i7x16_add_s
;; CHECK-BINARY-NEXT: (local.get $0)
;; CHECK-BINARY-NEXT: (local.get $1)
;; CHECK-BINARY-NEXT: (local.get $2)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
-;; CHECK-TEXT: (func $i32x4.dot_i8x16_i7x16_add_s (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-TEXT: (func $i32x4.dot_i8x16_i7x16_add_s (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-TEXT-NEXT: (i32x4.dot_i8x16_i7x16_add_s
;; CHECK-TEXT-NEXT: (local.get $0)
;; CHECK-TEXT-NEXT: (local.get $1)
@@ -419,38 +419,38 @@
;; CHECK-NODEBUG: (memory $0 1 1)
-;; CHECK-NODEBUG: (func $0 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $0 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i8x16.relaxed_swizzle
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $1 (param $0 v128) (result v128)
+;; CHECK-NODEBUG: (func $1 (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_s
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $2 (param $0 v128) (result v128)
+;; CHECK-NODEBUG: (func $2 (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_u
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $3 (param $0 v128) (result v128)
+;; CHECK-NODEBUG: (func $3 (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $4 (param $0 v128) (result v128)
+;; CHECK-NODEBUG: (func $4 (type $v128_=>_v128) (param $0 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $5 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $5 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fma
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -458,7 +458,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $6 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $6 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fms
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -466,7 +466,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $7 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $7 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fma
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -474,7 +474,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $8 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $8 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fms
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -482,7 +482,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $9 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $9 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i8x16.laneselect
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -490,7 +490,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $10 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $10 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i16x8.laneselect
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -498,7 +498,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $11 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $11 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.laneselect
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -506,7 +506,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $12 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $12 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i64x2.laneselect
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
@@ -514,49 +514,49 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $13 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $13 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_min
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $14 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $14 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_max
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $15 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $15 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_min
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $16 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $16 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_max
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $17 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $17 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i16x8.relaxed_q15mulr_s
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $18 (param $0 v128) (param $1 v128) (result v128)
+;; CHECK-NODEBUG: (func $18 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i16x8.dot_i8x16_i7x16_s
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $19 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+;; CHECK-NODEBUG: (func $19 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
;; CHECK-NODEBUG-NEXT: (i32x4.dot_i8x16_i7x16_add_s
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: (local.get $1)
diff --git a/test/lit/strings.wast b/test/lit/strings.wast
index 6b55f2863..f0b4730d7 100644
--- a/test/lit/strings.wast
+++ b/test/lit/strings.wast
@@ -40,7 +40,7 @@
;; CHECK: (memory $0 10 10)
- ;; CHECK: (func $string.new (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter) (param $e stringref) (param $f stringview_wtf8) (param $g stringview_wtf16) (param $h stringview_iter) (param $i (ref string)) (param $j (ref stringview_wtf8)) (param $k (ref stringview_wtf16)) (param $l (ref stringview_iter))
+ ;; CHECK: (func $string.new (type $stringref_stringview_wtf8_stringview_wtf16_stringview_iter_stringref_stringview_wtf8_stringview_wtf16_stringview_iter_ref|string|_ref|stringview_wtf8|_ref|stringview_wtf16|_ref|stringview_iter|_=>_none) (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter) (param $e stringref) (param $f stringview_wtf8) (param $g stringview_wtf16) (param $h stringview_iter) (param $i (ref string)) (param $j (ref stringview_wtf8)) (param $k (ref stringview_wtf16)) (param $l (ref stringview_iter))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (string.new_wtf8 utf8
;; CHECK-NEXT: (i32.const 1)
@@ -105,7 +105,7 @@
)
)
- ;; CHECK: (func $string.const
+ ;; CHECK: (func $string.const (type $none_=>_none)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (string.const "foo")
;; CHECK-NEXT: )
@@ -128,7 +128,7 @@
)
)
- ;; CHECK: (func $string.measure (param $ref stringref)
+ ;; CHECK: (func $string.measure (type $stringref_=>_none) (param $ref stringref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (string.measure_wtf8 wtf8
@@ -167,7 +167,7 @@
)
)
- ;; CHECK: (func $string.encode (param $ref stringref)
+ ;; CHECK: (func $string.encode (type $stringref_=>_none) (param $ref stringref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (string.encode_wtf8 wtf8
@@ -212,7 +212,7 @@
)
)
- ;; CHECK: (func $string.concat (param $a stringref) (param $b stringref)
+ ;; CHECK: (func $string.concat (type $stringref_stringref_=>_none) (param $a stringref) (param $b stringref)
;; CHECK-NEXT: (local.set $a
;; CHECK-NEXT: (string.concat
;; CHECK-NEXT: (local.get $a)
@@ -229,7 +229,7 @@
)
)
- ;; CHECK: (func $string.eq (param $a stringref) (param $b stringref)
+ ;; CHECK: (func $string.eq (type $stringref_stringref_=>_none) (param $a stringref) (param $b stringref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (string.eq
@@ -250,7 +250,7 @@
)
)
- ;; CHECK: (func $string.is_usv_sequence (param $ref stringref)
+ ;; CHECK: (func $string.is_usv_sequence (type $stringref_=>_none) (param $ref stringref)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (string.is_usv_sequence
@@ -269,7 +269,7 @@
)
)
- ;; CHECK: (func $string.as (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
+ ;; CHECK: (func $string.as (type $stringref_stringview_wtf8_stringview_wtf16_stringview_iter_=>_none) (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
;; CHECK-NEXT: (local.set $b
;; CHECK-NEXT: (string.as_wtf8
;; CHECK-NEXT: (local.get $a)
@@ -308,7 +308,7 @@
)
)
- ;; CHECK: (func $stringview-access (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
+ ;; CHECK: (func $stringview-access (type $stringref_stringview_wtf8_stringview_wtf16_stringview_iter_=>_none) (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
;; CHECK-NEXT: (local $i32 i32)
;; CHECK-NEXT: (local.set $i32
;; CHECK-NEXT: (stringview_wtf8.advance
@@ -378,7 +378,7 @@
)
)
)
- ;; CHECK: (func $stringview-slice (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
+ ;; CHECK: (func $stringview-slice (type $stringref_stringview_wtf8_stringview_wtf16_stringview_iter_=>_none) (param $a stringref) (param $b stringview_wtf8) (param $c stringview_wtf16) (param $d stringview_iter)
;; CHECK-NEXT: (local.set $a
;; CHECK-NEXT: (stringview_wtf8.slice
;; CHECK-NEXT: (local.get $b)
@@ -427,7 +427,7 @@
)
)
- ;; CHECK: (func $string.length (param $ref stringview_wtf16)
+ ;; CHECK: (func $string.length (type $stringview_wtf16_=>_none) (param $ref stringview_wtf16)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (stringview_wtf16.length
@@ -446,7 +446,7 @@
)
)
- ;; CHECK: (func $string.new.gc (param $array (ref $array)) (param $array16 (ref $array16))
+ ;; CHECK: (func $string.new.gc (type $ref|$array|_ref|$array16|_=>_none) (param $array (ref $array)) (param $array16 (ref $array16))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (string.new_wtf8_array utf8
;; CHECK-NEXT: (local.get $array)
@@ -507,7 +507,7 @@
)
)
- ;; CHECK: (func $string.encode.gc (param $ref stringref) (param $array (ref $array)) (param $array16 (ref $array16))
+ ;; CHECK: (func $string.encode.gc (type $stringref_ref|$array|_ref|$array16|_=>_none) (param $ref stringref) (param $array (ref $array)) (param $array16 (ref $array16))
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (string.encode_wtf8_array wtf8
diff --git a/test/lit/structref.wast b/test/lit/structref.wast
index 5e674eb26..f4f2fb281 100644
--- a/test/lit/structref.wast
+++ b/test/lit/structref.wast
@@ -4,7 +4,7 @@
;; Check that `struct` is correctly parsed as an alias for `data`.
(module
- ;; CHECK: (func $foo (param $x dataref) (param $y (ref data))
+ ;; CHECK: (func $foo (type $dataref_ref|data|_=>_none) (param $x dataref) (param $y (ref data))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
(func $foo (param $x structref) (param $y (ref struct))
diff --git a/test/lit/table-first-special.wast b/test/lit/table-first-special.wast
index 0ddc730b9..52f8f8494 100644
--- a/test/lit/table-first-special.wast
+++ b/test/lit/table-first-special.wast
@@ -21,10 +21,10 @@
;; CHECK-BINARY: (elem $elem-1 (table $table-1) (i32.const 0) (ref null $vii))
;; CHECK-TEXT: (elem $elem-1 (table $table-1) (i32.const 0) (ref null $vii))
(elem $elem-1 (table $table-1) (i32.const 0) (ref null $vii))
- ;; CHECK-BINARY: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK-BINARY: (func $foo (type $vii) (param $0 i32) (param $1 i32)
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $foo (param $0 i32) (param $1 i32)
+ ;; CHECK-TEXT: (func $foo (type $vii) (param $0 i32) (param $1 i32)
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: )
(func $foo (param $0 i32) (param $1 i32)
@@ -37,6 +37,6 @@
;; CHECK-NODEBUG: (elem (table $0) (i32.const 0) (ref null $i32_i32_=>_none))
-;; CHECK-NODEBUG: (func $0 (param $0 i32) (param $1 i32)
+;; CHECK-NODEBUG: (func $0 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32)
;; CHECK-NODEBUG-NEXT: (nop)
;; CHECK-NODEBUG-NEXT: )
diff --git a/test/lit/table-operations.wast b/test/lit/table-operations.wast
index 842270561..5e5e836e5 100644
--- a/test/lit/table-operations.wast
+++ b/test/lit/table-operations.wast
@@ -38,20 +38,20 @@
;; CHECK-BINARY: (elem $1 (table $table-2) (i32.const 0) func $bar $bar $bar)
- ;; CHECK-BINARY: (func $foo
+ ;; CHECK-BINARY: (func $foo (type $none_=>_none)
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
;; CHECK-TEXT: (elem $0 (table $table-1) (i32.const 0) func $foo)
;; CHECK-TEXT: (elem $1 (table $table-2) (i32.const 0) func $bar $bar $bar)
- ;; CHECK-TEXT: (func $foo
+ ;; CHECK-TEXT: (func $foo (type $none_=>_none)
;; CHECK-TEXT-NEXT: (nop)
;; CHECK-TEXT-NEXT: )
(func $foo
(nop)
)
- ;; CHECK-BINARY: (func $bar
+ ;; CHECK-BINARY: (func $bar (type $none_=>_none)
;; CHECK-BINARY-NEXT: (drop
;; CHECK-BINARY-NEXT: (table.get $table-1
;; CHECK-BINARY-NEXT: (i32.const 0)
@@ -63,7 +63,7 @@
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $bar
+ ;; CHECK-TEXT: (func $bar (type $none_=>_none)
;; CHECK-TEXT-NEXT: (drop
;; CHECK-TEXT-NEXT: (table.get $table-1
;; CHECK-TEXT-NEXT: (i32.const 0)
@@ -88,7 +88,7 @@
)
)
- ;; CHECK-BINARY: (func $set-get
+ ;; CHECK-BINARY: (func $set-get (type $none_=>_none)
;; CHECK-BINARY-NEXT: (table.set $table-1
;; CHECK-BINARY-NEXT: (i32.const 0)
;; CHECK-BINARY-NEXT: (ref.func $foo)
@@ -99,7 +99,7 @@
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $set-get
+ ;; CHECK-TEXT: (func $set-get (type $none_=>_none)
;; CHECK-TEXT-NEXT: (table.set $table-1
;; CHECK-TEXT-NEXT: (i32.const 0)
;; CHECK-TEXT-NEXT: (ref.func $foo)
@@ -122,23 +122,23 @@
)
)
- ;; CHECK-BINARY: (func $get-table-size (result i32)
+ ;; CHECK-BINARY: (func $get-table-size (type $none_=>_i32) (result i32)
;; CHECK-BINARY-NEXT: (table.size $table-1)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $get-table-size (result i32)
+ ;; CHECK-TEXT: (func $get-table-size (type $none_=>_i32) (result i32)
;; CHECK-TEXT-NEXT: (table.size $table-1)
;; CHECK-TEXT-NEXT: )
(func $get-table-size (result i32)
(table.size $table-1)
)
- ;; CHECK-BINARY: (func $table-grow (param $sz i32) (result i32)
+ ;; CHECK-BINARY: (func $table-grow (type $i32_=>_i32) (param $sz i32) (result i32)
;; CHECK-BINARY-NEXT: (table.grow $table-1
;; CHECK-BINARY-NEXT: (ref.null nofunc)
;; CHECK-BINARY-NEXT: (local.get $sz)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $table-grow (param $sz i32) (result i32)
+ ;; CHECK-TEXT: (func $table-grow (type $i32_=>_i32) (param $sz i32) (result i32)
;; CHECK-TEXT-NEXT: (table.grow $table-1
;; CHECK-TEXT-NEXT: (ref.null nofunc)
;; CHECK-TEXT-NEXT: (local.get $sz)
@@ -162,11 +162,11 @@
;; CHECK-NODEBUG: (elem $1 (table $1) (i32.const 0) func $1 $1 $1)
-;; CHECK-NODEBUG: (func $0
+;; CHECK-NODEBUG: (func $0 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (nop)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $1
+;; CHECK-NODEBUG: (func $1 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (drop
;; CHECK-NODEBUG-NEXT: (table.get $0
;; CHECK-NODEBUG-NEXT: (i32.const 0)
@@ -179,7 +179,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $2
+;; CHECK-NODEBUG: (func $2 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (table.set $0
;; CHECK-NODEBUG-NEXT: (i32.const 0)
;; CHECK-NODEBUG-NEXT: (ref.func $0)
@@ -191,11 +191,11 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $3 (result i32)
+;; CHECK-NODEBUG: (func $3 (type $none_=>_i32) (result i32)
;; CHECK-NODEBUG-NEXT: (table.size $0)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $4 (param $0 i32) (result i32)
+;; CHECK-NODEBUG: (func $4 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NODEBUG-NEXT: (table.grow $0
;; CHECK-NODEBUG-NEXT: (ref.null nofunc)
;; CHECK-NODEBUG-NEXT: (local.get $0)
diff --git a/test/lit/tail-call.wast b/test/lit/tail-call.wast
index 6948bd001..f4143e100 100644
--- a/test/lit/tail-call.wast
+++ b/test/lit/tail-call.wast
@@ -8,7 +8,7 @@
(module
;; CHECK: (type $void (func))
- ;; NOMNL: (type $void (func_subtype func))
+ ;; NOMNL: (type $void (func))
(type $void (func))
;; CHECK: (table $t 1 1 funcref)
@@ -19,7 +19,7 @@
;; NOMNL: (elem $e (i32.const 0) $foo)
(elem $e (i32.const 0) $foo)
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $void)
;; CHECK-NEXT: (return_call $bar)
;; CHECK-NEXT: )
;; NOMNL: (func $foo (type $void)
@@ -29,7 +29,7 @@
(return_call $bar)
)
- ;; CHECK: (func $bar
+ ;; CHECK: (func $bar (type $void)
;; CHECK-NEXT: (return_call_indirect $t (type $void)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -46,22 +46,24 @@
;; Check GC types and subtyping
(module
- ;; CHECK: (type $return-B (func (result (ref $B))))
- ;; NOMNL: (type $return-B (func_subtype (result (ref $B)) func))
- (type $return-B (func (result (ref $B))))
+ ;; CHECK: (type $A (struct (field i32)))
+ ;; NOMNL: (type $return-B (func (result (ref $B))))
- ;; CHECK: (type $return-A (func (result (ref null $A))))
- ;; NOMNL: (type $return-A (func_subtype (result (ref null $A)) func))
- (type $return-A (func (result (ref null $A))))
+ ;; NOMNL: (type $return-A (func (result (ref null $A))))
- ;; CHECK: (type $A (struct (field i32)))
- ;; NOMNL: (type $A (struct_subtype (field i32) data))
+ ;; NOMNL: (type $A (struct (field i32)))
(type $A (struct i32))
- ;; CHECK: (type $B (struct (field i32) (field i32)))
+ ;; CHECK: (type $B (struct_subtype (field i32) (field i32) $A))
;; NOMNL: (type $B (struct_subtype (field i32) (field i32) $A))
(type $B (struct_subtype i32 i32 $A))
+ ;; CHECK: (type $return-B (func (result (ref $B))))
+ (type $return-B (func (result (ref $B))))
+
+ ;; CHECK: (type $return-A (func (result (ref null $A))))
+ (type $return-A (func (result (ref null $A))))
+
;; CHECK: (table $t 1 1 funcref)
;; NOMNL: (table $t 1 1 funcref)
(table $t 1 1 funcref)
@@ -70,7 +72,7 @@
;; NOMNL: (elem $e (i32.const 0) $callee)
(elem $e (i32.const 0) $callee)
- ;; CHECK: (func $caller (result (ref null $A))
+ ;; CHECK: (func $caller (type $return-A) (result (ref null $A))
;; CHECK-NEXT: (return_call $callee)
;; CHECK-NEXT: )
;; NOMNL: (func $caller (type $return-A) (result (ref null $A))
@@ -80,7 +82,7 @@
(return_call $callee)
)
- ;; CHECK: (func $caller-indirect (result (ref $B))
+ ;; CHECK: (func $caller-indirect (type $return-B) (result (ref $B))
;; CHECK-NEXT: (return_call_indirect $t (type $return-B)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -94,7 +96,7 @@
(return_call_indirect $t (type $return-B) (i32.const 0))
)
- ;; CHECK: (func $callee (result (ref $B))
+ ;; CHECK: (func $callee (type $return-B) (result (ref $B))
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; NOMNL: (func $callee (type $return-B) (result (ref $B))
diff --git a/test/lit/types-function-references.wast b/test/lit/types-function-references.wast
index d51b73a84..862befcef 100644
--- a/test/lit/types-function-references.wast
+++ b/test/lit/types-function-references.wast
@@ -28,6 +28,8 @@
;; CHECK-BINARY: (type $none_=>_i32 (func (result i32)))
+ ;; CHECK-BINARY: (type $=>eqref (func (result eqref)))
+
;; CHECK-BINARY: (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $=>eqref))))
;; CHECK-TEXT: (type $i32-i32 (func (param i32) (result i32)))
@@ -37,38 +39,36 @@
;; CHECK-TEXT: (type $none_=>_i32 (func (result i32)))
+ ;; CHECK-TEXT: (type $=>eqref (func (result eqref)))
+
;; CHECK-TEXT: (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $=>eqref))))
(type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $_=>_eqref))))
+ (type $=>eqref (func (result eqref)))
;; CHECK-BINARY: (type $=>anyref (func (result anyref)))
-
- ;; CHECK-BINARY: (type $none_=>_i32_ref?|$mixed_results|_f64 (func (result i32 (ref null $mixed_results) f64)))
-
- ;; CHECK-BINARY: (type $ref?|$mixed_results|_=>_none (func (param (ref null $mixed_results))))
-
- ;; CHECK-BINARY: (type $=>eqref (func (result eqref)))
;; CHECK-TEXT: (type $=>anyref (func (result anyref)))
-
- ;; CHECK-TEXT: (type $none_=>_i32_ref?|$mixed_results|_f64 (func (result i32 (ref null $mixed_results) f64)))
-
- ;; CHECK-TEXT: (type $ref?|$mixed_results|_=>_none (func (param (ref null $mixed_results))))
-
- ;; CHECK-TEXT: (type $=>eqref (func (result eqref)))
- (type $=>eqref (func (result eqref)))
(type $=>anyref (func (result anyref)))
(type $mixed_results (func (result anyref f32 anyref f32)))
(type $i32-i32 (func (param i32) (result i32)))
+ ;; CHECK-BINARY: (type $none_=>_i32_ref?|$mixed_results|_f64 (func (result i32 (ref null $mixed_results) f64)))
+
+ ;; CHECK-BINARY: (type $ref?|$mixed_results|_=>_none (func (param (ref null $mixed_results))))
+
;; CHECK-BINARY: (elem declare func $call-ref $call-ref-more)
- ;; CHECK-BINARY: (func $call-ref
+ ;; CHECK-BINARY: (func $call-ref (type $void)
;; CHECK-BINARY-NEXT: (call_ref $void
;; CHECK-BINARY-NEXT: (ref.func $call-ref)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
+ ;; CHECK-TEXT: (type $none_=>_i32_ref?|$mixed_results|_f64 (func (result i32 (ref null $mixed_results) f64)))
+
+ ;; CHECK-TEXT: (type $ref?|$mixed_results|_=>_none (func (param (ref null $mixed_results))))
+
;; CHECK-TEXT: (elem declare func $call-ref $call-ref-more)
- ;; CHECK-TEXT: (func $call-ref
+ ;; CHECK-TEXT: (func $call-ref (type $void)
;; CHECK-TEXT-NEXT: (call_ref $void
;; CHECK-TEXT-NEXT: (ref.func $call-ref)
;; CHECK-TEXT-NEXT: )
@@ -76,12 +76,12 @@
(func $call-ref
(call_ref $void (ref.func $call-ref))
)
- ;; CHECK-BINARY: (func $return-call-ref
+ ;; CHECK-BINARY: (func $return-call-ref (type $void)
;; CHECK-BINARY-NEXT: (return_call_ref $void
;; CHECK-BINARY-NEXT: (ref.func $call-ref)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $return-call-ref
+ ;; CHECK-TEXT: (func $return-call-ref (type $void)
;; CHECK-TEXT-NEXT: (return_call_ref $void
;; CHECK-TEXT-NEXT: (ref.func $call-ref)
;; CHECK-TEXT-NEXT: )
@@ -89,13 +89,13 @@
(func $return-call-ref
(return_call_ref $void (ref.func $call-ref))
)
- ;; CHECK-BINARY: (func $call-ref-more (param $0 i32) (result i32)
+ ;; CHECK-BINARY: (func $call-ref-more (type $i32-i32) (param $0 i32) (result i32)
;; CHECK-BINARY-NEXT: (call_ref $i32-i32
;; CHECK-BINARY-NEXT: (i32.const 42)
;; CHECK-BINARY-NEXT: (ref.func $call-ref-more)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $call-ref-more (param $0 i32) (result i32)
+ ;; CHECK-TEXT: (func $call-ref-more (type $i32-i32) (param $0 i32) (result i32)
;; CHECK-TEXT-NEXT: (call_ref $i32-i32
;; CHECK-TEXT-NEXT: (i32.const 42)
;; CHECK-TEXT-NEXT: (ref.func $call-ref-more)
@@ -104,13 +104,13 @@
(func $call-ref-more (param i32) (result i32)
(call_ref $i32-i32 (i32.const 42) (ref.func $call-ref-more))
)
- ;; CHECK-BINARY: (func $call_from-param (param $f (ref $i32-i32)) (result i32)
+ ;; CHECK-BINARY: (func $call_from-param (type $ref|$i32-i32|_=>_i32) (param $f (ref $i32-i32)) (result i32)
;; CHECK-BINARY-NEXT: (call_ref $i32-i32
;; CHECK-BINARY-NEXT: (i32.const 42)
;; CHECK-BINARY-NEXT: (local.get $f)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $call_from-param (param $f (ref $i32-i32)) (result i32)
+ ;; CHECK-TEXT: (func $call_from-param (type $ref|$i32-i32|_=>_i32) (param $f (ref $i32-i32)) (result i32)
;; CHECK-TEXT-NEXT: (call_ref $i32-i32
;; CHECK-TEXT-NEXT: (i32.const 42)
;; CHECK-TEXT-NEXT: (local.get $f)
@@ -119,13 +119,13 @@
(func $call_from-param (param $f (ref $i32-i32)) (result i32)
(call_ref $i32-i32 (i32.const 42) (local.get $f))
)
- ;; CHECK-BINARY: (func $call_from-param-null (param $f (ref null $i32-i32)) (result i32)
+ ;; CHECK-BINARY: (func $call_from-param-null (type $ref?|$i32-i32|_=>_i32) (param $f (ref null $i32-i32)) (result i32)
;; CHECK-BINARY-NEXT: (call_ref $i32-i32
;; CHECK-BINARY-NEXT: (i32.const 42)
;; CHECK-BINARY-NEXT: (local.get $f)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $call_from-param-null (param $f (ref null $i32-i32)) (result i32)
+ ;; CHECK-TEXT: (func $call_from-param-null (type $ref?|$i32-i32|_=>_i32) (param $f (ref null $i32-i32)) (result i32)
;; CHECK-TEXT-NEXT: (call_ref $i32-i32
;; CHECK-TEXT-NEXT: (i32.const 42)
;; CHECK-TEXT-NEXT: (local.get $f)
@@ -134,7 +134,7 @@
(func $call_from-param-null (param $f (ref null $i32-i32)) (result i32)
(call_ref $i32-i32 (i32.const 42) (local.get $f))
)
- ;; CHECK-BINARY: (func $call_from-local-null (result i32)
+ ;; CHECK-BINARY: (func $call_from-local-null (type $none_=>_i32) (result i32)
;; CHECK-BINARY-NEXT: (local $f (ref null $i32-i32))
;; CHECK-BINARY-NEXT: (local.set $f
;; CHECK-BINARY-NEXT: (ref.func $call-ref-more)
@@ -144,7 +144,7 @@
;; CHECK-BINARY-NEXT: (local.get $f)
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $call_from-local-null (result i32)
+ ;; CHECK-TEXT: (func $call_from-local-null (type $none_=>_i32) (result i32)
;; CHECK-TEXT-NEXT: (local $f (ref null $i32-i32))
;; CHECK-TEXT-NEXT: (local.set $f
;; CHECK-TEXT-NEXT: (ref.func $call-ref-more)
@@ -159,22 +159,22 @@
(local.set $f (ref.func $call-ref-more))
(call_ref $i32-i32 (i32.const 42) (local.get $f))
)
- ;; CHECK-BINARY: (func $ref-in-sig (param $0 f64) (result (ref null $=>eqref))
+ ;; CHECK-BINARY: (func $ref-in-sig (type $f64_=>_ref_null<_->_eqref>) (param $0 f64) (result (ref null $=>eqref))
;; CHECK-BINARY-NEXT: (ref.null nofunc)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $ref-in-sig (param $0 f64) (result (ref null $=>eqref))
+ ;; CHECK-TEXT: (func $ref-in-sig (type $f64_=>_ref_null<_->_eqref>) (param $0 f64) (result (ref null $=>eqref))
;; CHECK-TEXT-NEXT: (ref.null nofunc)
;; CHECK-TEXT-NEXT: )
(func $ref-in-sig (param $0 f64) (result (ref null $=>eqref))
(ref.null $=>eqref)
)
- ;; CHECK-BINARY: (func $type-only-in-tuple-local
+ ;; CHECK-BINARY: (func $type-only-in-tuple-local (type $void)
;; CHECK-BINARY-NEXT: (local $x i32)
;; CHECK-BINARY-NEXT: (local $1 f64)
;; CHECK-BINARY-NEXT: (local $2 (ref null $=>anyref))
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $type-only-in-tuple-local
+ ;; CHECK-TEXT: (func $type-only-in-tuple-local (type $void)
;; CHECK-TEXT-NEXT: (local $x i32)
;; CHECK-TEXT-NEXT: (local $1 f64)
;; CHECK-TEXT-NEXT: (local $2 (ref null $=>anyref))
@@ -183,7 +183,7 @@
(func $type-only-in-tuple-local
(local $x (i32 (ref null $=>anyref) f64))
)
- ;; CHECK-BINARY: (func $type-only-in-tuple-block
+ ;; CHECK-BINARY: (func $type-only-in-tuple-block (type $void)
;; CHECK-BINARY-NEXT: (local $0 (i32 (ref null $mixed_results) f64))
;; CHECK-BINARY-NEXT: (local $1 (ref null $mixed_results))
;; CHECK-BINARY-NEXT: (local $2 i32)
@@ -218,7 +218,7 @@
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $type-only-in-tuple-block
+ ;; CHECK-TEXT: (func $type-only-in-tuple-block (type $void)
;; CHECK-TEXT-NEXT: (local $0 (i32 (ref null $mixed_results) f64))
;; CHECK-TEXT-NEXT: (local $1 (ref null $mixed_results))
;; CHECK-TEXT-NEXT: (local $2 i32)
@@ -260,7 +260,7 @@
)
)
)
- ;; CHECK-BINARY: (func $ref-types-first
+ ;; CHECK-BINARY: (func $ref-types-first (type $void)
;; CHECK-BINARY-NEXT: (local $r1 (ref null $mixed_results))
;; CHECK-BINARY-NEXT: (local $r2 (ref null $mixed_results))
;; CHECK-BINARY-NEXT: (local $r3 anyref)
@@ -272,7 +272,7 @@
;; CHECK-BINARY-NEXT: (local $i3 i64)
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $ref-types-first
+ ;; CHECK-TEXT: (func $ref-types-first (type $void)
;; CHECK-TEXT-NEXT: (local $r1 (ref null $mixed_results))
;; CHECK-TEXT-NEXT: (local $r2 (ref null $mixed_results))
;; CHECK-TEXT-NEXT: (local $r3 anyref)
@@ -299,7 +299,7 @@
(local $r5 anyref)
(local $r6 funcref)
)
- ;; CHECK-BINARY: (func $mvp-types-first
+ ;; CHECK-BINARY: (func $mvp-types-first (type $void)
;; CHECK-BINARY-NEXT: (local $i1 i32)
;; CHECK-BINARY-NEXT: (local $i2 i64)
;; CHECK-BINARY-NEXT: (local $i3 i64)
@@ -311,7 +311,7 @@
;; CHECK-BINARY-NEXT: (local $r6 funcref)
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $mvp-types-first
+ ;; CHECK-TEXT: (func $mvp-types-first (type $void)
;; CHECK-TEXT-NEXT: (local $i1 i32)
;; CHECK-TEXT-NEXT: (local $i2 i64)
;; CHECK-TEXT-NEXT: (local $i3 i64)
@@ -336,7 +336,7 @@
(local $r5 anyref)
(local $r6 funcref)
)
- ;; CHECK-BINARY: (func $mvp-types-first-param (param $r0 (ref null $mixed_results))
+ ;; CHECK-BINARY: (func $mvp-types-first-param (type $ref?|$mixed_results|_=>_none) (param $r0 (ref null $mixed_results))
;; CHECK-BINARY-NEXT: (local $i1 i32)
;; CHECK-BINARY-NEXT: (local $i2 i64)
;; CHECK-BINARY-NEXT: (local $i3 i64)
@@ -348,7 +348,7 @@
;; CHECK-BINARY-NEXT: (local $r6 funcref)
;; CHECK-BINARY-NEXT: (nop)
;; CHECK-BINARY-NEXT: )
- ;; CHECK-TEXT: (func $mvp-types-first-param (param $r0 (ref null $mixed_results))
+ ;; CHECK-TEXT: (func $mvp-types-first-param (type $ref?|$mixed_results|_=>_none) (param $r0 (ref null $mixed_results))
;; CHECK-TEXT-NEXT: (local $i1 i32)
;; CHECK-TEXT-NEXT: (local $i2 i64)
;; CHECK-TEXT-NEXT: (local $i3 i64)
@@ -386,6 +386,8 @@
;; CHECK-NODEBUG: (type $none_=>_i32 (func (result i32)))
+;; CHECK-NODEBUG: (type $none_=>_eqref (func (result eqref)))
+
;; CHECK-NODEBUG: (type $f64_=>_ref?|none_->_eqref| (func (param f64) (result (ref null $none_=>_eqref))))
;; CHECK-NODEBUG: (type $none_=>_anyref (func (result anyref)))
@@ -394,44 +396,42 @@
;; CHECK-NODEBUG: (type $ref?|none_->_anyref_f32_anyref_f32|_=>_none (func (param (ref null $none_=>_anyref_f32_anyref_f32))))
-;; CHECK-NODEBUG: (type $none_=>_eqref (func (result eqref)))
-
;; CHECK-NODEBUG: (elem declare func $0 $2)
-;; CHECK-NODEBUG: (func $0
+;; CHECK-NODEBUG: (func $0 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (call_ref $none_=>_none
;; CHECK-NODEBUG-NEXT: (ref.func $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $1
+;; CHECK-NODEBUG: (func $1 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (return_call_ref $none_=>_none
;; CHECK-NODEBUG-NEXT: (ref.func $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $2 (param $0 i32) (result i32)
+;; CHECK-NODEBUG: (func $2 (type $i32_=>_i32) (param $0 i32) (result i32)
;; CHECK-NODEBUG-NEXT: (call_ref $i32_=>_i32
;; CHECK-NODEBUG-NEXT: (i32.const 42)
;; CHECK-NODEBUG-NEXT: (ref.func $2)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $3 (param $0 (ref $i32_=>_i32)) (result i32)
+;; CHECK-NODEBUG: (func $3 (type $ref|i32_->_i32|_=>_i32) (param $0 (ref $i32_=>_i32)) (result i32)
;; CHECK-NODEBUG-NEXT: (call_ref $i32_=>_i32
;; CHECK-NODEBUG-NEXT: (i32.const 42)
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $4 (param $0 (ref null $i32_=>_i32)) (result i32)
+;; CHECK-NODEBUG: (func $4 (type $ref?|i32_->_i32|_=>_i32) (param $0 (ref null $i32_=>_i32)) (result i32)
;; CHECK-NODEBUG-NEXT: (call_ref $i32_=>_i32
;; CHECK-NODEBUG-NEXT: (i32.const 42)
;; CHECK-NODEBUG-NEXT: (local.get $0)
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $5 (result i32)
+;; CHECK-NODEBUG: (func $5 (type $none_=>_i32) (result i32)
;; CHECK-NODEBUG-NEXT: (local $0 (ref null $i32_=>_i32))
;; CHECK-NODEBUG-NEXT: (local.set $0
;; CHECK-NODEBUG-NEXT: (ref.func $2)
@@ -442,18 +442,18 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $6 (param $0 f64) (result (ref null $none_=>_eqref))
+;; CHECK-NODEBUG: (func $6 (type $f64_=>_ref?|none_->_eqref|) (param $0 f64) (result (ref null $none_=>_eqref))
;; CHECK-NODEBUG-NEXT: (ref.null nofunc)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $7
+;; CHECK-NODEBUG: (func $7 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (local $0 i32)
;; CHECK-NODEBUG-NEXT: (local $1 f64)
;; CHECK-NODEBUG-NEXT: (local $2 (ref null $none_=>_anyref))
;; CHECK-NODEBUG-NEXT: (nop)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $8
+;; CHECK-NODEBUG: (func $8 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (local $0 (i32 (ref null $none_=>_anyref_f32_anyref_f32) f64))
;; CHECK-NODEBUG-NEXT: (local $1 (ref null $none_=>_anyref_f32_anyref_f32))
;; CHECK-NODEBUG-NEXT: (local $2 i32)
@@ -489,7 +489,7 @@
;; CHECK-NODEBUG-NEXT: )
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $9
+;; CHECK-NODEBUG: (func $9 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (local $0 (ref null $none_=>_anyref_f32_anyref_f32))
;; CHECK-NODEBUG-NEXT: (local $1 (ref null $none_=>_anyref_f32_anyref_f32))
;; CHECK-NODEBUG-NEXT: (local $2 anyref)
@@ -502,7 +502,7 @@
;; CHECK-NODEBUG-NEXT: (nop)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $10
+;; CHECK-NODEBUG: (func $10 (type $none_=>_none)
;; CHECK-NODEBUG-NEXT: (local $0 i32)
;; CHECK-NODEBUG-NEXT: (local $1 i64)
;; CHECK-NODEBUG-NEXT: (local $2 i64)
@@ -515,7 +515,7 @@
;; CHECK-NODEBUG-NEXT: (nop)
;; CHECK-NODEBUG-NEXT: )
-;; CHECK-NODEBUG: (func $11 (param $0 (ref null $none_=>_anyref_f32_anyref_f32))
+;; CHECK-NODEBUG: (func $11 (type $ref?|none_->_anyref_f32_anyref_f32|_=>_none) (param $0 (ref null $none_=>_anyref_f32_anyref_f32))
;; CHECK-NODEBUG-NEXT: (local $1 i32)
;; CHECK-NODEBUG-NEXT: (local $2 i64)
;; CHECK-NODEBUG-NEXT: (local $3 i64)
diff --git a/test/lit/validation/eqref.wast b/test/lit/validation/eqref.wast
index 4c97ad39b..8de1e93fa 100644
--- a/test/lit/validation/eqref.wast
+++ b/test/lit/validation/eqref.wast
@@ -6,7 +6,7 @@
;; NO-GC: all used types should be allowed
-;; GC: (func $foo (param $x eqref)
+;; GC: (func $foo (type $eqref_=>_none) (param $x eqref)
(module
(func $foo (param $x eqref)
diff --git a/test/lit/validation/nn-tuples.wast b/test/lit/validation/nn-tuples.wast
index 5ecf55fbd..2a621face 100644
--- a/test/lit/validation/nn-tuples.wast
+++ b/test/lit/validation/nn-tuples.wast
@@ -6,7 +6,7 @@
;; Test for non-nullable types in tuples
(module
- ;; CHECK: (func $foo
+ ;; CHECK: (func $foo (type $none_=>_none)
;; CHECK-NEXT: (local $tuple ((ref any) (ref any)))
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
diff --git a/test/lit/wasm-split/instrument-in-memory.wast b/test/lit/wasm-split/instrument-in-memory.wast
index 3a3c19d7f..3208b0b5d 100644
--- a/test/lit/wasm-split/instrument-in-memory.wast
+++ b/test/lit/wasm-split/instrument-in-memory.wast
@@ -1,8 +1,8 @@
-;; RUN: wasm-split %s --instrument --in-memory -all -S -o - | filecheck %s
+;; RUN: wasm-split %s --instrument --in-memory --enable-threads -S -o - | filecheck %s
;; Check that the output round trips and validates as well
-;; RUN: wasm-split %s --instrument --in-memory -all -g -o %t.wasm
-;; RUN: wasm-opt -all %t.wasm -S -o -
+;; RUN: wasm-split %s --instrument --in-memory --enable-threads -g -o %t.wasm
+;; RUN: wasm-opt %t.wasm --enable-threads -S -o -
(module
(import "env" "foo" (func $foo))
diff --git a/test/lit/wasm-split/instrument-in-secondary-memory.wast b/test/lit/wasm-split/instrument-in-secondary-memory.wast
index 3e012293b..bac67f717 100644
--- a/test/lit/wasm-split/instrument-in-secondary-memory.wast
+++ b/test/lit/wasm-split/instrument-in-secondary-memory.wast
@@ -1,8 +1,8 @@
-;; RUN: wasm-split %s --instrument --in-secondary-memory -all -S -o - | filecheck %s
+;; RUN: wasm-split %s --instrument --in-secondary-memory --enable-threads --enable-multi-memories -S -o - | filecheck %s
;; Check that the output round trips and validates as well
-;; RUN: wasm-split %s --instrument --in-secondary-memory -all -g -o %t.wasm
-;; RUN: wasm-opt -all %t.wasm -S -o -
+;; RUN: wasm-split %s --instrument --in-secondary-memory --enable-threads --enable-multi-memories -g -o %t.wasm
+;; RUN: wasm-opt --enable-threads --enable-multi-memories %t.wasm -S -o -
(module
(import "env" "foo" (func $foo))
diff --git a/test/lit/wat-kitchen-sink.wast b/test/lit/wat-kitchen-sink.wast
index ca81a8a6a..b7483f68b 100644
--- a/test/lit/wat-kitchen-sink.wast
+++ b/test/lit/wat-kitchen-sink.wast
@@ -5,103 +5,103 @@
(module $parse
;; types
- ;; CHECK: (type $pair (struct_subtype (field (mut i32)) (field (mut i64)) data))
+ ;; CHECK: (type $pair (struct (field (mut i32)) (field (mut i64))))
- ;; CHECK: (type $void (func_subtype func))
+ ;; CHECK: (type $void (func))
- ;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func))
+ ;; CHECK: (type $none_=>_i32 (func (result i32)))
- ;; CHECK: (type $ret2 (func_subtype (result i32 i32) func))
+ ;; CHECK: (type $ret2 (func (result i32 i32)))
(type $ret2 (func (result i32 i32)))
(rec
- ;; CHECK: (type $i32_i64_=>_none (func_subtype (param i32 i64) func))
+ ;; CHECK: (type $i32_i64_=>_none (func (param i32 i64)))
- ;; CHECK: (type $i32_=>_none (func_subtype (param i32) func))
+ ;; CHECK: (type $i32_=>_none (func (param i32)))
- ;; CHECK: (type $v128_i32_=>_v128 (func_subtype (param v128 i32) (result v128) func))
+ ;; CHECK: (type $v128_i32_=>_v128 (func (param v128 i32) (result v128)))
- ;; CHECK: (type $many (func_subtype (param i32 i64 f32 f64) (result anyref (ref func)) func))
+ ;; CHECK: (type $many (func (param i32 i64 f32 f64) (result anyref (ref func))))
- ;; CHECK: (type $i32_i32_=>_none (func_subtype (param i32 i32) func))
+ ;; CHECK: (type $i32_i32_=>_none (func (param i32 i32)))
- ;; CHECK: (type $i32_i32_f64_f64_=>_none (func_subtype (param i32 i32 f64 f64) func))
+ ;; CHECK: (type $i32_i32_f64_f64_=>_none (func (param i32 i32 f64 f64)))
- ;; CHECK: (type $i64_=>_none (func_subtype (param i64) func))
+ ;; CHECK: (type $i64_=>_none (func (param i64)))
- ;; CHECK: (type $i32_i32_i32_=>_none (func_subtype (param i32 i32 i32) func))
+ ;; CHECK: (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
- ;; CHECK: (type $v128_=>_i32 (func_subtype (param v128) (result i32) func))
+ ;; CHECK: (type $v128_=>_i32 (func (param v128) (result i32)))
- ;; CHECK: (type $v128_v128_=>_v128 (func_subtype (param v128 v128) (result v128) func))
+ ;; CHECK: (type $v128_v128_=>_v128 (func (param v128 v128) (result v128)))
- ;; CHECK: (type $v128_v128_v128_=>_v128 (func_subtype (param v128 v128 v128) (result v128) func))
+ ;; CHECK: (type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
- ;; CHECK: (type $i32_i64_v128_=>_none (func_subtype (param i32 i64 v128) func))
+ ;; CHECK: (type $i32_i64_v128_=>_none (func (param i32 i64 v128)))
- ;; CHECK: (type $i32_i32_i64_i64_=>_none (func_subtype (param i32 i32 i64 i64) func))
+ ;; CHECK: (type $i32_i32_i64_i64_=>_none (func (param i32 i32 i64 i64)))
- ;; CHECK: (type $i32_=>_i32 (func_subtype (param i32) (result i32) func))
+ ;; CHECK: (type $i32_=>_i32 (func (param i32) (result i32)))
- ;; CHECK: (type $i32_i64_=>_i32_i64 (func_subtype (param i32 i64) (result i32 i64) func))
+ ;; CHECK: (type $i32_i64_=>_i32_i64 (func (param i32 i64) (result i32 i64)))
- ;; CHECK: (type $i64_=>_i32_i64 (func_subtype (param i64) (result i32 i64) func))
+ ;; CHECK: (type $i64_=>_i32_i64 (func (param i64) (result i32 i64)))
- ;; CHECK: (type $i32_=>_i32_i64 (func_subtype (param i32) (result i32 i64) func))
+ ;; CHECK: (type $i32_=>_i32_i64 (func (param i32) (result i32 i64)))
- ;; CHECK: (type $none_=>_i32_i64 (func_subtype (result i32 i64) func))
+ ;; CHECK: (type $none_=>_i32_i64 (func (result i32 i64)))
- ;; CHECK: (type $anyref_=>_none (func_subtype (param anyref) func))
+ ;; CHECK: (type $anyref_=>_none (func (param anyref)))
- ;; CHECK: (type $eqref_eqref_=>_i32 (func_subtype (param eqref eqref) (result i32) func))
+ ;; CHECK: (type $eqref_eqref_=>_i32 (func (param eqref eqref) (result i32)))
- ;; CHECK: (type $i32_=>_i31ref (func_subtype (param i32) (result i31ref) func))
+ ;; CHECK: (type $i32_=>_i31ref (func (param i32) (result i31ref)))
- ;; CHECK: (type $i31ref_=>_none (func_subtype (param i31ref) func))
+ ;; CHECK: (type $i31ref_=>_none (func (param i31ref)))
- ;; CHECK: (type $i32_i64_=>_ref|$pair| (func_subtype (param i32 i64) (result (ref $pair)) func))
+ ;; CHECK: (type $i32_i64_=>_ref|$pair| (func (param i32 i64) (result (ref $pair))))
- ;; CHECK: (type $none_=>_ref|$pair| (func_subtype (result (ref $pair)) func))
+ ;; CHECK: (type $none_=>_ref|$pair| (func (result (ref $pair))))
- ;; CHECK: (type $ref|$pair|_=>_i32 (func_subtype (param (ref $pair)) (result i32) func))
+ ;; CHECK: (type $ref|$pair|_=>_i32 (func (param (ref $pair)) (result i32)))
- ;; CHECK: (type $ref|$pair|_=>_i64 (func_subtype (param (ref $pair)) (result i64) func))
+ ;; CHECK: (type $ref|$pair|_=>_i64 (func (param (ref $pair)) (result i64)))
- ;; CHECK: (type $ref|$pair|_i32_=>_none (func_subtype (param (ref $pair) i32) func))
+ ;; CHECK: (type $ref|$pair|_i32_=>_none (func (param (ref $pair) i32)))
- ;; CHECK: (type $ref|$pair|_i64_=>_none (func_subtype (param (ref $pair) i64) func))
+ ;; CHECK: (type $ref|$pair|_i64_=>_none (func (param (ref $pair) i64)))
;; CHECK: (rec
- ;; CHECK-NEXT: (type $s0 (struct_subtype data))
+ ;; CHECK-NEXT: (type $s0 (struct ))
(type $s0 (sub (struct)))
- ;; CHECK: (type $s1 (struct_subtype data))
+ ;; CHECK: (type $s1 (struct ))
(type $s1 (struct (field)))
)
(rec)
- ;; CHECK: (type $s2 (struct_subtype (field i32) data))
+ ;; CHECK: (type $s2 (struct (field i32)))
(type $s2 (struct i32))
- ;; CHECK: (type $s3 (struct_subtype (field i64) data))
+ ;; CHECK: (type $s3 (struct (field i64)))
(type $s3 (struct (field i64)))
- ;; CHECK: (type $s4 (struct_subtype (field $x f32) data))
+ ;; CHECK: (type $s4 (struct (field $x f32)))
(type $s4 (struct (field $x f32)))
- ;; CHECK: (type $s5 (struct_subtype (field i32) (field i64) data))
+ ;; CHECK: (type $s5 (struct (field i32) (field i64)))
(type $s5 (struct i32 i64))
- ;; CHECK: (type $s6 (struct_subtype (field i64) (field f32) data))
+ ;; CHECK: (type $s6 (struct (field i64) (field f32)))
(type $s6 (struct (field i64 f32)))
- ;; CHECK: (type $s7 (struct_subtype (field $x f32) (field $y f64) data))
+ ;; CHECK: (type $s7 (struct (field $x f32) (field $y f64)))
(type $s7 (struct (field $x f32) (field $y f64)))
- ;; CHECK: (type $s8 (struct_subtype (field i32) (field i64) (field $z f32) (field f64) (field (mut i32)) data))
+ ;; CHECK: (type $s8 (struct (field i32) (field i64) (field $z f32) (field f64) (field (mut i32))))
(type $s8 (struct i32 (field) i64 (field $z f32) (field f64 (mut i32))))
- ;; CHECK: (type $a0 (array_subtype i32 data))
+ ;; CHECK: (type $a0 (array i32))
(type $a0 (array i32))
- ;; CHECK: (type $a1 (array_subtype i64 data))
+ ;; CHECK: (type $a1 (array i64))
(type $a1 (array (field i64)))
- ;; CHECK: (type $a2 (array_subtype (mut f32) data))
+ ;; CHECK: (type $a2 (array (mut f32)))
(type $a2 (array (mut f32)))
- ;; CHECK: (type $a3 (array_subtype (mut f64) data))
+ ;; CHECK: (type $a3 (array (mut f64)))
(type $a3 (array (field $x (mut f64))))
(type $pair (struct (mut i32) (mut i64)))
@@ -126,7 +126,7 @@
(global (import "mod" "") (ref null $many))
(global (mut i32) i32.const 0)
- ;; CHECK: (type $ref|$s0|_ref|$s1|_ref|$s2|_ref|$s3|_ref|$s4|_ref|$s5|_ref|$s6|_ref|$s7|_ref|$s8|_ref|$a0|_ref|$a1|_ref|$a2|_ref|$a3|_ref|$subvoid|_ref|$submany|_=>_none (func_subtype (param (ref $s0) (ref $s1) (ref $s2) (ref $s3) (ref $s4) (ref $s5) (ref $s6) (ref $s7) (ref $s8) (ref $a0) (ref $a1) (ref $a2) (ref $a3) (ref $subvoid) (ref $submany)) func))
+ ;; CHECK: (type $ref|$s0|_ref|$s1|_ref|$s2|_ref|$s3|_ref|$s4|_ref|$s5|_ref|$s6|_ref|$s7|_ref|$s8|_ref|$a0|_ref|$a1|_ref|$a2|_ref|$a3|_ref|$subvoid|_ref|$submany|_=>_none (func (param (ref $s0) (ref $s1) (ref $s2) (ref $s3) (ref $s4) (ref $s5) (ref $s6) (ref $s7) (ref $s8) (ref $a0) (ref $a1) (ref $a2) (ref $a3) (ref $subvoid) (ref $submany))))
;; CHECK: (import "" "mem" (memory $mimport$1 0))
diff --git a/test/memory-import.wast.from-wast b/test/memory-import.wast.from-wast
index 4d27bcc4e..70fc97057 100644
--- a/test/memory-import.wast.from-wast
+++ b/test/memory-import.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func (result i32)))
(import "env" "memory" (memory $0 1 1))
- (func $foo (result i32)
+ (func $foo (type $0) (result i32)
(i32.load offset=13
(i32.const 37)
)
diff --git a/test/memory-import.wast.fromBinary b/test/memory-import.wast.fromBinary
index e03f853d0..b83ca836a 100644
--- a/test/memory-import.wast.fromBinary
+++ b/test/memory-import.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func (result i32)))
(import "env" "memory" (memory $0 1 1))
- (func $foo (result i32)
+ (func $foo (type $0) (result i32)
(i32.load offset=13
(i32.const 37)
)
diff --git a/test/memory-import.wast.fromBinary.noDebugInfo b/test/memory-import.wast.fromBinary.noDebugInfo
index 196a1b0d7..59e910629 100644
--- a/test/memory-import.wast.fromBinary.noDebugInfo
+++ b/test/memory-import.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_i32 (func (result i32)))
(import "env" "memory" (memory $mimport$0 1 1))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(i32.load offset=13
(i32.const 37)
)
diff --git a/test/memory-import64.wast.from-wast b/test/memory-import64.wast.from-wast
index 8f9d70886..cad69d49b 100644
--- a/test/memory-import64.wast.from-wast
+++ b/test/memory-import64.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func (result i32)))
(import "env" "memory" (memory $0 i64 1 1))
- (func $foo (result i32)
+ (func $foo (type $0) (result i32)
(i32.load offset=13
(i64.const 37)
)
diff --git a/test/memory-import64.wast.fromBinary b/test/memory-import64.wast.fromBinary
index c89e3a6ca..dca6e27b6 100644
--- a/test/memory-import64.wast.fromBinary
+++ b/test/memory-import64.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func (result i32)))
(import "env" "memory" (memory $0 i64 1 1))
- (func $foo (result i32)
+ (func $foo (type $0) (result i32)
(i32.load offset=13
(i64.const 37)
)
diff --git a/test/memory-import64.wast.fromBinary.noDebugInfo b/test/memory-import64.wast.fromBinary.noDebugInfo
index ff5cd6fb2..d64681ab8 100644
--- a/test/memory-import64.wast.fromBinary.noDebugInfo
+++ b/test/memory-import64.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_i32 (func (result i32)))
(import "env" "memory" (memory $mimport$0 i64 1 1))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(i32.load offset=13
(i64.const 37)
)
diff --git a/test/metadce/corners.wast.dced b/test/metadce/corners.wast.dced
index c91acc69e..ba5515e94 100644
--- a/test/metadce/corners.wast.dced
+++ b/test/metadce/corners.wast.dced
@@ -7,7 +7,7 @@
(global $STACKTOP (mut i32) (global.get $STACKTOP$asm2wasm$import))
(elem (i32.const 0) $imported_table_func)
(export "stackAlloc" (func $stackAlloc))
- (func $stackAlloc
+ (func $stackAlloc (type $none_=>_none)
(drop
(global.get $STACKTOP)
)
diff --git a/test/metadce/outside.wast.dced b/test/metadce/outside.wast.dced
index 246019dc9..be06f17b6 100644
--- a/test/metadce/outside.wast.dced
+++ b/test/metadce/outside.wast.dced
@@ -10,10 +10,10 @@
(data (global.get $from_segment) "abcd")
(elem (global.get $from_segment_2) $table_func)
(export "wasm_func" (func $a_wasm_func))
- (func $table_func
+ (func $table_func (type $none_=>_none)
(nop)
)
- (func $a_wasm_func
+ (func $a_wasm_func (type $none_=>_none)
(call $a_js_func)
(drop
(global.get $__THREW__)
diff --git a/test/metadce/rooted-export.wast.dced b/test/metadce/rooted-export.wast.dced
index dfa486c4b..62001de23 100644
--- a/test/metadce/rooted-export.wast.dced
+++ b/test/metadce/rooted-export.wast.dced
@@ -4,7 +4,7 @@
(tag $b_wasm_tag (param i32))
(export "wasm_func_b" (func $b_wasm_func))
(export "wasm_tag_b" (tag $b_wasm_tag))
- (func $b_wasm_func
+ (func $b_wasm_func (type $none_=>_none)
(unreachable)
)
)
diff --git a/test/metadce/spanning_cycle.wast.dced b/test/metadce/spanning_cycle.wast.dced
index 778ce0a51..b7a26c699 100644
--- a/test/metadce/spanning_cycle.wast.dced
+++ b/test/metadce/spanning_cycle.wast.dced
@@ -4,7 +4,7 @@
(memory $0 1 1)
(data "Hello, datacount section!")
(export "wasm_func_a" (func $a_wasm_func))
- (func $a_wasm_func
+ (func $a_wasm_func (type $none_=>_none)
(memory.init 0
(i32.const 0)
(i32.const 0)
diff --git a/test/metadce/tag.wast.dced b/test/metadce/tag.wast.dced
index 78ae287f1..704eee1e1 100644
--- a/test/metadce/tag.wast.dced
+++ b/test/metadce/tag.wast.dced
@@ -3,7 +3,7 @@
(import "env" "imported_tag" (tag $t0 (param)))
(tag $t1 (param))
(export "test" (func $test))
- (func $test
+ (func $test (type $none_=>_none)
(try $try
(do
(throw $t0)
diff --git a/test/metadce/threaded.wast.dced b/test/metadce/threaded.wast.dced
index 8b04aee92..0554b26a1 100644
--- a/test/metadce/threaded.wast.dced
+++ b/test/metadce/threaded.wast.dced
@@ -7,16 +7,16 @@
(export "wasm_func2" (func $wasm_func_2))
(export "wasm_func3" (func $wasm_func_3))
(export "wasm_func4" (func $wasm_func_4))
- (func $wasm_func_4
+ (func $wasm_func_4 (type $none_=>_none)
(nop)
)
- (func $wasm_func_3
+ (func $wasm_func_3 (type $none_=>_none)
(call $js_func_4)
)
- (func $wasm_func_2
+ (func $wasm_func_2 (type $none_=>_none)
(call $js_func_3)
)
- (func $wasm_func_1
+ (func $wasm_func_1 (type $none_=>_none)
(call $js_func_2)
)
)
diff --git a/test/metadce/threaded_cycle.wast.dced b/test/metadce/threaded_cycle.wast.dced
index 936446ddf..4f130d3b1 100644
--- a/test/metadce/threaded_cycle.wast.dced
+++ b/test/metadce/threaded_cycle.wast.dced
@@ -8,16 +8,16 @@
(export "wasm_func2" (func $wasm_func_2))
(export "wasm_func3" (func $wasm_func_3))
(export "wasm_func4" (func $wasm_func_4))
- (func $wasm_func_4
+ (func $wasm_func_4 (type $none_=>_none)
(call $js_func_1)
)
- (func $wasm_func_3
+ (func $wasm_func_3 (type $none_=>_none)
(call $js_func_4)
)
- (func $wasm_func_2
+ (func $wasm_func_2 (type $none_=>_none)
(call $js_func_3)
)
- (func $wasm_func_1
+ (func $wasm_func_1 (type $none_=>_none)
(call $js_func_2)
)
)
diff --git a/test/min.wast.from-wast b/test/min.wast.from-wast
index f0c501672..d8de52edd 100644
--- a/test/min.wast.from-wast
+++ b/test/min.wast.from-wast
@@ -5,14 +5,14 @@
(type $3 (func (param i32 i32 i32) (result i32)))
(memory $0 256 256)
(export "floats" (func $floats))
- (func $floats (param $f f32) (result f32)
+ (func $floats (type $0) (param $f f32) (result f32)
(local $t f32)
(f32.add
(local.get $t)
(local.get $f)
)
)
- (func $neg (param $k i32) (param $p i32) (result f32)
+ (func $neg (type $1) (param $k i32) (param $p i32) (result f32)
(local $n f32)
(local.tee $n
(f32.neg
@@ -28,7 +28,7 @@
)
)
)
- (func $littleswitch (param $x i32) (result i32)
+ (func $littleswitch (type $2) (param $x i32) (result i32)
(block $topmost (result i32)
(block $switch-case$2
(block $switch-case$1
@@ -49,7 +49,7 @@
(i32.const 0)
)
)
- (func $f1 (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
+ (func $f1 (type $3) (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
(block $topmost (result i32)
(local.get $i3)
)
diff --git a/test/min.wast.fromBinary b/test/min.wast.fromBinary
index b8ec13306..ca4d197f6 100644
--- a/test/min.wast.fromBinary
+++ b/test/min.wast.fromBinary
@@ -5,14 +5,14 @@
(type $3 (func (param i32 i32 i32) (result i32)))
(memory $0 256 256)
(export "floats" (func $floats))
- (func $floats (param $f f32) (result f32)
+ (func $floats (type $0) (param $f f32) (result f32)
(local $t f32)
(f32.add
(local.get $t)
(local.get $f)
)
)
- (func $neg (param $k i32) (param $p i32) (result f32)
+ (func $neg (type $1) (param $k i32) (param $p i32) (result f32)
(local $n f32)
(local.tee $n
(f32.neg
@@ -28,7 +28,7 @@
)
)
)
- (func $littleswitch (param $x i32) (result i32)
+ (func $littleswitch (type $2) (param $x i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(block $label$3
@@ -48,7 +48,7 @@
)
)
)
- (func $f1 (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
+ (func $f1 (type $3) (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
(local.get $i3)
)
)
diff --git a/test/min.wast.fromBinary.noDebugInfo b/test/min.wast.fromBinary.noDebugInfo
index 4d13abb32..2a8589db1 100644
--- a/test/min.wast.fromBinary.noDebugInfo
+++ b/test/min.wast.fromBinary.noDebugInfo
@@ -5,14 +5,14 @@
(type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
(memory $0 256 256)
(export "floats" (func $0))
- (func $0 (param $0 f32) (result f32)
+ (func $0 (type $f32_=>_f32) (param $0 f32) (result f32)
(local $1 f32)
(f32.add
(local.get $1)
(local.get $0)
)
)
- (func $1 (param $0 i32) (param $1 i32) (result f32)
+ (func $1 (type $i32_i32_=>_f32) (param $0 i32) (param $1 i32) (result f32)
(local $2 f32)
(local.tee $2
(f32.neg
@@ -28,7 +28,7 @@
)
)
)
- (func $2 (param $0 i32) (result i32)
+ (func $2 (type $i32_=>_i32) (param $0 i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(block $label$3
@@ -48,7 +48,7 @@
)
)
)
- (func $3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
+ (func $3 (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local.get $2)
)
)
diff --git a/test/multi-memories-atomics64.wast.from-wast b/test/multi-memories-atomics64.wast.from-wast
index 603e26b5d..433602f8e 100644
--- a/test/multi-memories-atomics64.wast.from-wast
+++ b/test/multi-memories-atomics64.wast.from-wast
@@ -3,7 +3,7 @@
(memory $appMemory (shared i64 23 256))
(memory $dataMemory (shared i64 23 256))
(memory $instrumentMemory (shared i64 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -134,7 +134,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -199,7 +199,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -260,7 +260,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -345,7 +345,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/multi-memories-atomics64.wast.fromBinary b/test/multi-memories-atomics64.wast.fromBinary
index 565a5e63a..2fa4dfd32 100644
--- a/test/multi-memories-atomics64.wast.fromBinary
+++ b/test/multi-memories-atomics64.wast.fromBinary
@@ -3,7 +3,7 @@
(memory $appMemory (shared i64 23 256))
(memory $dataMemory (shared i64 23 256))
(memory $instrumentMemory (shared i64 23 256))
- (func $atomic-loadstore
+ (func $atomic-loadstore (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -134,7 +134,7 @@
(local.get $1)
)
)
- (func $atomic-rmw
+ (func $atomic-rmw (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -199,7 +199,7 @@
)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -260,7 +260,7 @@
)
)
)
- (func $atomic-wait-notify
+ (func $atomic-wait-notify (type $0)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -345,7 +345,7 @@
)
)
)
- (func $atomic-fence
+ (func $atomic-fence (type $0)
(atomic.fence)
)
)
diff --git a/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo b/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo
index 712877249..36bb41994 100644
--- a/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo
+++ b/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo
@@ -3,7 +3,7 @@
(memory $0 (shared i64 23 256))
(memory $1 (shared i64 23 256))
(memory $2 (shared i64 23 256))
- (func $0
+ (func $0 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -134,7 +134,7 @@
(local.get $1)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -199,7 +199,7 @@
)
)
)
- (func $2
+ (func $2 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -260,7 +260,7 @@
)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(local $0 i64)
(local $1 i64)
(local $2 i32)
@@ -345,7 +345,7 @@
)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(atomic.fence)
)
)
diff --git a/test/multi-memories-basics.wast.from-wast b/test/multi-memories-basics.wast.from-wast
index 7998b62f0..8daa23224 100644
--- a/test/multi-memories-basics.wast.from-wast
+++ b/test/multi-memories-basics.wast.from-wast
@@ -6,36 +6,36 @@
(memory $memory2 1 800)
(memory $memory3 1 400)
(data (i32.const 0) "abcd")
- (func $memory.fill
+ (func $memory.fill (type $none_=>_none)
(memory.fill $memory2
(i32.const 0)
(i32.const 1)
(i32.const 2)
)
)
- (func $memory.copy
+ (func $memory.copy (type $none_=>_none)
(memory.copy $memory2 $memory3
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $memory.init
+ (func $memory.init (type $none_=>_none)
(memory.init $memory1 0
(i32.const 0)
(i32.const 0)
(i32.const 45)
)
)
- (func $memory.grow (result i32)
+ (func $memory.grow (type $none_=>_i32) (result i32)
(memory.grow $memory3
(i32.const 10)
)
)
- (func $memory.size (result i32)
+ (func $memory.size (type $none_=>_i32) (result i32)
(memory.size $memory3)
)
- (func $loads
+ (func $loads (type $none_=>_none)
(drop
(i32.load $memory1
(i32.const 12)
@@ -87,7 +87,7 @@
)
)
)
- (func $stores
+ (func $stores (type $none_=>_none)
(i32.store $memory1
(i32.const 12)
(i32.const 115)
diff --git a/test/multi-memories-basics.wast.fromBinary b/test/multi-memories-basics.wast.fromBinary
index 62b926531..58371a62a 100644
--- a/test/multi-memories-basics.wast.fromBinary
+++ b/test/multi-memories-basics.wast.fromBinary
@@ -6,36 +6,36 @@
(memory $memory2 1 800)
(memory $memory3 1 400)
(data (i32.const 0) "abcd")
- (func $memory.fill
+ (func $memory.fill (type $none_=>_none)
(memory.fill $memory2
(i32.const 0)
(i32.const 1)
(i32.const 2)
)
)
- (func $memory.copy
+ (func $memory.copy (type $none_=>_none)
(memory.copy $memory2 $memory3
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $memory.init
+ (func $memory.init (type $none_=>_none)
(memory.init $memory1 0
(i32.const 0)
(i32.const 0)
(i32.const 45)
)
)
- (func $memory.grow (result i32)
+ (func $memory.grow (type $none_=>_i32) (result i32)
(memory.grow $memory3
(i32.const 10)
)
)
- (func $memory.size (result i32)
+ (func $memory.size (type $none_=>_i32) (result i32)
(memory.size $memory3)
)
- (func $loads
+ (func $loads (type $none_=>_none)
(drop
(i32.load $memory1
(i32.const 12)
@@ -87,7 +87,7 @@
)
)
)
- (func $stores
+ (func $stores (type $none_=>_none)
(i32.store $memory1
(i32.const 12)
(i32.const 115)
diff --git a/test/multi-memories-basics.wast.fromBinary.noDebugInfo b/test/multi-memories-basics.wast.fromBinary.noDebugInfo
index 061c0948b..150eca0b4 100644
--- a/test/multi-memories-basics.wast.fromBinary.noDebugInfo
+++ b/test/multi-memories-basics.wast.fromBinary.noDebugInfo
@@ -6,36 +6,36 @@
(memory $1 1 800)
(memory $2 1 400)
(data (i32.const 0) "abcd")
- (func $0
+ (func $0 (type $none_=>_none)
(memory.fill $1
(i32.const 0)
(i32.const 1)
(i32.const 2)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(memory.copy $1 $2
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $2
+ (func $2 (type $none_=>_none)
(memory.init $0 0
(i32.const 0)
(i32.const 0)
(i32.const 45)
)
)
- (func $3 (result i32)
+ (func $3 (type $none_=>_i32) (result i32)
(memory.grow $2
(i32.const 10)
)
)
- (func $4 (result i32)
+ (func $4 (type $none_=>_i32) (result i32)
(memory.size $2)
)
- (func $5
+ (func $5 (type $none_=>_none)
(drop
(i32.load $0
(i32.const 12)
@@ -87,7 +87,7 @@
)
)
)
- (func $6
+ (func $6 (type $none_=>_none)
(i32.store $0
(i32.const 12)
(i32.const 115)
diff --git a/test/multi-memories-simd.wast.from-wast b/test/multi-memories-simd.wast.from-wast
index 918d7fd9c..e156e8e95 100644
--- a/test/multi-memories-simd.wast.from-wast
+++ b/test/multi-memories-simd.wast.from-wast
@@ -6,312 +6,312 @@
(memory $memoryb 1 1)
(memory $memoryc 1 1)
(memory $memoryd 1 1)
- (func $v128.load (param $0 i32) (result v128)
+ (func $v128.load (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $memorya
(local.get $0)
)
)
- (func $v128.load2 (param $0 i32) (result v128)
+ (func $v128.load2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $memoryb
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i32) (result v128)
+ (func $v128.load8x8_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $memoryc
(local.get $0)
)
)
- (func $v128.load8x8_s2 (param $0 i32) (result v128)
+ (func $v128.load8x8_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $memoryb
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i32) (result v128)
+ (func $v128.load8x8_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $memoryd
(local.get $0)
)
)
- (func $v128.load8x8_u2 (param $0 i32) (result v128)
+ (func $v128.load8x8_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $memoryd
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i32) (result v128)
+ (func $v128.load16x4_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $memorya
(local.get $0)
)
)
- (func $v128.load16x4_s2 (param $0 i32) (result v128)
+ (func $v128.load16x4_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $memoryb
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i32) (result v128)
+ (func $v128.load16x4_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $memorya
(local.get $0)
)
)
- (func $v128.load16x4_u2 (param $0 i32) (result v128)
+ (func $v128.load16x4_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $memorya
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i32) (result v128)
+ (func $v128.load32x2_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $memoryc
(local.get $0)
)
)
- (func $v128.load32x2_s2 (param $0 i32) (result v128)
+ (func $v128.load32x2_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $memoryb
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i32) (result v128)
+ (func $v128.load32x2_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $memoryb
(local.get $0)
)
)
- (func $v128.load32x2_u2 (param $0 i32) (result v128)
+ (func $v128.load32x2_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $memoryc
(local.get $0)
)
)
- (func $v128.load8_splat (param $0 i32) (result v128)
+ (func $v128.load8_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $memoryb
(local.get $0)
)
)
- (func $v128.load8_splat2 (param $0 i32) (result v128)
+ (func $v128.load8_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $memoryb
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i32) (result v128)
+ (func $v128.load16_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $memorya
(local.get $0)
)
)
- (func $v128.load16_splat2 (param $0 i32) (result v128)
+ (func $v128.load16_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $memorya
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i32) (result v128)
+ (func $v128.load32_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $memoryb
(local.get $0)
)
)
- (func $v128.load32_splat2 (param $0 i32) (result v128)
+ (func $v128.load32_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $memoryd
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i32) (result v128)
+ (func $v128.load64_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $memoryb
(local.get $0)
)
)
- (func $v128.load64_splat2 (param $0 i32) (result v128)
+ (func $v128.load64_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $memorya
(local.get $0)
)
)
- (func $v128.store (param $0 i32) (param $1 v128)
+ (func $v128.store (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $memorya
(local.get $0)
(local.get $1)
)
)
- (func $v128.store2 (param $0 i32) (param $1 v128)
+ (func $v128.store2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $memoryb
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memorya align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryc offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memorya offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryd offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $memoryc 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryc 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memorya align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryd offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memorya offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryd offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_zero (param $0 i32) (result v128)
+ (func $v128.load32_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $memorya
(local.get $0)
)
)
- (func $v128.load32_zero2 (param $0 i32) (result v128)
+ (func $v128.load32_zero2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $memoryb
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i32) (result v128)
+ (func $v128.load64_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $memoryb
(local.get $0)
)
)
- (func $v128.load64_zero2 (param $0 i32) (result v128)
+ (func $v128.load64_zero2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $memoryc
(local.get $0)
)
diff --git a/test/multi-memories-simd.wast.fromBinary b/test/multi-memories-simd.wast.fromBinary
index 48cde73c3..2d64362fd 100644
--- a/test/multi-memories-simd.wast.fromBinary
+++ b/test/multi-memories-simd.wast.fromBinary
@@ -6,312 +6,312 @@
(memory $memoryb 1 1)
(memory $memoryc 1 1)
(memory $memoryd 1 1)
- (func $v128.load (param $0 i32) (result v128)
+ (func $v128.load (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $memorya
(local.get $0)
)
)
- (func $v128.load2 (param $0 i32) (result v128)
+ (func $v128.load2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $memoryb
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i32) (result v128)
+ (func $v128.load8x8_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $memoryc
(local.get $0)
)
)
- (func $v128.load8x8_s2 (param $0 i32) (result v128)
+ (func $v128.load8x8_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $memoryb
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i32) (result v128)
+ (func $v128.load8x8_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $memoryd
(local.get $0)
)
)
- (func $v128.load8x8_u2 (param $0 i32) (result v128)
+ (func $v128.load8x8_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $memoryd
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i32) (result v128)
+ (func $v128.load16x4_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $memorya
(local.get $0)
)
)
- (func $v128.load16x4_s2 (param $0 i32) (result v128)
+ (func $v128.load16x4_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $memoryb
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i32) (result v128)
+ (func $v128.load16x4_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $memorya
(local.get $0)
)
)
- (func $v128.load16x4_u2 (param $0 i32) (result v128)
+ (func $v128.load16x4_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $memorya
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i32) (result v128)
+ (func $v128.load32x2_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $memoryc
(local.get $0)
)
)
- (func $v128.load32x2_s2 (param $0 i32) (result v128)
+ (func $v128.load32x2_s2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $memoryb
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i32) (result v128)
+ (func $v128.load32x2_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $memoryb
(local.get $0)
)
)
- (func $v128.load32x2_u2 (param $0 i32) (result v128)
+ (func $v128.load32x2_u2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $memoryc
(local.get $0)
)
)
- (func $v128.load8_splat (param $0 i32) (result v128)
+ (func $v128.load8_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $memoryb
(local.get $0)
)
)
- (func $v128.load8_splat2 (param $0 i32) (result v128)
+ (func $v128.load8_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $memoryb
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i32) (result v128)
+ (func $v128.load16_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $memorya
(local.get $0)
)
)
- (func $v128.load16_splat2 (param $0 i32) (result v128)
+ (func $v128.load16_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $memorya
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i32) (result v128)
+ (func $v128.load32_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $memoryb
(local.get $0)
)
)
- (func $v128.load32_splat2 (param $0 i32) (result v128)
+ (func $v128.load32_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $memoryd
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i32) (result v128)
+ (func $v128.load64_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $memoryb
(local.get $0)
)
)
- (func $v128.load64_splat2 (param $0 i32) (result v128)
+ (func $v128.load64_splat2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $memorya
(local.get $0)
)
)
- (func $v128.store (param $0 i32) (param $1 v128)
+ (func $v128.store (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $memorya
(local.get $0)
(local.get $1)
)
)
- (func $v128.store2 (param $0 i32) (param $1 v128)
+ (func $v128.store2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $memoryb
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memorya align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryc offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryb offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memorya offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset2 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $memoryd offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $memoryd 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $memorya 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $memoryc 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryc 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memorya align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryd offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memorya offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryb offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset2 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $memoryd offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_zero (param $0 i32) (result v128)
+ (func $v128.load32_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $memorya
(local.get $0)
)
)
- (func $v128.load32_zero2 (param $0 i32) (result v128)
+ (func $v128.load32_zero2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $memoryb
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i32) (result v128)
+ (func $v128.load64_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $memoryb
(local.get $0)
)
)
- (func $v128.load64_zero2 (param $0 i32) (result v128)
+ (func $v128.load64_zero2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $memoryc
(local.get $0)
)
diff --git a/test/multi-memories-simd.wast.fromBinary.noDebugInfo b/test/multi-memories-simd.wast.fromBinary.noDebugInfo
index 583f5850d..943660428 100644
--- a/test/multi-memories-simd.wast.fromBinary.noDebugInfo
+++ b/test/multi-memories-simd.wast.fromBinary.noDebugInfo
@@ -6,312 +6,312 @@
(memory $1 1 1)
(memory $2 1 1)
(memory $3 1 1)
- (func $0 (param $0 i32) (result v128)
+ (func $0 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $0
(local.get $0)
)
)
- (func $1 (param $0 i32) (result v128)
+ (func $1 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load $1
(local.get $0)
)
)
- (func $2 (param $0 i32) (result v128)
+ (func $2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $2
(local.get $0)
)
)
- (func $3 (param $0 i32) (result v128)
+ (func $3 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s $1
(local.get $0)
)
)
- (func $4 (param $0 i32) (result v128)
+ (func $4 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $3
(local.get $0)
)
)
- (func $5 (param $0 i32) (result v128)
+ (func $5 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u $3
(local.get $0)
)
)
- (func $6 (param $0 i32) (result v128)
+ (func $6 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $0
(local.get $0)
)
)
- (func $7 (param $0 i32) (result v128)
+ (func $7 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s $1
(local.get $0)
)
)
- (func $8 (param $0 i32) (result v128)
+ (func $8 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $0
(local.get $0)
)
)
- (func $9 (param $0 i32) (result v128)
+ (func $9 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u $0
(local.get $0)
)
)
- (func $10 (param $0 i32) (result v128)
+ (func $10 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $2
(local.get $0)
)
)
- (func $11 (param $0 i32) (result v128)
+ (func $11 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s $1
(local.get $0)
)
)
- (func $12 (param $0 i32) (result v128)
+ (func $12 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $1
(local.get $0)
)
)
- (func $13 (param $0 i32) (result v128)
+ (func $13 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u $2
(local.get $0)
)
)
- (func $14 (param $0 i32) (result v128)
+ (func $14 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $1
(local.get $0)
)
)
- (func $15 (param $0 i32) (result v128)
+ (func $15 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat $1
(local.get $0)
)
)
- (func $16 (param $0 i32) (result v128)
+ (func $16 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $0
(local.get $0)
)
)
- (func $17 (param $0 i32) (result v128)
+ (func $17 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat $0
(local.get $0)
)
)
- (func $18 (param $0 i32) (result v128)
+ (func $18 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $1
(local.get $0)
)
)
- (func $19 (param $0 i32) (result v128)
+ (func $19 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat $3
(local.get $0)
)
)
- (func $20 (param $0 i32) (result v128)
+ (func $20 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $1
(local.get $0)
)
)
- (func $21 (param $0 i32) (result v128)
+ (func $21 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat $0
(local.get $0)
)
)
- (func $22 (param $0 i32) (param $1 v128)
+ (func $22 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $0
(local.get $0)
(local.get $1)
)
)
- (func $23 (param $0 i32) (param $1 v128)
+ (func $23 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store $1
(local.get $0)
(local.get $1)
)
)
- (func $24 (param $0 i32) (param $1 v128) (result v128)
+ (func $24 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $0 0
(local.get $0)
(local.get $1)
)
)
- (func $25 (param $0 i32) (param $1 v128) (result v128)
+ (func $25 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $26 (param $0 i32) (param $1 v128) (result v128)
+ (func $26 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $27 (param $0 i32) (param $1 v128) (result v128)
+ (func $27 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane $3 0
(local.get $0)
(local.get $1)
)
)
- (func $28 (param $0 i32) (param $1 v128) (result v128)
+ (func $28 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $0 0
(local.get $0)
(local.get $1)
)
)
- (func $29 (param $0 i32) (param $1 v128) (result v128)
+ (func $29 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $30 (param $0 i32) (param $1 v128) (result v128)
+ (func $30 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $3 0
(local.get $0)
(local.get $1)
)
)
- (func $31 (param $0 i32) (param $1 v128) (result v128)
+ (func $31 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $32 (param $0 i32) (param $1 v128) (result v128)
+ (func $32 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $0 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $33 (param $0 i32) (param $1 v128) (result v128)
+ (func $33 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $1 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $34 (param $0 i32) (param $1 v128) (result v128)
+ (func $34 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $2 offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $35 (param $0 i32) (param $1 v128) (result v128)
+ (func $35 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $1 offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $36 (param $0 i32) (param $1 v128) (result v128)
+ (func $36 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $0 offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $37 (param $0 i32) (param $1 v128) (result v128)
+ (func $37 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane $3 offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $38 (param $0 i32) (param $1 v128)
+ (func $38 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $0 0
(local.get $0)
(local.get $1)
)
)
- (func $39 (param $0 i32) (param $1 v128)
+ (func $39 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane $3 0
(local.get $0)
(local.get $1)
)
)
- (func $40 (param $0 i32) (param $1 v128)
+ (func $40 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $0 0
(local.get $0)
(local.get $1)
)
)
- (func $41 (param $0 i32) (param $1 v128)
+ (func $41 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $42 (param $0 i32) (param $1 v128)
+ (func $42 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $43 (param $0 i32) (param $1 v128)
+ (func $43 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane $2 0
(local.get $0)
(local.get $1)
)
)
- (func $44 (param $0 i32) (param $1 v128)
+ (func $44 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $2 0
(local.get $0)
(local.get $1)
)
)
- (func $45 (param $0 i32) (param $1 v128)
+ (func $45 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $1 0
(local.get $0)
(local.get $1)
)
)
- (func $46 (param $0 i32) (param $1 v128)
+ (func $46 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $1 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $47 (param $0 i32) (param $1 v128)
+ (func $47 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $0 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $48 (param $0 i32) (param $1 v128)
+ (func $48 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $3 offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $49 (param $0 i32) (param $1 v128)
+ (func $49 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $0 offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $50 (param $0 i32) (param $1 v128)
+ (func $50 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $1 offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $51 (param $0 i32) (param $1 v128)
+ (func $51 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane $3 offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $52 (param $0 i32) (result v128)
+ (func $52 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $0
(local.get $0)
)
)
- (func $53 (param $0 i32) (result v128)
+ (func $53 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero $1
(local.get $0)
)
)
- (func $54 (param $0 i32) (result v128)
+ (func $54 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $1
(local.get $0)
)
)
- (func $55 (param $0 i32) (result v128)
+ (func $55 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero $2
(local.get $0)
)
diff --git a/test/multi-table.wast.from-wast b/test/multi-table.wast.from-wast
index ece92124c..6ff0120f7 100644
--- a/test/multi-table.wast.from-wast
+++ b/test/multi-table.wast.from-wast
@@ -17,15 +17,15 @@
(elem $passive-3 (ref null $none_=>_none) (ref.func $f) (ref.func $g) (ref.null nofunc) (global.get $g1))
(elem $empty func)
(elem $especial (table $tspecial) (i32.const 0) (ref null $none_=>_none) (ref.func $f) (ref.func $h))
- (func $f
+ (func $f (type $none_=>_none)
(drop
(ref.func $h)
)
)
- (func $g
+ (func $g (type $none_=>_none)
(nop)
)
- (func $h
+ (func $h (type $none_=>_none)
(nop)
)
)
diff --git a/test/multi-table.wast.fromBinary b/test/multi-table.wast.fromBinary
index b70e78a2f..938026af3 100644
--- a/test/multi-table.wast.fromBinary
+++ b/test/multi-table.wast.fromBinary
@@ -17,15 +17,15 @@
(elem $passive-3 (ref null $none_=>_none) (ref.func $f) (ref.func $g) (ref.null nofunc) (global.get $g1))
(elem $empty func)
(elem $especial (table $tspecial) (i32.const 0) (ref null $none_=>_none) (ref.func $f) (ref.func $h))
- (func $f
+ (func $f (type $none_=>_none)
(drop
(ref.func $h)
)
)
- (func $g
+ (func $g (type $none_=>_none)
(nop)
)
- (func $h
+ (func $h (type $none_=>_none)
(nop)
)
)
diff --git a/test/multi-table.wast.fromBinary.noDebugInfo b/test/multi-table.wast.fromBinary.noDebugInfo
index cf938054a..819d147fd 100644
--- a/test/multi-table.wast.fromBinary.noDebugInfo
+++ b/test/multi-table.wast.fromBinary.noDebugInfo
@@ -17,15 +17,15 @@
(elem $7 (ref null $none_=>_none) (ref.func $0) (ref.func $1) (ref.null nofunc) (global.get $global$0))
(elem $8 func)
(elem $9 (table $3) (i32.const 0) (ref null $none_=>_none) (ref.func $0) (ref.func $2))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(ref.func $2)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(nop)
)
- (func $2
+ (func $2 (type $none_=>_none)
(nop)
)
)
diff --git a/test/multivalue.wast.from-wast b/test/multivalue.wast.from-wast
index a09eb88ce..fac9a0fbc 100644
--- a/test/multivalue.wast.from-wast
+++ b/test/multivalue.wast.from-wast
@@ -16,29 +16,29 @@
(i32.const 0)
(i64.const 0)
))
- (func $triple (result i32 i64 f32)
+ (func $triple (type $none_=>_i32_i64_f32) (result i32 i64 f32)
(tuple.make
(i32.const 42)
(i64.const 7)
(f32.const 13)
)
)
- (func $get-first (result i32)
+ (func $get-first (type $none_=>_i32) (result i32)
(tuple.extract 0
(call $triple)
)
)
- (func $get-second (result i64)
+ (func $get-second (type $none_=>_i64) (result i64)
(tuple.extract 1
(call $triple)
)
)
- (func $get-third (result f32)
+ (func $get-third (type $none_=>_f32) (result f32)
(tuple.extract 2
(call $triple)
)
)
- (func $reverse (result f32 i64 i32)
+ (func $reverse (type $none_=>_f32_i64_i32) (result f32 i64 i32)
(local $x (i32 i64 f32))
(local.set $x
(call $triple)
@@ -55,7 +55,7 @@
)
)
)
- (func $unreachable (result i64)
+ (func $unreachable (type $none_=>_i64) (result i64)
(tuple.extract 1
(tuple.make
(i32.const 42)
@@ -64,7 +64,7 @@
)
)
)
- (func $global (result i32 i64)
+ (func $global (type $none_=>_i32_i64) (result i32 i64)
(global.set $g1
(tuple.make
(i32.const 42)
@@ -73,12 +73,12 @@
)
(global.get $g2)
)
- (func $drop-call
+ (func $drop-call (type $none_=>_none)
(drop
(call $pair)
)
)
- (func $drop-tuple-make
+ (func $drop-tuple-make (type $none_=>_none)
(drop
(tuple.make
(i32.const 42)
@@ -86,7 +86,7 @@
)
)
)
- (func $drop-block
+ (func $drop-block (type $none_=>_none)
(drop
(block $block (result i32 i64)
(tuple.make
@@ -96,7 +96,7 @@
)
)
)
- (func $mv-return (result i32 i64)
+ (func $mv-return (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -104,7 +104,7 @@
)
)
)
- (func $mv-return-in-block (result i32 i64)
+ (func $mv-return-in-block (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -112,7 +112,7 @@
)
)
)
- (func $mv-block-break (result i32 i64)
+ (func $mv-block-break (type $none_=>_i32_i64) (result i32 i64)
(block $l (result i32 i64)
(br $l
(tuple.make
@@ -122,7 +122,7 @@
)
)
)
- (func $mv-block-br-if (result i32 i64)
+ (func $mv-block-br-if (type $none_=>_i32_i64) (result i32 i64)
(block $l (result i32 i64)
(br_if $l
(tuple.make
@@ -133,7 +133,7 @@
)
)
)
- (func $mv-if (result i32 i64 externref)
+ (func $mv-if (type $none_=>_i32_i64_externref) (result i32 i64 externref)
(if (result i32 i64 externref)
(i32.const 1)
(tuple.make
@@ -148,7 +148,7 @@
)
)
)
- (func $mv-loop (result i32 i64)
+ (func $mv-loop (type $none_=>_i32_i64) (result i32 i64)
(loop $loop-in (result i32 i64)
(tuple.make
(i32.const 42)
@@ -156,7 +156,7 @@
)
)
)
- (func $mv-switch (result i32 i64)
+ (func $mv-switch (type $none_=>_i32_i64) (result i32 i64)
(block $a (result i32 i64)
(block $b (result i32 i64)
(br_table $a $b
diff --git a/test/multivalue.wast.fromBinary b/test/multivalue.wast.fromBinary
index 28e24a2f4..86a87ecfe 100644
--- a/test/multivalue.wast.fromBinary
+++ b/test/multivalue.wast.fromBinary
@@ -12,14 +12,14 @@
(global $g2 (mut i64) (i64.const 0))
(global $global$2 i32 (i32.const 0))
(global $global$3 i64 (i64.const 0))
- (func $triple (result i32 i64 f32)
+ (func $triple (type $none_=>_i32_i64_f32) (result i32 i64 f32)
(tuple.make
(i32.const 42)
(i64.const 7)
(f32.const 13)
)
)
- (func $get-first (result i32)
+ (func $get-first (type $none_=>_i32) (result i32)
(local $0 (i32 i64 f32))
(local $1 i64)
(local $2 i32)
@@ -50,7 +50,7 @@
(local.get $2)
)
)
- (func $get-second (result i64)
+ (func $get-second (type $none_=>_i64) (result i64)
(local $0 i64)
(local $1 (i32 i64 f32))
(local $2 i64)
@@ -85,7 +85,7 @@
)
(local.get $0)
)
- (func $get-third (result f32)
+ (func $get-third (type $none_=>_f32) (result f32)
(local $0 f32)
(local $1 (i32 i64 f32))
(local $2 i64)
@@ -120,7 +120,7 @@
)
(local.get $0)
)
- (func $reverse (result f32 i64 i32)
+ (func $reverse (type $none_=>_f32_i64_i32) (result f32 i64 i32)
(local $x i32)
(local $1 i64)
(local $2 i64)
@@ -229,7 +229,7 @@
)
)
)
- (func $unreachable (result i64)
+ (func $unreachable (type $none_=>_i64) (result i64)
(drop
(i32.const 42)
)
@@ -238,7 +238,7 @@
)
(unreachable)
)
- (func $global (result i32 i64)
+ (func $global (type $none_=>_i32_i64) (result i32 i64)
(local $0 i32)
(global.set $g1
(block (result i32)
@@ -256,7 +256,7 @@
(global.get $global$3)
)
)
- (func $drop-call
+ (func $drop-call (type $none_=>_none)
(local $0 (i32 i64))
(local $1 i32)
(local.set $0
@@ -278,7 +278,7 @@
)
)
)
- (func $drop-tuple-make
+ (func $drop-tuple-make (type $none_=>_none)
(local $0 i32)
(drop
(block (result i32)
@@ -292,7 +292,7 @@
)
)
)
- (func $drop-block
+ (func $drop-block (type $none_=>_none)
(local $0 (i32 i64))
(local $1 i32)
(local.set $0
@@ -319,7 +319,7 @@
)
)
)
- (func $mv-return (result i32 i64)
+ (func $mv-return (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -327,7 +327,7 @@
)
)
)
- (func $mv-return-in-block (result i32 i64)
+ (func $mv-return-in-block (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -335,7 +335,7 @@
)
)
)
- (func $mv-block-break (result i32 i64)
+ (func $mv-block-break (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local.set $0
(block $label$1 (result i32 i64)
@@ -356,7 +356,7 @@
)
)
)
- (func $mv-block-br-if (result i32 i64)
+ (func $mv-block-br-if (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local $1 (i32 i64))
(local.set $1
@@ -389,7 +389,7 @@
)
)
)
- (func $mv-if (result i32 i64 externref)
+ (func $mv-if (type $none_=>_i32_i64_externref) (result i32 i64 externref)
(local $0 (i32 i64 externref))
(local.set $0
(if (result i32 i64 externref)
@@ -418,7 +418,7 @@
)
)
)
- (func $mv-loop (result i32 i64)
+ (func $mv-loop (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local.set $0
(loop $label$1 (result i32 i64)
@@ -437,7 +437,7 @@
)
)
)
- (func $mv-switch (result i32 i64)
+ (func $mv-switch (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local $1 (i32 i64))
(local.set $1
diff --git a/test/multivalue.wast.fromBinary.noDebugInfo b/test/multivalue.wast.fromBinary.noDebugInfo
index 192902759..5bfc406a9 100644
--- a/test/multivalue.wast.fromBinary.noDebugInfo
+++ b/test/multivalue.wast.fromBinary.noDebugInfo
@@ -12,14 +12,14 @@
(global $global$1 (mut i64) (i64.const 0))
(global $global$2 i32 (i32.const 0))
(global $global$3 i64 (i64.const 0))
- (func $0 (result i32 i64 f32)
+ (func $0 (type $none_=>_i32_i64_f32) (result i32 i64 f32)
(tuple.make
(i32.const 42)
(i64.const 7)
(f32.const 13)
)
)
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(local $0 (i32 i64 f32))
(local $1 i64)
(local $2 i32)
@@ -50,7 +50,7 @@
(local.get $2)
)
)
- (func $2 (result i64)
+ (func $2 (type $none_=>_i64) (result i64)
(local $0 i64)
(local $1 (i32 i64 f32))
(local $2 i64)
@@ -85,7 +85,7 @@
)
(local.get $0)
)
- (func $3 (result f32)
+ (func $3 (type $none_=>_f32) (result f32)
(local $0 f32)
(local $1 (i32 i64 f32))
(local $2 i64)
@@ -120,7 +120,7 @@
)
(local.get $0)
)
- (func $4 (result f32 i64 i32)
+ (func $4 (type $none_=>_f32_i64_i32) (result f32 i64 i32)
(local $0 i32)
(local $1 i64)
(local $2 i64)
@@ -229,7 +229,7 @@
)
)
)
- (func $5 (result i64)
+ (func $5 (type $none_=>_i64) (result i64)
(drop
(i32.const 42)
)
@@ -238,7 +238,7 @@
)
(unreachable)
)
- (func $6 (result i32 i64)
+ (func $6 (type $none_=>_i32_i64) (result i32 i64)
(local $0 i32)
(global.set $global$0
(block (result i32)
@@ -256,7 +256,7 @@
(global.get $global$3)
)
)
- (func $7
+ (func $7 (type $none_=>_none)
(local $0 (i32 i64))
(local $1 i32)
(local.set $0
@@ -278,7 +278,7 @@
)
)
)
- (func $8
+ (func $8 (type $none_=>_none)
(local $0 i32)
(drop
(block (result i32)
@@ -292,7 +292,7 @@
)
)
)
- (func $9
+ (func $9 (type $none_=>_none)
(local $0 (i32 i64))
(local $1 i32)
(local.set $0
@@ -319,7 +319,7 @@
)
)
)
- (func $10 (result i32 i64)
+ (func $10 (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -327,7 +327,7 @@
)
)
)
- (func $11 (result i32 i64)
+ (func $11 (type $none_=>_i32_i64) (result i32 i64)
(return
(tuple.make
(i32.const 42)
@@ -335,7 +335,7 @@
)
)
)
- (func $12 (result i32 i64)
+ (func $12 (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local.set $0
(block $label$1 (result i32 i64)
@@ -356,7 +356,7 @@
)
)
)
- (func $13 (result i32 i64)
+ (func $13 (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local $1 (i32 i64))
(local.set $1
@@ -389,7 +389,7 @@
)
)
)
- (func $14 (result i32 i64 externref)
+ (func $14 (type $none_=>_i32_i64_externref) (result i32 i64 externref)
(local $0 (i32 i64 externref))
(local.set $0
(if (result i32 i64 externref)
@@ -418,7 +418,7 @@
)
)
)
- (func $15 (result i32 i64)
+ (func $15 (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local.set $0
(loop $label$1 (result i32 i64)
@@ -437,7 +437,7 @@
)
)
)
- (func $16 (result i32 i64)
+ (func $16 (type $none_=>_i32_i64) (result i32 i64)
(local $0 (i32 i64))
(local $1 (i32 i64))
(local.set $1
diff --git a/test/mutable-global.wast.from-wast b/test/mutable-global.wast.from-wast
index ab54153c1..1a8e121cd 100644
--- a/test/mutable-global.wast.from-wast
+++ b/test/mutable-global.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(import "env" "global-mut" (global $global-mut (mut i32)))
- (func $foo
+ (func $foo (type $0)
(global.set $global-mut
(i32.add
(global.get $global-mut)
diff --git a/test/mutable-global.wast.fromBinary b/test/mutable-global.wast.fromBinary
index 1a4730a1e..c115bbd4c 100644
--- a/test/mutable-global.wast.fromBinary
+++ b/test/mutable-global.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(import "env" "global-mut" (global $global-mut (mut i32)))
- (func $foo
+ (func $foo (type $0)
(global.set $global-mut
(i32.add
(global.get $global-mut)
diff --git a/test/mutable-global.wast.fromBinary.noDebugInfo b/test/mutable-global.wast.fromBinary.noDebugInfo
index 08d3b6c21..5a3b5c18f 100644
--- a/test/mutable-global.wast.fromBinary.noDebugInfo
+++ b/test/mutable-global.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(import "env" "global-mut" (global $gimport$0 (mut i32)))
- (func $0
+ (func $0 (type $none_=>_none)
(global.set $gimport$0
(i32.add
(global.get $gimport$0)
diff --git a/test/newsyntax.wast.from-wast b/test/newsyntax.wast.from-wast
index 7b8e2b2a6..a5a2a47ad 100644
--- a/test/newsyntax.wast.from-wast
+++ b/test/newsyntax.wast.from-wast
@@ -3,7 +3,7 @@
(type $i32_f64_=>_i32 (func (param i32 f64) (result i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
(export "call_indirect" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(call_indirect $timport$0 (type $i32_f64_=>_i32)
(i32.const 10)
diff --git a/test/newsyntax.wast.fromBinary b/test/newsyntax.wast.fromBinary
index 5309fb3eb..983916a14 100644
--- a/test/newsyntax.wast.fromBinary
+++ b/test/newsyntax.wast.fromBinary
@@ -3,7 +3,7 @@
(type $i32_f64_=>_i32 (func (param i32 f64) (result i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
(export "call_indirect" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(call_indirect $timport$0 (type $i32_f64_=>_i32)
(i32.const 10)
diff --git a/test/newsyntax.wast.fromBinary.noDebugInfo b/test/newsyntax.wast.fromBinary.noDebugInfo
index 5309fb3eb..983916a14 100644
--- a/test/newsyntax.wast.fromBinary.noDebugInfo
+++ b/test/newsyntax.wast.fromBinary.noDebugInfo
@@ -3,7 +3,7 @@
(type $i32_f64_=>_i32 (func (param i32 f64) (result i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
(export "call_indirect" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(call_indirect $timport$0 (type $i32_f64_=>_i32)
(i32.const 10)
diff --git a/test/nonspec-bulk-memory.wast.from-wast b/test/nonspec-bulk-memory.wast.from-wast
index 1d78b8e15..bd68ecbd3 100644
--- a/test/nonspec-bulk-memory.wast.from-wast
+++ b/test/nonspec-bulk-memory.wast.from-wast
@@ -2,24 +2,24 @@
(type $none_=>_none (func))
(memory $0 1024 1024)
(data (i32.const 0) "hello, world")
- (func $memory.init
+ (func $memory.init (type $none_=>_none)
(memory.init 0
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $data.drop
+ (func $data.drop (type $none_=>_none)
(data.drop 0)
)
- (func $memory.copy
+ (func $memory.copy (type $none_=>_none)
(memory.copy
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $memory.fill
+ (func $memory.fill (type $none_=>_none)
(memory.fill
(i32.const 0)
(i32.const 42)
diff --git a/test/nonspec-bulk-memory.wast.fromBinary b/test/nonspec-bulk-memory.wast.fromBinary
index 9120c43e6..48667b74a 100644
--- a/test/nonspec-bulk-memory.wast.fromBinary
+++ b/test/nonspec-bulk-memory.wast.fromBinary
@@ -2,24 +2,24 @@
(type $none_=>_none (func))
(memory $0 1024 1024)
(data (i32.const 0) "hello, world")
- (func $memory.init
+ (func $memory.init (type $none_=>_none)
(memory.init 0
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $data.drop
+ (func $data.drop (type $none_=>_none)
(data.drop 0)
)
- (func $memory.copy
+ (func $memory.copy (type $none_=>_none)
(memory.copy
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $memory.fill
+ (func $memory.fill (type $none_=>_none)
(memory.fill
(i32.const 0)
(i32.const 42)
diff --git a/test/nonspec-bulk-memory.wast.fromBinary.noDebugInfo b/test/nonspec-bulk-memory.wast.fromBinary.noDebugInfo
index 060667104..75c4b3d74 100644
--- a/test/nonspec-bulk-memory.wast.fromBinary.noDebugInfo
+++ b/test/nonspec-bulk-memory.wast.fromBinary.noDebugInfo
@@ -2,24 +2,24 @@
(type $none_=>_none (func))
(memory $0 1024 1024)
(data (i32.const 0) "hello, world")
- (func $0
+ (func $0 (type $none_=>_none)
(memory.init 0
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(data.drop 0)
)
- (func $2
+ (func $2 (type $none_=>_none)
(memory.copy
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(memory.fill
(i32.const 0)
(i32.const 42)
diff --git a/test/passes/Oz_fuzz-exec_all-features.txt b/test/passes/Oz_fuzz-exec_all-features.txt
index a38193d08..ba7d11406 100644
--- a/test/passes/Oz_fuzz-exec_all-features.txt
+++ b/test/passes/Oz_fuzz-exec_all-features.txt
@@ -63,19 +63,23 @@
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1]
[LoggingExternalInterface logging 0]
-[LoggingExternalInterface logging 1]
+[LoggingExternalInterface logging 0]
[fuzz-exec] calling static-br_on_cast
[LoggingExternalInterface logging 3]
[fuzz-exec] calling static-br_on_cast_fail
[LoggingExternalInterface logging -2]
(module
- (type $bytes (array (mut i8)))
- (type $void_func (func))
- (type $struct (struct (field (mut i32))))
- (type $i32_=>_none (func (param i32)))
- (type $extendedstruct (struct (field (mut i32)) (field f64)))
- (type $anyref_=>_none (func (param anyref)))
- (type $int_func (func (result i32)))
+ (rec
+ (type $bytes (array (mut i8)))
+ (type $struct (struct (field (mut i32))))
+ (type $void_func (func))
+ (type $extendedstruct (struct ))
+ (type $int_func (func (result i32)))
+ (type $i32_=>_none (func (param i32)))
+ (type $none_=>_ref|$struct| (func (result (ref $struct))))
+ (type $anyref_=>_none (func (param anyref)))
+ (type $none_=>_none (func))
+ )
(import "fuzzing-support" "log-i32" (func $log (param i32)))
(export "structs" (func $0))
(export "arrays" (func $1))
@@ -103,7 +107,7 @@
(export "static-casts" (func $26))
(export "static-br_on_cast" (func $2))
(export "static-br_on_cast_fail" (func $28))
- (func $0 (; has Stack IR ;)
+ (func $0 (type $void_func) (; has Stack IR ;)
(local $0 i32)
(call $log
(i32.const 0)
@@ -120,7 +124,7 @@
(i32.const 100)
)
)
- (func $1 (; has Stack IR ;)
+ (func $1 (type $void_func) (; has Stack IR ;)
(local $0 (ref $bytes))
(call $log
(array.len
@@ -162,12 +166,12 @@
)
)
)
- (func $2 (; has Stack IR ;)
+ (func $2 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 3)
)
)
- (func $3 (; has Stack IR ;)
+ (func $3 (type $void_func) (; has Stack IR ;)
(local $0 (ref $struct))
(local.set $0
(struct.new_default $struct)
@@ -189,7 +193,7 @@
)
)
)
- (func $4 (; has Stack IR ;)
+ (func $4 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 1)
)
@@ -197,12 +201,12 @@
(i32.const 999)
)
)
- (func $5 (; has Stack IR ;)
+ (func $5 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 0)
)
)
- (func $7 (; has Stack IR ;) (param $0 anyref)
+ (func $7 (type $anyref_=>_none) (; has Stack IR ;) (param $0 anyref)
(drop
(block $data (result (ref data))
(drop
@@ -217,15 +221,15 @@
)
)
)
- (func $8 (; has Stack IR ;)
+ (func $8 (type $void_func) (; has Stack IR ;)
(nop)
)
- (func $9 (; has Stack IR ;)
+ (func $9 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 1)
)
)
- (func $12 (; has Stack IR ;)
+ (func $12 (type $void_func) (; has Stack IR ;)
(drop
(block
(call $log
@@ -235,12 +239,12 @@
)
)
)
- (func $13 (; has Stack IR ;)
+ (func $13 (type $void_func) (; has Stack IR ;)
(drop
(unreachable)
)
)
- (func $18 (; has Stack IR ;)
+ (func $18 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 0)
)
@@ -252,7 +256,7 @@
)
(unreachable)
)
- (func $20 (; has Stack IR ;) (result i32)
+ (func $20 (type $int_func) (; has Stack IR ;) (result i32)
(array.get_u $bytes
(array.new $bytes
(i32.const -43)
@@ -261,7 +265,7 @@
(i32.const 10)
)
)
- (func $23 (; has Stack IR ;)
+ (func $23 (type $void_func) (; has Stack IR ;)
(local $0 (ref $bytes))
(local $1 (ref $bytes))
(array.set $bytes
@@ -316,7 +320,7 @@
)
)
)
- (func $24 (; has Stack IR ;)
+ (func $24 (type $void_func) (; has Stack IR ;)
(local $0 (ref $bytes))
(call $log
(array.len
@@ -341,7 +345,7 @@
)
)
)
- (func $25 (; has Stack IR ;)
+ (func $25 (type $void_func) (; has Stack IR ;)
(call $log
(array.get_u $bytes
(array.init_static $bytes
@@ -351,7 +355,7 @@
)
)
)
- (func $26 (; has Stack IR ;)
+ (func $26 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const 1)
)
@@ -368,10 +372,10 @@
(i32.const 0)
)
(call $log
- (i32.const 1)
+ (i32.const 0)
)
)
- (func $28 (; has Stack IR ;)
+ (func $28 (type $void_func) (; has Stack IR ;)
(call $log
(i32.const -2)
)
@@ -441,7 +445,7 @@
[LoggingExternalInterface logging 0]
[LoggingExternalInterface logging 1]
[LoggingExternalInterface logging 0]
-[LoggingExternalInterface logging 1]
+[LoggingExternalInterface logging 0]
[fuzz-exec] calling static-br_on_cast
[LoggingExternalInterface logging 3]
[fuzz-exec] calling static-br_on_cast_fail
@@ -450,9 +454,12 @@ ignoring comparison of ExecutionResults!
[fuzz-exec] calling foo
[host limit allocation failure]
(module
- (type $none_=>_i32 (func (result i32)))
+ (rec
+ (type $none_=>_i32 (func (result i32)))
+ (type $[mut:i8] (array (mut i8)))
+ )
(export "foo" (func $0))
- (func $0 (; has Stack IR ;) (result i32)
+ (func $0 (type $none_=>_i32) (; has Stack IR ;) (result i32)
(i32.const 0)
)
)
diff --git a/test/passes/duplicate-function-elimination_all-features.txt b/test/passes/duplicate-function-elimination_all-features.txt
index 2ad1bdc16..1127d8d79 100644
--- a/test/passes/duplicate-function-elimination_all-features.txt
+++ b/test/passes/duplicate-function-elimination_all-features.txt
@@ -2,10 +2,10 @@
(type $none_=>_i32 (func (result i32)))
(type $none_=>_funcref (func (result funcref)))
(elem declare func $0)
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(i32.const 0)
)
- (func $test (result funcref)
+ (func $test (type $none_=>_funcref) (result funcref)
(ref.func $0)
)
)
@@ -15,7 +15,7 @@
(memory $foo 16 16)
(export "memory" (memory $foo))
(export "global" (global $bar))
- (func $bar
+ (func $bar (type $none_=>_none)
(nop)
)
)
@@ -23,10 +23,10 @@
(type $func (func (result i32)))
(global $global$0 (ref $func) (ref.func $foo))
(export "export" (func $2))
- (func $foo (result i32)
+ (func $foo (type $func) (result i32)
(unreachable)
)
- (func $2 (result i32)
+ (func $2 (type $func) (result i32)
(call_ref $func
(global.get $global$0)
)
diff --git a/test/passes/fuzz-exec_all-features.txt b/test/passes/fuzz-exec_all-features.txt
index 4b3e64e7c..91e475de4 100644
--- a/test/passes/fuzz-exec_all-features.txt
+++ b/test/passes/fuzz-exec_all-features.txt
@@ -16,27 +16,27 @@
(export "c" (func $c))
(export "d" (func $d))
(export "e" (func $e))
- (func $a (result i32)
+ (func $a (type $none_=>_i32) (result i32)
(i32.extend8_s
(i32.const 187)
)
)
- (func $b (result i32)
+ (func $b (type $none_=>_i32) (result i32)
(i32.extend16_s
(i32.const 33768)
)
)
- (func $c (result i64)
+ (func $c (type $none_=>_i64) (result i64)
(i64.extend8_s
(i64.const 187)
)
)
- (func $d (result i64)
+ (func $d (type $none_=>_i64) (result i64)
(i64.extend16_s
(i64.const 33768)
)
)
- (func $e (result i64)
+ (func $e (type $none_=>_i64) (result i64)
(i64.extend32_s
(i64.const 2148318184)
)
@@ -82,28 +82,28 @@
(export "unaligned_notify" (func $3))
(export "wrap_cmpxchg" (func $4))
(export "oob_notify" (func $5))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(i32.atomic.load
(i32.const 1)
)
)
- (func $1 (result i32)
+ (func $1 (type $none_=>_i32) (result i32)
(i32.atomic.load offset=1
(i32.const 0)
)
)
- (func $2 (result i32)
+ (func $2 (type $none_=>_i32) (result i32)
(i32.atomic.load16_u offset=2
(i32.const 0)
)
)
- (func $3 (result i32)
+ (func $3 (type $none_=>_i32) (result i32)
(memory.atomic.notify
(i32.const 1)
(i32.const 1)
)
)
- (func $4 (param $0 i32) (param $1 i32)
+ (func $4 (type $i32_i32_=>_none) (param $0 i32) (param $1 i32)
(drop
(i32.atomic.rmw8.cmpxchg_u
(i32.const 0)
@@ -117,7 +117,7 @@
)
)
)
- (func $5
+ (func $5 (type $none_=>_none)
(drop
(memory.atomic.notify offset=22
(i32.const -104)
@@ -151,7 +151,7 @@
(memory $0 (shared 1 1))
(data (i32.const 0) "\ff\ff")
(export "unsigned_2_bytes" (func $0))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(i32.atomic.rmw16.xor_u
(i32.const 0)
(i32.const 0)
@@ -169,7 +169,7 @@
(import "fuzzing-support" "log-i32" (func $fimport$0 (param i32)))
(memory $0 (shared 1 1))
(export "rmw-reads-modifies-and-writes" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(i64.atomic.rmw16.and_u offset=4
(i32.const 0)
@@ -194,7 +194,7 @@
(import "fuzzing-support" "log-i32" (func $fimport$0 (param i32)))
(memory $0 (shared 1 1))
(export "rmw-reads-modifies-and-writes-asymmetrical" (func $0))
- (func $0
+ (func $0 (type $none_=>_none)
(drop
(i32.atomic.rmw8.sub_u
(i32.const 3)
@@ -217,7 +217,7 @@
(type $none_=>_funcref (func (result funcref)))
(elem declare func $func)
(export "func" (func $func))
- (func $func (result funcref)
+ (func $func (type $none_=>_funcref) (result funcref)
(ref.func $func)
)
)
diff --git a/test/passes/merge-locals_all-features.txt b/test/passes/merge-locals_all-features.txt
index cf11edc91..08e530769 100644
--- a/test/passes/merge-locals_all-features.txt
+++ b/test/passes/merge-locals_all-features.txt
@@ -5,7 +5,7 @@
(type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
(type $none_=>_none (func))
(global $global$0 (mut i32) (i32.const 10))
- (func $test (param $x i32) (param $y i32) (result i32)
+ (func $test (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -17,7 +17,7 @@
)
(local.get $x)
)
- (func $test2 (param $x i32) (param $y i32) (result i32)
+ (func $test2 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -29,7 +29,7 @@
)
(local.get $x)
)
- (func $test-multiple (param $x i32) (param $y i32) (result i32)
+ (func $test-multiple (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -44,7 +44,7 @@
)
(local.get $x)
)
- (func $test-just-some (param $x i32) (param $y i32) (result i32)
+ (func $test-just-some (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -62,7 +62,7 @@
)
(local.get $y)
)
- (func $test-just-some2 (param $x i32) (param $y i32) (result i32)
+ (func $test-just-some2 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -83,7 +83,7 @@
)
(i32.const 500)
)
- (func $test-just-some3 (param $x i32) (param $y i32) (result i32)
+ (func $test-just-some3 (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -104,7 +104,7 @@
)
(local.get $y)
)
- (func $silly-self (param $x i32) (param $y i32) (result i32)
+ (func $silly-self (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -116,7 +116,7 @@
)
(local.get $y)
)
- (func $silly-multi (param $x i32) (param $y i32) (result i32)
+ (func $silly-multi (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(drop
(if (result i32)
(local.tee $x
@@ -130,7 +130,7 @@
)
(local.get $y)
)
- (func $undo-1 (param $var$1 i32) (param $var$2 i32)
+ (func $undo-1 (type $i32_i32_=>_none) (param $var$1 i32) (param $var$2 i32)
(local $var$5 i32)
(local.set $var$2
(local.get $var$1)
@@ -142,7 +142,7 @@
(local.get $var$1)
)
)
- (func $undo-2 (param $var$1 i32) (param $var$2 i32)
+ (func $undo-2 (type $i32_i32_=>_none) (param $var$1 i32) (param $var$2 i32)
(local $var$5 i32)
(local.set $var$2
(local.get $var$1)
@@ -157,7 +157,7 @@
(local.get $var$1)
)
)
- (func $reverse (param $x i32) (param $y i32)
+ (func $reverse (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -180,7 +180,7 @@
(local.get $y)
)
)
- (func $reverse-end (param $x i32) (param $y i32)
+ (func $reverse-end (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -191,7 +191,7 @@
)
)
)
- (func $reverse-lone-end-2 (param $x i32) (param $y i32)
+ (func $reverse-lone-end-2 (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -208,7 +208,7 @@
(local.get $y)
)
)
- (func $reverse-undo (param $x i32) (param $y i32)
+ (func $reverse-undo (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -234,7 +234,7 @@
(local.get $y)
)
)
- (func $reverse-undo2 (param $x i32) (param $y i32)
+ (func $reverse-undo2 (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -260,7 +260,7 @@
(local.get $y)
)
)
- (func $reverse-undo3-conditional (param $x i32) (param $y i32)
+ (func $reverse-undo3-conditional (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -289,7 +289,7 @@
(local.get $y)
)
)
- (func $reverse-undo3-conditional-b (param $x i32) (param $y i32)
+ (func $reverse-undo3-conditional-b (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -318,7 +318,7 @@
(local.get $y)
)
)
- (func $reverse-undo3-conditional-c (param $x i32) (param $y i32)
+ (func $reverse-undo3-conditional-c (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(drop
(if (result i32)
(local.tee $x
@@ -355,7 +355,7 @@
(local.get $y)
)
)
- (func $fuzz (param $var$0 i32) (param $var$1 f32) (param $var$2 f32) (result i64)
+ (func $fuzz (type $i32_f32_f32_=>_i64) (param $var$0 i32) (param $var$1 f32) (param $var$2 f32) (result i64)
(local $var$3 i32)
(global.set $global$0
(i32.sub
@@ -439,7 +439,7 @@
(i64.const -36028797018963968)
)
)
- (func $trivial-confusion (param $unused i32) (param $param i32) (param $result i32)
+ (func $trivial-confusion (type $i32_i32_i32_=>_none) (param $unused i32) (param $param i32) (param $result i32)
(loop $label$1
(if
(i32.const 1)
@@ -457,7 +457,7 @@
)
)
)
- (func $subtype-test
+ (func $subtype-test (type $none_=>_none)
(local $0 anyref)
(local $1 i31ref)
(local $2 i31ref)
diff --git a/test/passes/metrics_all-features.txt b/test/passes/metrics_all-features.txt
index bd3368b49..97088f721 100644
--- a/test/passes/metrics_all-features.txt
+++ b/test/passes/metrics_all-features.txt
@@ -26,7 +26,7 @@ total
(elem (i32.const 0) $ifs $ifs $ifs)
(tag $e0 (param i32))
(tag $e1 (param i32 i32))
- (func $ifs (param $x i32)
+ (func $ifs (type $0) (param $x i32)
(local $y f32)
(block $block0
(if
diff --git a/test/passes/minify-imports-and-exports_all-features.txt b/test/passes/minify-imports-and-exports_all-features.txt
index 8d99fbbf2..658058027 100644
--- a/test/passes/minify-imports-and-exports_all-features.txt
+++ b/test/passes/minify-imports-and-exports_all-features.txt
@@ -10019,10 +10019,10 @@ longname4880 => zza
(export "NBa" (func $foo1))
(export "OBa" (func $foo2))
(export "PBa" (tag $tag1))
- (func $foo1
+ (func $foo1 (type $none_=>_none)
(nop)
)
- (func $foo2
+ (func $foo2 (type $none_=>_none)
(nop)
)
)
diff --git a/test/passes/minify-imports_all-features.txt b/test/passes/minify-imports_all-features.txt
index 8b5d93c81..917397477 100644
--- a/test/passes/minify-imports_all-features.txt
+++ b/test/passes/minify-imports_all-features.txt
@@ -10013,10 +10013,10 @@ longname4880 => zza
(export "foo1" (func $foo1))
(export "foo2" (func $foo2))
(export "tag1" (tag $tag1))
- (func $foo1
+ (func $foo1 (type $none_=>_none)
(nop)
)
- (func $foo2
+ (func $foo2 (type $none_=>_none)
(nop)
)
)
diff --git a/test/passes/multi_line_table_dwarf.bin.txt b/test/passes/multi_line_table_dwarf.bin.txt
index 3adc09fef..96a3df20b 100644
--- a/test/passes/multi_line_table_dwarf.bin.txt
+++ b/test/passes/multi_line_table_dwarf.bin.txt
@@ -434,13 +434,13 @@ file_names[ 1]:
(export "sideg" (func $sideg))
(export "sidef" (func $sidef))
(export "__dso_handle" (global $global$0))
- (func $__wasm_call_ctors
+ (func $__wasm_call_ctors (type $none_=>_none)
;; code offset: 0x3
(call $__wasm_apply_relocs)
)
- (func $__wasm_apply_relocs
+ (func $__wasm_apply_relocs (type $none_=>_none)
)
- (func $sideg (result i32)
+ (func $sideg (type $none_=>_i32) (result i32)
(local $0 i32)
;; code offset: 0xf
(local.set $0
@@ -453,7 +453,7 @@ file_names[ 1]:
(local.get $0)
)
)
- (func $sidef (result i32)
+ (func $sidef (type $none_=>_i32) (result i32)
(local $0 i32)
;; code offset: 0x1b
(local.set $0
diff --git a/test/passes/pick-load-signs_all-features.txt b/test/passes/pick-load-signs_all-features.txt
index 8fcc78af5..e1781d4ed 100644
--- a/test/passes/pick-load-signs_all-features.txt
+++ b/test/passes/pick-load-signs_all-features.txt
@@ -1,7 +1,7 @@
(module
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 16 16))
- (func $atomics-are-always-unsigned (result i32)
+ (func $atomics-are-always-unsigned (type $none_=>_i32) (result i32)
(local $0 i32)
(drop
(block (result i32)
diff --git a/test/passes/precompute-propagate_all-features.txt b/test/passes/precompute-propagate_all-features.txt
index edb5b1e05..3099eb687 100644
--- a/test/passes/precompute-propagate_all-features.txt
+++ b/test/passes/precompute-propagate_all-features.txt
@@ -6,7 +6,7 @@
(type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
(type $none_=>_v128 (func (result v128)))
(memory $0 10 10)
- (func $basic (param $p i32)
+ (func $basic (type $i32_=>_none) (param $p i32)
(local $x i32)
(local.set $x
(i32.const 10)
@@ -15,7 +15,7 @@
(i32.const 20)
)
)
- (func $split (param $p i32)
+ (func $split (type $i32_=>_none) (param $p i32)
(local $x i32)
(if
(i32.const 1)
@@ -30,7 +30,7 @@
)
)
)
- (func $split-but-join (param $p i32)
+ (func $split-but-join (type $i32_=>_none) (param $p i32)
(local $x i32)
(if
(i32.const 1)
@@ -45,7 +45,7 @@
(i32.const 20)
)
)
- (func $split-but-join-different (param $p i32)
+ (func $split-but-join-different (type $i32_=>_none) (param $p i32)
(local $x i32)
(if
(i32.const 1)
@@ -63,7 +63,7 @@
)
)
)
- (func $split-but-join-different-b (param $p i32)
+ (func $split-but-join-different-b (type $i32_=>_none) (param $p i32)
(local $x i32)
(if
(i32.const 1)
@@ -81,7 +81,7 @@
)
)
)
- (func $split-but-join-init0 (param $p i32)
+ (func $split-but-join-init0 (type $i32_=>_none) (param $p i32)
(local $x i32)
(if
(i32.const 1)
@@ -93,7 +93,7 @@
(i32.const 0)
)
)
- (func $later (param $p i32)
+ (func $later (type $i32_=>_none) (param $p i32)
(local $x i32)
(local.set $x
(i32.const 10)
@@ -111,7 +111,7 @@
(i32.const 39)
)
)
- (func $later2 (param $p i32) (result i32)
+ (func $later2 (type $i32_=>_i32) (param $p i32) (result i32)
(local $x i32)
(local.set $x
(i32.const 10)
@@ -121,7 +121,7 @@
)
(i32.const 20)
)
- (func $two-ways-but-identical (param $p i32) (result i32)
+ (func $two-ways-but-identical (type $i32_=>_i32) (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(local.set $x
@@ -141,7 +141,7 @@
)
(i32.const 21)
)
- (func $two-ways-but-almost-identical (param $p i32) (result i32)
+ (func $two-ways-but-almost-identical (type $i32_=>_i32) (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(local.set $x
@@ -164,7 +164,7 @@
)
(local.get $y)
)
- (func $deadloop (param $p i32) (result i32)
+ (func $deadloop (type $i32_=>_i32) (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(loop $loop
@@ -177,7 +177,7 @@
(br $loop)
)
)
- (func $deadloop2 (param $p i32)
+ (func $deadloop2 (type $i32_=>_none) (param $p i32)
(local $x i32)
(local $y i32)
(loop $loop
@@ -196,7 +196,7 @@
(br $loop)
)
)
- (func $deadloop3 (param $p i32)
+ (func $deadloop3 (type $i32_=>_none) (param $p i32)
(local $x i32)
(local $y i32)
(loop $loop
@@ -215,7 +215,7 @@
(br $loop)
)
)
- (func $through-tee (param $x i32) (param $y i32) (result i32)
+ (func $through-tee (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(local.set $x
(local.tee $y
(i32.const 7)
@@ -225,7 +225,7 @@
(i32.const 14)
)
)
- (func $through-tee-more (param $x i32) (param $y i32) (result i32)
+ (func $through-tee-more (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(local.set $x
(i32.eqz
(local.tee $y
@@ -237,7 +237,7 @@
(i32.const 7)
)
)
- (func $multipass (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
+ (func $multipass (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(nop)
(if
@@ -248,7 +248,7 @@
)
(local.get $2)
)
- (func $through-fallthrough (param $x i32) (param $y i32) (result i32)
+ (func $through-fallthrough (type $i32_i32_=>_i32) (param $x i32) (param $y i32) (result i32)
(local.set $x
(block (result i32)
(nop)
@@ -261,7 +261,7 @@
(i32.const 14)
)
)
- (func $simd-load (result v128)
+ (func $simd-load (type $none_=>_v128) (result v128)
(local $x v128)
(local.set $x
(v128.load8_splat
@@ -270,7 +270,7 @@
)
(local.get $x)
)
- (func $tuple-local (result i32 i64)
+ (func $tuple-local (type $none_=>_i32_i64) (result i32 i64)
(local $i32s (i32 i32))
(local $i64s (i64 i64))
(local.set $i32s
diff --git a/test/passes/precompute_all-features.txt b/test/passes/precompute_all-features.txt
index ea582d8d4..e26259c5b 100644
--- a/test/passes/precompute_all-features.txt
+++ b/test/passes/precompute_all-features.txt
@@ -11,7 +11,7 @@
(memory $0 512 512)
(data (i32.const 0) "hello!")
(elem declare func $dummy)
- (func $x (param $x i32)
+ (func $x (type $0) (param $x i32)
(call $x
(i32.const 2300)
)
@@ -93,7 +93,7 @@
(i32.const 0)
)
)
- (func $ret (result i32)
+ (func $ret (type $none_=>_i32) (result i32)
(if
(call $ret)
(return
@@ -108,13 +108,13 @@
)
(i32.const 1)
)
- (func $noret
+ (func $noret (type $none_=>_none)
(if
(call $ret)
(return)
)
)
- (func $refinalize-br-condition-unreachable
+ (func $refinalize-br-condition-unreachable (type $none_=>_none)
(block $label$1
(drop
(br_if $label$1
@@ -123,7 +123,7 @@
)
)
)
- (func $br_if-condition-is-block-i32-but-unreachable-so-refinalize-tricky
+ (func $br_if-condition-is-block-i32-but-unreachable-so-refinalize-tricky (type $none_=>_none)
(drop
(block $label$1 (result i32)
(drop
@@ -138,7 +138,7 @@
)
)
)
- (func $reuse-br-value (result f64)
+ (func $reuse-br-value (type $none_=>_f64) (result f64)
(block $label$0 (result f64)
(i32.store8
(i32.const 1919623207)
@@ -165,7 +165,7 @@
(f64.const 4776014875438170098655851e156)
)
)
- (func $refinalize-two-breaks-one-unreachable
+ (func $refinalize-two-breaks-one-unreachable (type $none_=>_none)
(drop
(block $label$0 (result i64)
(block
@@ -188,7 +188,7 @@
)
)
)
- (func $one-break-value-and-it-is-unreachable (result f64)
+ (func $one-break-value-and-it-is-unreachable (type $none_=>_f64) (result f64)
(local $var$0 i32)
(block $label$6
(block
@@ -199,16 +199,16 @@
)
)
)
- (func $global-notprecomputable (result i32)
+ (func $global-notprecomputable (type $none_=>_i32) (result i32)
(i32.add
(i32.const 1)
(global.get $global-mut)
)
)
- (func $global-precomputable (result i32)
+ (func $global-precomputable (type $none_=>_i32) (result i32)
(i32.const 2)
)
- (func $global-partiallyprecomputable (result i32)
+ (func $global-partiallyprecomputable (type $none_=>_i32) (result i32)
(i32.sub
(i32.add
(i32.const 1)
@@ -217,49 +217,49 @@
(i32.const 2)
)
)
- (func $simd-precompute (result v128)
+ (func $simd-precompute (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
)
- (func $no-memory-init-precompute
+ (func $no-memory-init-precompute (type $none_=>_none)
(memory.init 0
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $no-data-drop-precompute
+ (func $no-data-drop-precompute (type $none_=>_none)
(data.drop 0)
)
- (func $no-memory-copy-precompute
+ (func $no-memory-copy-precompute (type $none_=>_none)
(memory.copy
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $no-memory-fill-precompute
+ (func $no-memory-fill-precompute (type $none_=>_none)
(memory.fill
(i32.const 512)
(i32.const 0)
(i32.const 12)
)
)
- (func $tuple-precompute (result i32 i64)
+ (func $tuple-precompute (type $none_=>_i32_i64) (result i32 i64)
(tuple.make
(i32.const 42)
(i64.const 42)
)
)
- (func $loop-precompute (result i32)
+ (func $loop-precompute (type $none_=>_i32) (result i32)
(i32.const 1)
)
- (func $reftype-test (result externref)
+ (func $reftype-test (type $none_=>_externref) (result externref)
(ref.null noextern)
)
- (func $dummy
+ (func $dummy (type $none_=>_none)
(nop)
)
- (func $br_reuse_node
+ (func $br_reuse_node (type $none_=>_none)
(drop
(block $l0 (result f32)
(drop
diff --git a/test/passes/remove-unused-brs_all-features.txt b/test/passes/remove-unused-brs_all-features.txt
index ab3ead0f4..4e8e101b2 100644
--- a/test/passes/remove-unused-brs_all-features.txt
+++ b/test/passes/remove-unused-brs_all-features.txt
@@ -10,7 +10,7 @@
(type $none_=>_none (func))
(import "out" "log" (func $log (param i32)))
(elem declare func $br_on-to-br $br_on-to-flow $i32_=>_none $none_=>_i32)
- (func $foo (result (ref null $struct))
+ (func $foo (type $none_=>_ref?|$struct|) (result (ref null $struct))
(if (result (ref null $struct))
(i32.const 1)
(struct.new $struct
@@ -21,7 +21,7 @@
(ref.null none)
)
)
- (func $test-prefinalize (result f64)
+ (func $test-prefinalize (type $none_=>_f64) (result f64)
(loop $loop (result f64)
(if (result f64)
(i32.const 1)
@@ -38,20 +38,20 @@
)
)
)
- (func $none_=>_i32 (result i32)
+ (func $none_=>_i32 (type $none_=>_i32) (result i32)
(unreachable)
)
- (func $i32_=>_none (param $0 i32)
+ (func $i32_=>_none (type $i32_=>_none) (param $0 i32)
(nop)
)
- (func $selectify (param $x i32) (result funcref)
+ (func $selectify (type $i32_=>_funcref) (param $x i32) (result funcref)
(select (result funcref)
(ref.func $none_=>_i32)
(ref.func $i32_=>_none)
(local.get $x)
)
)
- (func $br_on-to-br (param $func (ref func))
+ (func $br_on-to-br (type $ref|func|_=>_none) (param $func (ref func))
(call $log
(i32.const 0)
)
@@ -134,7 +134,7 @@
)
)
)
- (func $br_on-to-flow
+ (func $br_on-to-flow (type $none_=>_none)
(drop
(block $data (result nullref)
(drop
diff --git a/test/passes/remove-unused-module-elements_all-features.txt b/test/passes/remove-unused-module-elements_all-features.txt
index ecf303160..5cebb721e 100644
--- a/test/passes/remove-unused-module-elements_all-features.txt
+++ b/test/passes/remove-unused-module-elements_all-features.txt
@@ -10,32 +10,32 @@
(export "other1" (func $other1))
(export "other2" (func $other2))
(start $start)
- (func $start
+ (func $start (type $0)
(call $called0)
)
- (func $called0
+ (func $called0 (type $0)
(call $called1)
)
- (func $called1
+ (func $called1 (type $0)
(nop)
)
- (func $called_indirect
+ (func $called_indirect (type $0)
(nop)
)
- (func $exported
+ (func $exported (type $0)
(call $called2)
)
- (func $called2
+ (func $called2 (type $0)
(call $called2)
(call $called3)
)
- (func $called3
+ (func $called3 (type $0)
(call $called4)
)
- (func $called4
+ (func $called4 (type $0)
(call $called3)
)
- (func $other1 (param $0 i32)
+ (func $other1 (type $1) (param $0 i32)
(call_indirect $0 (type $0)
(i32.const 0)
)
@@ -75,7 +75,7 @@
)
)
)
- (func $other2 (param $0 i32)
+ (func $other2 (type $1) (param $0 i32)
(unreachable)
)
)
@@ -87,7 +87,7 @@
(type $none_=>_none (func))
(import "env" "table2" (table $1 1 1 funcref))
(elem (i32.const 0) $f)
- (func $f
+ (func $f (type $none_=>_none)
(nop)
)
)
@@ -107,7 +107,7 @@
(import "env" "table" (table $timport$0 1 funcref))
(data (i32.const 1) "hello, world!")
(elem (i32.const 0) $waka)
- (func $waka
+ (func $waka (type $none_=>_none)
(nop)
)
)
@@ -116,7 +116,7 @@
(import "env" "memory" (memory $0 256))
(import "env" "table" (table $timport$0 0 funcref))
(export "user" (func $user))
- (func $user
+ (func $user (type $0)
(drop
(i32.load
(i32.const 0)
@@ -131,7 +131,7 @@
(type $none_=>_none (func))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user
+ (func $user (type $none_=>_none)
(i32.store
(i32.const 0)
(i32.const 0)
@@ -142,7 +142,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(i32.atomic.rmw.add
(i32.const 0)
(i32.const 0)
@@ -153,7 +153,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(i32.atomic.rmw8.cmpxchg_u
(i32.const 0)
(i32.const 0)
@@ -165,7 +165,7 @@
(type $none_=>_none (func))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user
+ (func $user (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -181,7 +181,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.atomic.notify
(i32.const 0)
(i32.const 0)
@@ -192,7 +192,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 23 256)
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.grow
(i32.const 0)
)
@@ -202,7 +202,7 @@
(type $none_=>_i32 (func (result i32)))
(import "env" "memory" (memory $0 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.grow
(i32.const 0)
)
@@ -212,7 +212,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 23 256)
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.size)
)
)
@@ -224,7 +224,7 @@
(import "env" "tableBase" (global $tableBase i32))
(data (global.get $memoryBase) "hello, world!")
(elem (global.get $tableBase) $waka)
- (func $waka
+ (func $waka (type $none_=>_none)
(nop)
)
)
@@ -240,16 +240,16 @@
(export "one" (func $one))
(export "three" (func $three))
(export "exp_glob" (global $exp_glob))
- (func $one (result i32)
+ (func $one (type $none_=>_i32) (result i32)
(call $two)
)
- (func $two (result i32)
+ (func $two (type $none_=>_i32) (result i32)
(global.get $int)
)
- (func $three
+ (func $three (type $none_=>_none)
(call $four)
)
- (func $four
+ (func $four (type $none_=>_none)
(global.set $set
(i32.const 200)
)
@@ -265,7 +265,7 @@
(module
(type $none_=>_none (func))
(start $starter)
- (func $starter
+ (func $starter (type $none_=>_none)
(drop
(i32.const 0)
)
@@ -284,7 +284,7 @@
(type $0 (func (param f64) (result f64)))
(import "env" "table" (table $timport$0 6 6 funcref))
(elem (i32.const 0) $0)
- (func $0 (param $var$0 f64) (result f64)
+ (func $0 (type $0) (param $var$0 f64) (result f64)
(if (result f64)
(f64.eq
(f64.const 1)
diff --git a/test/passes/remove-unused-names_merge-blocks_all-features.txt b/test/passes/remove-unused-names_merge-blocks_all-features.txt
index e92d2ab9b..176832c37 100644
--- a/test/passes/remove-unused-names_merge-blocks_all-features.txt
+++ b/test/passes/remove-unused-names_merge-blocks_all-features.txt
@@ -8,21 +8,21 @@
(memory $0 (shared 256 256))
(table $0 1 1 funcref)
(elem (i32.const 0) $call-i)
- (func $call-i (param $0 i32)
+ (func $call-i (type $i) (param $0 i32)
(nop)
)
- (func $call-ii (param $0 i32) (param $1 i32)
+ (func $call-ii (type $ii) (param $0 i32) (param $1 i32)
(nop)
)
- (func $call-iii (param $0 i32) (param $1 i32) (param $2 i32)
+ (func $call-iii (type $iii) (param $0 i32) (param $1 i32) (param $2 i32)
(nop)
)
- (func $b0-yes (param $i1 i32)
+ (func $b0-yes (type $i) (param $i1 i32)
(drop
(i32.const 10)
)
)
- (func $b0-no (param $i1 i32)
+ (func $b0-no (type $i) (param $i1 i32)
(block $topmost
(block $block0
(br $block0)
@@ -30,17 +30,17 @@
(br $topmost)
)
)
- (func $b0-br-but-ok (param $i1 i32)
+ (func $b0-br-but-ok (type $i) (param $i1 i32)
(block $topmost
(br $topmost)
)
)
- (func $b1-yes (param $i1 i32)
+ (func $b1-yes (type $i) (param $i1 i32)
(drop
(i32.const 10)
)
)
- (func $b2-yes (param $i1 i32)
+ (func $b2-yes (type $i) (param $i1 i32)
(drop
(i32.const 5)
)
@@ -51,7 +51,7 @@
(i32.const 15)
)
)
- (func $b3-yes (param $i1 i32)
+ (func $b3-yes (type $i) (param $i1 i32)
(drop
(i32.const 3)
)
@@ -68,7 +68,7 @@
(i32.const 20)
)
)
- (func $b4 (param $i1 i32)
+ (func $b4 (type $i) (param $i1 i32)
(block $inner
(drop
(i32.const 10)
@@ -76,7 +76,7 @@
(br $inner)
)
)
- (func $b5 (param $i1 i32)
+ (func $b5 (type $i) (param $i1 i32)
(block $middle
(drop
(i32.const 10)
@@ -87,7 +87,7 @@
(br $middle)
)
)
- (func $b6 (param $i1 i32)
+ (func $b6 (type $i) (param $i1 i32)
(drop
(i32.const 5)
)
@@ -101,7 +101,7 @@
(i32.const 15)
)
)
- (func $b7 (param $i1 i32)
+ (func $b7 (type $i) (param $i1 i32)
(drop
(i32.const 3)
)
@@ -124,7 +124,7 @@
(i32.const 20)
)
)
- (func $unary
+ (func $unary (type $3)
(local $x i32)
(drop
(i32.eqz
@@ -175,7 +175,7 @@
)
)
)
- (func $binary
+ (func $binary (type $3)
(drop
(i32.add
(block (result i32)
@@ -312,7 +312,7 @@
)
)
)
- (func $trinary
+ (func $trinary (type $3)
(drop
(i32.const 10)
)
@@ -519,7 +519,7 @@
)
)
)
- (func $breaks
+ (func $breaks (type $3)
(block $out
(drop
(i32.const 10)
@@ -569,7 +569,7 @@
(unreachable)
)
)
- (func $calls
+ (func $calls (type $3)
(call $call-i
(block (result i32)
(i32.const 10)
@@ -717,7 +717,7 @@
(unreachable)
)
)
- (func $atomics
+ (func $atomics (type $3)
(drop
(i32.const 10)
)
@@ -744,7 +744,7 @@
)
)
)
- (func $mix-select (param $x i32)
+ (func $mix-select (type $i) (param $x i32)
(drop
(select
(local.get $x)
@@ -758,7 +758,7 @@
)
)
)
- (func $block-type-change
+ (func $block-type-change (type $3)
(local $0 f64)
(local $1 f64)
(nop)
@@ -770,7 +770,7 @@
(nop)
)
)
- (func $do-reorder (param $x i32)
+ (func $do-reorder (type $i) (param $x i32)
(local $y i32)
(if
(i32.const 1)
@@ -787,7 +787,7 @@
)
)
)
- (func $do-not-reorder (param $x i32)
+ (func $do-not-reorder (type $i) (param $x i32)
(local $y i32)
(if
(i32.const 1)
@@ -804,7 +804,7 @@
)
)
)
- (func $return-different-type (result i32)
+ (func $return-different-type (type $none_=>_i32) (result i32)
(drop
(f64.abs
(block
@@ -819,7 +819,7 @@
)
(unreachable)
)
- (func $drop-unreachable (result i32)
+ (func $drop-unreachable (type $none_=>_i32) (result i32)
(local $0 i32)
(drop
(block (result i32)
@@ -828,7 +828,7 @@
)
(unreachable)
)
- (func $concrete_finale_in_unreachable (result f64)
+ (func $concrete_finale_in_unreachable (type $none_=>_f64) (result f64)
(drop
(block (result f64)
(unreachable)
@@ -837,7 +837,7 @@
)
(f64.const -1)
)
- (func $dont-move-unreachable
+ (func $dont-move-unreachable (type $3)
(loop $label$0
(drop
(block (result i32)
@@ -847,7 +847,7 @@
)
)
)
- (func $dont-move-unreachable-last
+ (func $dont-move-unreachable-last (type $3)
(loop $label$0
(drop
(block (result i32)
@@ -857,7 +857,7 @@
)
)
)
- (func $move-around-unreachable-in-middle
+ (func $move-around-unreachable-in-middle (type $3)
(loop $label$0
(nop)
(drop
@@ -873,7 +873,7 @@
)
)
)
- (func $drop-unreachable-block-with-concrete-final
+ (func $drop-unreachable-block-with-concrete-final (type $3)
(drop
(block (result i32)
(drop
@@ -887,7 +887,7 @@
)
)
)
- (func $merging-with-unreachable-in-middle (result i32)
+ (func $merging-with-unreachable-in-middle (type $none_=>_i32) (result i32)
(block (result i32)
(return
(i32.const 21536)
@@ -898,7 +898,7 @@
(i32.const 19299)
)
)
- (func $remove-br-after-unreachable
+ (func $remove-br-after-unreachable (type $3)
(block $label$9
(drop
(block
@@ -910,7 +910,7 @@
)
)
)
- (func $block-tails
+ (func $block-tails (type $3)
(block $l1
(drop
(i32.const -2)
@@ -1047,7 +1047,7 @@
)
)
)
- (func $loop-tails
+ (func $loop-tails (type $3)
(loop $l1
(drop
(i32.const -2)
@@ -1196,7 +1196,7 @@
(i32.const 33)
)
)
- (func $block-tail-one
+ (func $block-tail-one (type $3)
(block $l1
(drop
(i32.const -2)
@@ -1216,7 +1216,7 @@
(i32.const 2)
)
)
- (func $loop-tail-one
+ (func $loop-tail-one (type $3)
(loop $l1
(drop
(i32.const -2)
@@ -1236,7 +1236,7 @@
(i32.const 2)
)
)
- (func $block-tail-value (result i32)
+ (func $block-tail-value (type $none_=>_i32) (result i32)
(block $l1 (result i32)
(drop
(i32.const -1)
@@ -1250,7 +1250,7 @@
(i32.const 2)
)
)
- (func $block-tail-empty
+ (func $block-tail-empty (type $3)
(block $l1
(drop
(i32.const -1)
@@ -1258,7 +1258,7 @@
(br $l1)
)
)
- (func $loop-tail-empty
+ (func $loop-tail-empty (type $3)
(loop $l1
(drop
(i32.const -1)
@@ -1266,7 +1266,7 @@
(br $l1)
)
)
- (func $block-tail-unreachable (result i32)
+ (func $block-tail-unreachable (type $none_=>_i32) (result i32)
(block $l1 (result i32)
(drop
(i32.const -1)
@@ -1283,7 +1283,7 @@
(unreachable)
)
)
- (func $loop-tail-unreachable (result i32)
+ (func $loop-tail-unreachable (type $none_=>_i32) (result i32)
(loop $l1
(drop
(i32.const -1)
@@ -1301,7 +1301,7 @@
(module
(type $none_=>_i32 (func (result i32)))
(type $f64_i32_=>_i32 (func (param f64 i32) (result i32)))
- (func $unreachable-in-sub-block (param $0 f64) (param $1 i32) (result i32)
+ (func $unreachable-in-sub-block (type $f64_i32_=>_i32) (param $0 f64) (param $1 i32) (result i32)
(local $2 i32)
(local $9 i32)
(loop $label$1
@@ -1330,13 +1330,13 @@
(nop)
(local.get $9)
)
- (func $trivial (result i32)
+ (func $trivial (type $none_=>_i32) (result i32)
(block
(unreachable)
(nop)
)
)
- (func $trivial-more (result i32)
+ (func $trivial-more (type $none_=>_i32) (result i32)
(block
(nop)
(unreachable)
@@ -1353,7 +1353,7 @@
)
(module
(type $none_=>_none (func))
- (func $merge-some-block
+ (func $merge-some-block (type $none_=>_none)
(drop
(i32.const 1)
)
@@ -1430,7 +1430,7 @@
)
)
)
- (func $merge-some-loop
+ (func $merge-some-loop (type $none_=>_none)
(drop
(i32.const 1)
)
@@ -1498,7 +1498,7 @@
)
)
)
- (func $merge-some-loop-taken
+ (func $merge-some-loop-taken (type $none_=>_none)
(loop $l1
(block $b1
(drop
@@ -1677,10 +1677,10 @@
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
(tag $e (param i32))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $throw
+ (func $throw (type $none_=>_none)
(nop)
(throw $e
(i32.const 3)
diff --git a/test/passes/remove-unused-nonfunction-module-elements_all-features.txt b/test/passes/remove-unused-nonfunction-module-elements_all-features.txt
index 28391b50d..31ab2b061 100644
--- a/test/passes/remove-unused-nonfunction-module-elements_all-features.txt
+++ b/test/passes/remove-unused-nonfunction-module-elements_all-features.txt
@@ -10,47 +10,47 @@
(export "other1" (func $other1))
(export "other2" (func $other2))
(start $start)
- (func $start
+ (func $start (type $0)
(call $called0)
)
- (func $called0
+ (func $called0 (type $0)
(call $called1)
)
- (func $called1
+ (func $called1 (type $0)
(nop)
)
- (func $called_indirect
+ (func $called_indirect (type $0)
(nop)
)
- (func $exported
+ (func $exported (type $0)
(call $called2)
)
- (func $called2
+ (func $called2 (type $0)
(call $called2)
(call $called3)
)
- (func $called3
+ (func $called3 (type $0)
(call $called4)
)
- (func $called4
+ (func $called4 (type $0)
(call $called3)
)
- (func $remove0
+ (func $remove0 (type $0)
(call $remove1)
)
- (func $remove1
+ (func $remove1 (type $0)
(nop)
)
- (func $remove2
+ (func $remove2 (type $0)
(call $remove2)
)
- (func $remove3
+ (func $remove3 (type $0)
(call $remove4)
)
- (func $remove4
+ (func $remove4 (type $0)
(call $remove3)
)
- (func $other1 (param $0 i32)
+ (func $other1 (type $1) (param $0 i32)
(call_indirect $0 (type $0)
(i32.const 0)
)
@@ -90,7 +90,7 @@
)
)
)
- (func $other2 (param $0 i32)
+ (func $other2 (type $1) (param $0 i32)
(unreachable)
)
)
@@ -110,7 +110,7 @@
(import "env" "table" (table $timport$0 1 funcref))
(data (i32.const 1) "hello, world!")
(elem (i32.const 0) $waka)
- (func $waka
+ (func $waka (type $none_=>_none)
(nop)
)
)
@@ -119,7 +119,7 @@
(import "env" "memory" (memory $0 256))
(import "env" "table" (table $timport$0 0 funcref))
(export "user" (func $user))
- (func $user
+ (func $user (type $0)
(drop
(i32.load
(i32.const 0)
@@ -134,7 +134,7 @@
(type $none_=>_none (func))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user
+ (func $user (type $none_=>_none)
(i32.store
(i32.const 0)
(i32.const 0)
@@ -145,7 +145,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(i32.atomic.rmw.add
(i32.const 0)
(i32.const 0)
@@ -156,7 +156,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(i32.atomic.rmw8.cmpxchg_u
(i32.const 0)
(i32.const 0)
@@ -168,7 +168,7 @@
(type $none_=>_none (func))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user
+ (func $user (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
@@ -184,7 +184,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 (shared 23 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.atomic.notify
(i32.const 0)
(i32.const 0)
@@ -195,7 +195,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 23 256)
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.grow
(i32.const 0)
)
@@ -205,7 +205,7 @@
(type $none_=>_i32 (func (result i32)))
(import "env" "memory" (memory $0 256))
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.grow
(i32.const 0)
)
@@ -215,7 +215,7 @@
(type $none_=>_i32 (func (result i32)))
(memory $0 23 256)
(export "user" (func $user))
- (func $user (result i32)
+ (func $user (type $none_=>_i32) (result i32)
(memory.size)
)
)
@@ -227,7 +227,7 @@
(import "env" "tableBase" (global $tableBase i32))
(data (global.get $memoryBase) "hello, world!")
(elem (global.get $tableBase) $waka)
- (func $waka
+ (func $waka (type $none_=>_none)
(nop)
)
)
@@ -243,16 +243,16 @@
(export "one" (func $one))
(export "three" (func $three))
(export "exp_glob" (global $exp_glob))
- (func $one (result i32)
+ (func $one (type $none_=>_i32) (result i32)
(call $two)
)
- (func $two (result i32)
+ (func $two (type $none_=>_i32) (result i32)
(global.get $int)
)
- (func $three
+ (func $three (type $none_=>_none)
(call $four)
)
- (func $four
+ (func $four (type $none_=>_none)
(global.set $set
(i32.const 200)
)
@@ -262,23 +262,23 @@
)
)
)
- (func $forget_implemented
+ (func $forget_implemented (type $none_=>_none)
(nop)
)
- (func $starter
+ (func $starter (type $none_=>_none)
(nop)
)
)
(module
(type $none_=>_none (func))
- (func $starter
+ (func $starter (type $none_=>_none)
(nop)
)
)
(module
(type $none_=>_none (func))
(start $starter)
- (func $starter
+ (func $starter (type $none_=>_none)
(drop
(i32.const 0)
)
@@ -286,7 +286,7 @@
)
(module
(type $0 (func (param f64) (result f64)))
- (func $0 (param $var$0 f64) (result f64)
+ (func $0 (type $0) (param $var$0 f64) (result f64)
(if (result f64)
(f64.eq
(f64.const 1)
@@ -300,7 +300,7 @@
(module
(type $0 (func (param f64) (result f64)))
(table $0 6 6 funcref)
- (func $0 (param $var$0 f64) (result f64)
+ (func $0 (type $0) (param $var$0 f64) (result f64)
(if (result f64)
(f64.eq
(f64.const 1)
@@ -318,7 +318,7 @@
(type $0 (func (param f64) (result f64)))
(import "env" "table" (table $timport$0 6 6 funcref))
(elem (i32.const 0) $0)
- (func $0 (param $var$0 f64) (result f64)
+ (func $0 (type $0) (param $var$0 f64) (result f64)
(if (result f64)
(f64.eq
(f64.const 1)
@@ -334,7 +334,7 @@
(type $0 (func (param i32)))
(tag $e1 (param i64))
(export "e1" (tag $e1))
- (func $f (param $0 i32)
+ (func $f (type $0) (param $0 i32)
(nop)
)
)
diff --git a/test/passes/roundtrip_typenames_features.txt b/test/passes/roundtrip_typenames_features.txt
index 2def3c2c1..8078b6fae 100644
--- a/test/passes/roundtrip_typenames_features.txt
+++ b/test/passes/roundtrip_typenames_features.txt
@@ -1,8 +1,8 @@
(module
- (type $ref?|$NamedStruct|_=>_none (func (param (ref null $NamedStruct))))
(type $NamedStruct (struct ))
+ (type $ref?|$NamedStruct|_=>_none (func (param (ref null $NamedStruct))))
(export "export" (func $0))
- (func $0 (param $0 (ref null $NamedStruct))
+ (func $0 (type $ref?|$NamedStruct|_=>_none) (param $0 (ref null $NamedStruct))
(nop)
)
;; features section: mutable-globals, sign-ext, reference-types, gc
diff --git a/test/passes/roundtrip_typenames_features.wast b/test/passes/roundtrip_typenames_features.wast
index 0fe9bf004..4aeef439b 100644
--- a/test/passes/roundtrip_typenames_features.wast
+++ b/test/passes/roundtrip_typenames_features.wast
@@ -2,11 +2,10 @@
;; preserve the features and type names while doing so.
(module
- (type $ref?|$NamedStruct|_=>_none (func (param (ref null $NamedStruct))))
(type $NamedStruct (struct ))
+ (type $ref?|$NamedStruct|_=>_none (func (param (ref null $NamedStruct))))
(export "export" (func $0))
(func $0 (param $0 (ref null $NamedStruct))
(nop)
)
)
-
diff --git a/test/passes/rse_all-features.txt b/test/passes/rse_all-features.txt
index 6a4c182d1..96c20e356 100644
--- a/test/passes/rse_all-features.txt
+++ b/test/passes/rse_all-features.txt
@@ -3,7 +3,7 @@
(type $i32_=>_none (func (param i32)))
(type $i32_i32_=>_none (func (param i32 i32)))
(type $i32_f64_=>_none (func (param i32 f64)))
- (func $basic (param $x i32) (param $y f64)
+ (func $basic (type $i32_f64_=>_none) (param $x i32) (param $y f64)
(local $a f32)
(local $b i64)
(local.set $x
@@ -19,7 +19,7 @@
(i64.const 0)
)
)
- (func $later-param-use (param $x i32)
+ (func $later-param-use (type $i32_=>_none) (param $x i32)
(local.set $x
(i32.const 0)
)
@@ -27,7 +27,7 @@
(i32.const 0)
)
)
- (func $diff-value (param $x i32)
+ (func $diff-value (type $i32_=>_none) (param $x i32)
(local $a i32)
(local.set $x
(i32.const 0)
@@ -48,7 +48,7 @@
(i32.const 0)
)
)
- (func $tuple-value
+ (func $tuple-value (type $none_=>_none)
(local $x (i32 i64))
(local.set $x
(tuple.make
@@ -63,7 +63,7 @@
)
)
)
- (func $unreach
+ (func $unreach (type $none_=>_none)
(local $a i32)
(block $x
(drop
@@ -87,7 +87,7 @@
)
)
)
- (func $loop
+ (func $loop (type $none_=>_none)
(local $a i32)
(local $b i32)
(loop $x
@@ -114,7 +114,7 @@
(i32.const 1)
)
)
- (func $if
+ (func $if (type $none_=>_none)
(local $x i32)
(if
(i32.const 0)
@@ -129,7 +129,7 @@
(i32.const 1)
)
)
- (func $if2
+ (func $if2 (type $none_=>_none)
(local $x i32)
(if
(local.tee $x
@@ -146,7 +146,7 @@
(i32.const 1)
)
)
- (func $if3
+ (func $if3 (type $none_=>_none)
(local $x i32)
(if
(local.tee $x
@@ -163,7 +163,7 @@
(i32.const 1)
)
)
- (func $copy
+ (func $copy (type $none_=>_none)
(local $x i32)
(local $y i32)
(local.set $x
@@ -207,7 +207,7 @@
(local.get $x)
)
)
- (func $param-unique (param $x i32)
+ (func $param-unique (type $i32_=>_none) (param $x i32)
(local $a i32)
(local.set $a
(local.get $x)
@@ -227,7 +227,7 @@
(local.get $x)
)
)
- (func $set-unique
+ (func $set-unique (type $none_=>_none)
(local $x i32)
(local $y i32)
(local.set $x
@@ -285,7 +285,7 @@
(local.get $x)
)
)
- (func $identical_complex (param $x i32)
+ (func $identical_complex (type $i32_=>_none) (param $x i32)
(local $y i32)
(local.set $y
(local.get $x)
@@ -306,7 +306,7 @@
(local.get $y)
)
)
- (func $merge
+ (func $merge (type $none_=>_none)
(local $x i32)
(if
(i32.const 1)
@@ -341,7 +341,7 @@
(i32.const 2)
)
)
- (func $one-arm (param $1 i32) (param $3 i32)
+ (func $one-arm (type $i32_i32_=>_none) (param $1 i32) (param $3 i32)
(local.set $1
(local.get $3)
)
@@ -353,7 +353,7 @@
)
)
)
- (func $one-arm2 (param $1 i32) (param $3 i32)
+ (func $one-arm2 (type $i32_i32_=>_none) (param $1 i32) (param $3 i32)
(local.set $1
(local.get $3)
)
@@ -364,7 +364,7 @@
)
)
)
- (func $many-merges
+ (func $many-merges (type $none_=>_none)
(local $0 i32)
(local $1 i32)
(block $block
@@ -393,7 +393,7 @@
)
)
)
- (func $fuzz
+ (func $fuzz (type $none_=>_none)
(local $x i32)
(loop $label$4
(block $label$5
@@ -422,7 +422,7 @@
)
)
)
- (func $fuzz2
+ (func $fuzz2 (type $none_=>_none)
(local $var$1 i32)
(if
(i32.const 0)
@@ -445,7 +445,7 @@
)
)
)
- (func $fuzz-nan
+ (func $fuzz-nan (type $none_=>_none)
(local $0 f64)
(local $1 f64)
(block $block
diff --git a/test/passes/simplify-globals_all-features.txt b/test/passes/simplify-globals_all-features.txt
index d94ac55d3..d7f2fa13c 100644
--- a/test/passes/simplify-globals_all-features.txt
+++ b/test/passes/simplify-globals_all-features.txt
@@ -2,7 +2,7 @@
(type $none_=>_none (func))
(import "env" "global-1" (global $g1 i32))
(global $g2 i32 (global.get $g1))
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(global.get $g1)
)
@@ -17,7 +17,7 @@
(global $g2 i32 (global.get $g1))
(global $g3 i32 (global.get $g2))
(global $g4 i32 (global.get $g3))
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(global.get $g1)
)
@@ -40,7 +40,7 @@
(type $none_=>_none (func))
(import "env" "global-1" (global $g1 i32))
(global $g2 i32 (global.get $g1))
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(unreachable)
)
@@ -65,7 +65,7 @@
(global $ga (mut i32) (i32.const 4))
(global $gb (mut i32) (i32.const 5))
(global $gc i32 (i32.const 5))
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(i32.const 1)
)
@@ -114,7 +114,7 @@
(type $i32_=>_i32 (func (param i32) (result i32)))
(global $g1 (mut i32) (i32.const 1))
(global $g2 (mut i32) (i32.const 1))
- (func $f (param $x i32) (result i32)
+ (func $f (type $i32_=>_i32) (param $x i32) (result i32)
(global.set $g1
(i32.const 100)
)
@@ -158,7 +158,7 @@
(type $i32_=>_i32 (func (param i32) (result i32)))
(global $g1 (mut i32) (i32.const 1))
(global $g2 (mut i32) (i32.const 1))
- (func $f (param $x i32) (result i32)
+ (func $f (type $i32_=>_i32) (param $x i32) (result i32)
(global.set $g1
(i32.const 100)
)
@@ -181,7 +181,7 @@
(type $i32_=>_i32 (func (param i32) (result i32)))
(global $g1 (mut i32) (i32.const 1))
(global $g2 i32 (i32.const 1))
- (func $no (param $x i32) (result i32)
+ (func $no (type $i32_=>_i32) (param $x i32) (result i32)
(global.set $g1
(i32.const 100)
)
@@ -192,7 +192,7 @@
)
(global.get $g1)
)
- (func $no2 (param $x i32) (result i32)
+ (func $no2 (type $i32_=>_i32) (param $x i32) (result i32)
(global.set $g1
(i32.const 100)
)
@@ -201,7 +201,7 @@
)
(global.get $g1)
)
- (func $yes (param $x i32) (result i32)
+ (func $yes (type $i32_=>_i32) (param $x i32) (result i32)
(global.set $g1
(i32.const 100)
)
@@ -216,7 +216,7 @@
(import "env" "global-1" (global $g1 externref))
(global $g2 externref (global.get $g1))
(global $g3 externref (ref.null noextern))
- (func $test1
+ (func $test1 (type $none_=>_none)
(drop
(global.get $g1)
)
@@ -224,7 +224,7 @@
(global.get $g1)
)
)
- (func $test2
+ (func $test2 (type $none_=>_none)
(drop
(ref.null noextern)
)
@@ -233,7 +233,7 @@
(module
(type $none_=>_none (func))
(global $write-only i32 (i32.const 1))
- (func $foo
+ (func $foo (type $none_=>_none)
(drop
(i32.const 2)
)
diff --git a/test/passes/simplify-globals_all-features_fuzz-exec.txt b/test/passes/simplify-globals_all-features_fuzz-exec.txt
index f4e2df478..8c46932c7 100644
--- a/test/passes/simplify-globals_all-features_fuzz-exec.txt
+++ b/test/passes/simplify-globals_all-features_fuzz-exec.txt
@@ -6,10 +6,10 @@
(global $global$0 (mut funcref) (ref.null nofunc))
(elem declare func $0)
(export "export" (func $1))
- (func $0 (param $0 f32) (param $1 i31ref) (param $2 i64) (param $3 f64) (param $4 funcref)
+ (func $0 (type $f32_i31ref_i64_f64_funcref_=>_none) (param $0 f32) (param $1 i31ref) (param $2 i64) (param $3 f64) (param $4 funcref)
(nop)
)
- (func $1 (result funcref)
+ (func $1 (type $none_=>_funcref) (result funcref)
(global.set $global$0
(ref.func $0)
)
diff --git a/test/passes/simplify-locals_all-features.txt b/test/passes/simplify-locals_all-features.txt
index fb51e2fed..1774a93ee 100644
--- a/test/passes/simplify-locals_all-features.txt
+++ b/test/passes/simplify-locals_all-features.txt
@@ -20,7 +20,7 @@
(import "fuzzing-support" "log-f32" (func $fimport$0 (param f32)))
(global $global$0 (mut i32) (i32.const 10))
(memory $0 256 256)
- (func $contrast
+ (func $contrast (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -82,7 +82,7 @@
)
)
)
- (func $b0-yes (param $i1 i32)
+ (func $b0-yes (type $4) (param $i1 i32)
(local $x i32)
(local $y i32)
(local $a i32)
@@ -406,7 +406,7 @@
)
)
)
- (func $Ia (param $a i32) (result i32)
+ (func $Ia (type $5) (param $a i32) (result i32)
(local $b i32)
(block $switch$0
(block $switch-default$6
@@ -417,7 +417,7 @@
(i32.const 60)
)
)
- (func $memories (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32)
+ (func $memories (type $6) (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32)
(local $set_with_no_get i32)
(nop)
(i32.store8
@@ -447,7 +447,7 @@
)
(nop)
)
- (func $___remdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32)
+ (func $___remdi3 (type $FUNCSIG$iiiii) (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32)
(local $$1$1 i32)
(local $$1$0 i32)
(local $$rem i32)
@@ -640,7 +640,7 @@
)
)
)
- (func $block-returns
+ (func $block-returns (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(block $out (result i32)
@@ -714,7 +714,7 @@
)
)
)
- (func $multiple (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32)
+ (func $multiple (type $6) (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32)
(nop)
(local.set $r
(i32.add
@@ -741,7 +741,7 @@
(local.get $t)
)
)
- (func $switch-def (param $i3 i32) (result i32)
+ (func $switch-def (type $5) (param $i3 i32) (result i32)
(local $i1 i32)
(local.set $i1
(i32.const 10)
@@ -760,7 +760,7 @@
(local.get $i1)
)
)
- (func $no-out-of-label (param $x i32) (param $y i32)
+ (func $no-out-of-label (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(nop)
(local.set $x
(loop $moar (result i32)
@@ -787,7 +787,7 @@
(local.get $y)
)
)
- (func $freetype-cd (param $a i32) (result i32)
+ (func $freetype-cd (type $5) (param $a i32) (result i32)
(local $e i32)
(nop)
(local.tee $a
@@ -815,7 +815,7 @@
)
)
)
- (func $drop-if-value (param $x i32) (param $y i32) (param $z i32) (result i32)
+ (func $drop-if-value (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
(local $temp i32)
(drop
(if (result i32)
@@ -843,7 +843,7 @@
(i32.const 0)
)
)
- (func $drop-br_if (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32)
+ (func $drop-br_if (type $i32_i32_i32_=>_i32) (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32)
(nop)
(local.tee $label
(block $label$break$L4 (result i32)
@@ -875,7 +875,7 @@
)
)
)
- (func $drop-tee-unreachable
+ (func $drop-tee-unreachable (type $FUNCSIG$v)
(local $x i32)
(local.tee $x
(unreachable)
@@ -884,7 +884,7 @@
(local.get $x)
)
)
- (func $if-return-but-unreachable (param $var$0 i64)
+ (func $if-return-but-unreachable (type $i64_=>_none) (param $var$0 i64)
(if
(unreachable)
(drop
@@ -895,7 +895,7 @@
)
)
)
- (func $if-one-side (result i32)
+ (func $if-one-side (type $FUNCSIG$i) (result i32)
(local $x i32)
(nop)
(local.tee $x
@@ -909,7 +909,7 @@
)
)
)
- (func $if-one-side-undo (result i32)
+ (func $if-one-side-undo (type $FUNCSIG$i) (result i32)
(local $x i32)
(local $y i32)
(local.set $y
@@ -927,7 +927,7 @@
)
(local.get $y)
)
- (func $if-one-side-multi (param $0 i32) (result i32)
+ (func $if-one-side-multi (type $5) (param $0 i32) (result i32)
(nop)
(local.tee $0
(if (result i32)
@@ -956,7 +956,7 @@
)
)
)
- (func $if-one-side-undo-but-its-a-tee (param $0 i32) (result i32)
+ (func $if-one-side-undo-but-its-a-tee (type $5) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@@ -1035,7 +1035,7 @@
)
(i32.const 0)
)
- (func $splittable-ifs-multicycle (param $20 i32) (result i32)
+ (func $splittable-ifs-multicycle (type $5) (param $20 i32) (result i32)
(nop)
(local.tee $20
(if (result i32)
@@ -1053,7 +1053,7 @@
)
)
)
- (func $update-getCounter (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64)
+ (func $update-getCounter (type $i32_f64_f64_f32_i32_=>_f64) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64)
(global.set $global$0
(i32.sub
(global.get $global$0)
@@ -1137,7 +1137,7 @@
(import "fuzzing-support" "log3" (func $fimport$2 (param f32)))
(global $global$0 (mut i32) (i32.const 10))
(memory $0 (shared 256 256))
- (func $nonatomics (result i32)
+ (func $nonatomics (type $FUNCSIG$i) (result i32)
(local $x i32)
(nop)
(drop
@@ -1149,7 +1149,7 @@
(i32.const 1024)
)
)
- (func $nonatomic-growmem (result i32)
+ (func $nonatomic-growmem (type $FUNCSIG$i) (result i32)
(local $x i32)
(local.set $x
(i32.load
@@ -1165,7 +1165,7 @@
)
(local.get $x)
)
- (func $atomics
+ (func $atomics (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.load
@@ -1181,7 +1181,7 @@
(local.get $x)
)
)
- (func $one-atomic
+ (func $one-atomic (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.load
@@ -1197,7 +1197,7 @@
(local.get $x)
)
)
- (func $other-atomic
+ (func $other-atomic (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.load
@@ -1213,7 +1213,7 @@
(local.get $x)
)
)
- (func $atomic-growmem (result i32)
+ (func $atomic-growmem (type $FUNCSIG$i) (result i32)
(local $x i32)
(local.set $x
(i32.load
@@ -1229,7 +1229,7 @@
)
(local.get $x)
)
- (func $atomicrmw
+ (func $atomicrmw (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.rmw.add
@@ -1246,7 +1246,7 @@
(local.get $x)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.rmw.cmpxchg
@@ -1264,7 +1264,7 @@
(local.get $x)
)
)
- (func $br-value-reordering (result i32)
+ (func $br-value-reordering (type $FUNCSIG$i) (result i32)
(local $temp i32)
(block $outside
(loop $loop
@@ -1287,7 +1287,7 @@
)
(unreachable)
)
- (func $br-value-reordering-safe (result i32)
+ (func $br-value-reordering-safe (type $FUNCSIG$i) (result i32)
(local $temp i32)
(local.set $temp
(block $outside (result i32)
@@ -1313,7 +1313,7 @@
)
(unreachable)
)
- (func $if-one-side-unreachable
+ (func $if-one-side-unreachable (type $FUNCSIG$v)
(local $x i32)
(block $out
(drop
@@ -1349,7 +1349,7 @@
)
)
)
- (func $if-one-side-unreachable-blocks
+ (func $if-one-side-unreachable-blocks (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(block $out
@@ -1400,7 +1400,7 @@
)
)
)
- (func $loop-value (param $x i32) (result i32)
+ (func $loop-value (type $5) (param $x i32) (result i32)
(loop $loopy
(unreachable)
)
@@ -1410,7 +1410,7 @@
(i32.const 1)
)
)
- (func $loop-loop-loopy-value (param $x i32) (result i32)
+ (func $loop-loop-loopy-value (type $5) (param $x i32) (result i32)
(nop)
(loop $loopy1 (result i32)
(nop)
@@ -1423,7 +1423,7 @@
)
)
)
- (func $loop-modified-during-main-pass-be-careful-fuzz (result i32)
+ (func $loop-modified-during-main-pass-be-careful-fuzz (type $FUNCSIG$i) (result i32)
(local $0 i32)
(nop)
(if (result i32)
@@ -1440,11 +1440,11 @@
)
)
)
- (func $loop-later (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
+ (func $loop-later (type $FUNCSIG$iiiiii) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
(nop)
(i32.const 0)
)
- (func $pick
+ (func $pick (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local.set $x
@@ -1467,7 +1467,7 @@
(local.get $y)
)
)
- (func $pick-2
+ (func $pick-2 (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local.set $y
@@ -1490,7 +1490,7 @@
(local.get $x)
)
)
- (func $many
+ (func $many (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1561,7 +1561,7 @@
(local.get $x)
)
)
- (func $loop-copies (param $x i32) (param $y i32)
+ (func $loop-copies (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(loop $loop
(nop)
(drop
@@ -1572,7 +1572,7 @@
)
)
)
- (func $proper-type (result f64)
+ (func $proper-type (type $none_=>_f64) (result f64)
(local $var$0 i32)
(local $var$2 f64)
(local.set $var$0
@@ -1584,7 +1584,7 @@
)
(local.get $var$2)
)
- (func $multi-pass-get-equivs-right (param $var$0 i32) (param $var$1 i32) (result f64)
+ (func $multi-pass-get-equivs-right (type $i32_i32_=>_f64) (param $var$0 i32) (param $var$1 i32) (result f64)
(local $var$2 i32)
(nop)
(i32.store
@@ -1597,7 +1597,7 @@
)
)
)
- (func $if-value-structure-equivalent (param $x i32) (result i32)
+ (func $if-value-structure-equivalent (type $5) (param $x i32) (result i32)
(local $y i32)
(nop)
(local.tee $x
@@ -1615,7 +1615,7 @@
)
)
)
- (func $set-tee-need-one-of-them (param $var$0 i32) (param $var$1 i32) (result i32)
+ (func $set-tee-need-one-of-them (type $i32_i32_=>_i32) (param $var$0 i32) (param $var$1 i32) (result i32)
(local $var$2 i32)
(local $var$3 i32)
(local.set $var$2
@@ -1628,7 +1628,7 @@
)
(local.get $var$2)
)
- (func $loop-value-harder (result i32)
+ (func $loop-value-harder (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@@ -1681,7 +1681,7 @@
(i32.const -5417091)
)
)
- (func $tee-chain (param $x i32) (param $z i32) (param $t1 i32) (param $t2 i32) (param $t3 i32) (result i32)
+ (func $tee-chain (type $FUNCSIG$iiiiii) (param $x i32) (param $z i32) (param $t1 i32) (param $t2 i32) (param $t3 i32) (result i32)
(nop)
(drop
(i32.const 10)
@@ -1715,7 +1715,7 @@
(type $none_=>_none (func))
(memory $0 256 256)
(data "hello, there!")
- (func $memory-init-load
+ (func $memory-init-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1731,7 +1731,7 @@
(local.get $x)
)
)
- (func $memory-init-store
+ (func $memory-init-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1751,7 +1751,7 @@
(local.get $x)
)
)
- (func $memory-copy-load
+ (func $memory-copy-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1767,7 +1767,7 @@
(local.get $x)
)
)
- (func $memory-copy-store
+ (func $memory-copy-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1787,7 +1787,7 @@
(local.get $x)
)
)
- (func $memory-fill-load
+ (func $memory-fill-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1803,7 +1803,7 @@
(local.get $x)
)
)
- (func $memory-fill-store
+ (func $memory-fill-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1823,7 +1823,7 @@
(local.get $x)
)
)
- (func $data-drop-load
+ (func $data-drop-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1835,7 +1835,7 @@
(local.get $x)
)
)
- (func $data-drop-store
+ (func $data-drop-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1851,7 +1851,7 @@
(local.get $x)
)
)
- (func $data-drop-memory-init
+ (func $data-drop-memory-init (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1871,7 +1871,7 @@
)
(module
(type $none_=>_anyref (func (result anyref)))
- (func $subtype-test (result anyref)
+ (func $subtype-test (type $none_=>_anyref) (result anyref)
(local $0 eqref)
(local $1 anyref)
(local $2 anyref)
@@ -1887,7 +1887,7 @@
(memory $0 (shared 1 1))
(data "data")
(export "foo" (func $0))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(local $0 i32)
(local.set $0
(i32.rem_u
@@ -1902,7 +1902,7 @@
(module
(type $eqref_i31ref_=>_i32 (func (param eqref i31ref) (result i32)))
(export "test" (func $0))
- (func $0 (param $0 eqref) (param $1 i31ref) (result i32)
+ (func $0 (type $eqref_i31ref_=>_i32) (param $0 eqref) (param $1 i31ref) (result i32)
(local $2 eqref)
(local $3 i31ref)
(local.set $2
diff --git a/test/passes/simplify-locals_all-features_disable-exception-handling.txt b/test/passes/simplify-locals_all-features_disable-exception-handling.txt
index 78e2804ac..2fd41b93f 100644
--- a/test/passes/simplify-locals_all-features_disable-exception-handling.txt
+++ b/test/passes/simplify-locals_all-features_disable-exception-handling.txt
@@ -20,7 +20,7 @@
(import "fuzzing-support" "log-f32" (func $fimport$0 (param f32)))
(global $global$0 (mut i32) (i32.const 10))
(memory $0 256 256)
- (func $contrast
+ (func $contrast (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -82,7 +82,7 @@
)
)
)
- (func $b0-yes (param $i1 i32)
+ (func $b0-yes (type $4) (param $i1 i32)
(local $x i32)
(local $y i32)
(local $a i32)
@@ -400,7 +400,7 @@
)
)
)
- (func $Ia (param $a i32) (result i32)
+ (func $Ia (type $5) (param $a i32) (result i32)
(local $b i32)
(block $switch$0
(block $switch-default$6
@@ -411,7 +411,7 @@
(i32.const 60)
)
)
- (func $memories (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32)
+ (func $memories (type $6) (param $i2 i32) (param $i3 i32) (param $bi2 i32) (param $bi3 i32) (param $ci3 i32) (param $di3 i32)
(local $set_with_no_get i32)
(nop)
(i32.store8
@@ -441,7 +441,7 @@
)
(nop)
)
- (func $___remdi3 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32)
+ (func $___remdi3 (type $FUNCSIG$iiiii) (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (result i32)
(local $$1$1 i32)
(local $$1$0 i32)
(local $$rem i32)
@@ -634,7 +634,7 @@
)
)
)
- (func $block-returns
+ (func $block-returns (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(block $out (result i32)
@@ -708,7 +708,7 @@
)
)
)
- (func $multiple (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32)
+ (func $multiple (type $6) (param $s i32) (param $r i32) (param $f i32) (param $p i32) (param $t i32) (param $m i32)
(nop)
(local.set $r
(i32.add
@@ -735,7 +735,7 @@
(local.get $t)
)
)
- (func $switch-def (param $i3 i32) (result i32)
+ (func $switch-def (type $5) (param $i3 i32) (result i32)
(local $i1 i32)
(local.set $i1
(i32.const 10)
@@ -754,7 +754,7 @@
(local.get $i1)
)
)
- (func $no-out-of-label (param $x i32) (param $y i32)
+ (func $no-out-of-label (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(nop)
(local.set $x
(loop $moar (result i32)
@@ -781,7 +781,7 @@
(local.get $y)
)
)
- (func $freetype-cd (param $a i32) (result i32)
+ (func $freetype-cd (type $5) (param $a i32) (result i32)
(local $e i32)
(nop)
(local.tee $a
@@ -809,7 +809,7 @@
)
)
)
- (func $drop-if-value (param $x i32) (param $y i32) (param $z i32) (result i32)
+ (func $drop-if-value (type $i32_i32_i32_=>_i32) (param $x i32) (param $y i32) (param $z i32) (result i32)
(local $temp i32)
(drop
(if (result i32)
@@ -837,7 +837,7 @@
(i32.const 0)
)
)
- (func $drop-br_if (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32)
+ (func $drop-br_if (type $i32_i32_i32_=>_i32) (param $label i32) (param $$cond2 i32) (param $$$0151 i32) (result i32)
(nop)
(local.tee $label
(block $label$break$L4 (result i32)
@@ -869,7 +869,7 @@
)
)
)
- (func $drop-tee-unreachable
+ (func $drop-tee-unreachable (type $FUNCSIG$v)
(local $x i32)
(local.tee $x
(unreachable)
@@ -878,7 +878,7 @@
(local.get $x)
)
)
- (func $if-return-but-unreachable (param $var$0 i64)
+ (func $if-return-but-unreachable (type $i64_=>_none) (param $var$0 i64)
(if
(unreachable)
(drop
@@ -889,7 +889,7 @@
)
)
)
- (func $if-one-side (result i32)
+ (func $if-one-side (type $FUNCSIG$i) (result i32)
(local $x i32)
(nop)
(local.tee $x
@@ -903,7 +903,7 @@
)
)
)
- (func $if-one-side-undo (result i32)
+ (func $if-one-side-undo (type $FUNCSIG$i) (result i32)
(local $x i32)
(local $y i32)
(local.set $y
@@ -921,7 +921,7 @@
)
(local.get $y)
)
- (func $if-one-side-multi (param $0 i32) (result i32)
+ (func $if-one-side-multi (type $5) (param $0 i32) (result i32)
(nop)
(local.tee $0
(if (result i32)
@@ -950,7 +950,7 @@
)
)
)
- (func $if-one-side-undo-but-its-a-tee (param $0 i32) (result i32)
+ (func $if-one-side-undo-but-its-a-tee (type $5) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@@ -1029,7 +1029,7 @@
)
(i32.const 0)
)
- (func $splittable-ifs-multicycle (param $20 i32) (result i32)
+ (func $splittable-ifs-multicycle (type $5) (param $20 i32) (result i32)
(nop)
(local.tee $20
(if (result i32)
@@ -1047,7 +1047,7 @@
)
)
)
- (func $update-getCounter (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64)
+ (func $update-getCounter (type $i32_f64_f64_f32_i32_=>_f64) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f32) (param $4 i32) (result f64)
(global.set $global$0
(i32.sub
(global.get $global$0)
@@ -1131,7 +1131,7 @@
(import "fuzzing-support" "log3" (func $fimport$2 (param f32)))
(global $global$0 (mut i32) (i32.const 10))
(memory $0 (shared 256 256))
- (func $nonatomics (result i32)
+ (func $nonatomics (type $FUNCSIG$i) (result i32)
(local $x i32)
(nop)
(drop
@@ -1143,7 +1143,7 @@
(i32.const 1024)
)
)
- (func $nonatomic-growmem (result i32)
+ (func $nonatomic-growmem (type $FUNCSIG$i) (result i32)
(local $x i32)
(local.set $x
(i32.load
@@ -1159,7 +1159,7 @@
)
(local.get $x)
)
- (func $atomics
+ (func $atomics (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.load
@@ -1175,7 +1175,7 @@
(local.get $x)
)
)
- (func $one-atomic
+ (func $one-atomic (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.load
@@ -1191,7 +1191,7 @@
(local.get $x)
)
)
- (func $other-atomic
+ (func $other-atomic (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.load
@@ -1207,7 +1207,7 @@
(local.get $x)
)
)
- (func $atomic-growmem (result i32)
+ (func $atomic-growmem (type $FUNCSIG$i) (result i32)
(local $x i32)
(local.set $x
(i32.load
@@ -1223,7 +1223,7 @@
)
(local.get $x)
)
- (func $atomicrmw
+ (func $atomicrmw (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.rmw.add
@@ -1240,7 +1240,7 @@
(local.get $x)
)
)
- (func $atomic-cmpxchg
+ (func $atomic-cmpxchg (type $FUNCSIG$v)
(local $x i32)
(local.set $x
(i32.atomic.rmw.cmpxchg
@@ -1258,7 +1258,7 @@
(local.get $x)
)
)
- (func $br-value-reordering (result i32)
+ (func $br-value-reordering (type $FUNCSIG$i) (result i32)
(local $temp i32)
(block $outside
(loop $loop
@@ -1281,7 +1281,7 @@
)
(unreachable)
)
- (func $br-value-reordering-safe (result i32)
+ (func $br-value-reordering-safe (type $FUNCSIG$i) (result i32)
(local $temp i32)
(local.set $temp
(block $outside (result i32)
@@ -1307,7 +1307,7 @@
)
(unreachable)
)
- (func $if-one-side-unreachable
+ (func $if-one-side-unreachable (type $FUNCSIG$v)
(local $x i32)
(block $out
(drop
@@ -1343,7 +1343,7 @@
)
)
)
- (func $if-one-side-unreachable-blocks
+ (func $if-one-side-unreachable-blocks (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(block $out
@@ -1394,7 +1394,7 @@
)
)
)
- (func $loop-value (param $x i32) (result i32)
+ (func $loop-value (type $5) (param $x i32) (result i32)
(loop $loopy
(unreachable)
)
@@ -1404,7 +1404,7 @@
(i32.const 1)
)
)
- (func $loop-loop-loopy-value (param $x i32) (result i32)
+ (func $loop-loop-loopy-value (type $5) (param $x i32) (result i32)
(nop)
(loop $loopy1 (result i32)
(nop)
@@ -1417,7 +1417,7 @@
)
)
)
- (func $loop-modified-during-main-pass-be-careful-fuzz (result i32)
+ (func $loop-modified-during-main-pass-be-careful-fuzz (type $FUNCSIG$i) (result i32)
(local $0 i32)
(nop)
(if (result i32)
@@ -1434,11 +1434,11 @@
)
)
)
- (func $loop-later (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
+ (func $loop-later (type $FUNCSIG$iiiiii) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
(nop)
(i32.const 0)
)
- (func $pick
+ (func $pick (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local.set $x
@@ -1461,7 +1461,7 @@
(local.get $y)
)
)
- (func $pick-2
+ (func $pick-2 (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local.set $y
@@ -1484,7 +1484,7 @@
(local.get $x)
)
)
- (func $many
+ (func $many (type $FUNCSIG$v)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1555,7 +1555,7 @@
(local.get $x)
)
)
- (func $loop-copies (param $x i32) (param $y i32)
+ (func $loop-copies (type $i32_i32_=>_none) (param $x i32) (param $y i32)
(loop $loop
(nop)
(drop
@@ -1566,7 +1566,7 @@
)
)
)
- (func $proper-type (result f64)
+ (func $proper-type (type $none_=>_f64) (result f64)
(local $var$0 i32)
(local $var$2 f64)
(local.set $var$0
@@ -1578,7 +1578,7 @@
)
(local.get $var$2)
)
- (func $multi-pass-get-equivs-right (param $var$0 i32) (param $var$1 i32) (result f64)
+ (func $multi-pass-get-equivs-right (type $i32_i32_=>_f64) (param $var$0 i32) (param $var$1 i32) (result f64)
(local $var$2 i32)
(nop)
(i32.store
@@ -1591,7 +1591,7 @@
)
)
)
- (func $if-value-structure-equivalent (param $x i32) (result i32)
+ (func $if-value-structure-equivalent (type $5) (param $x i32) (result i32)
(local $y i32)
(nop)
(local.tee $x
@@ -1609,7 +1609,7 @@
)
)
)
- (func $set-tee-need-one-of-them (param $var$0 i32) (param $var$1 i32) (result i32)
+ (func $set-tee-need-one-of-them (type $i32_i32_=>_i32) (param $var$0 i32) (param $var$1 i32) (result i32)
(local $var$2 i32)
(local $var$3 i32)
(local.set $var$2
@@ -1622,7 +1622,7 @@
)
(local.get $var$2)
)
- (func $loop-value-harder (result i32)
+ (func $loop-value-harder (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@@ -1675,7 +1675,7 @@
(i32.const -5417091)
)
)
- (func $tee-chain (param $x i32) (param $z i32) (param $t1 i32) (param $t2 i32) (param $t3 i32) (result i32)
+ (func $tee-chain (type $FUNCSIG$iiiiii) (param $x i32) (param $z i32) (param $t1 i32) (param $t2 i32) (param $t3 i32) (result i32)
(nop)
(drop
(i32.const 10)
@@ -1709,7 +1709,7 @@
(type $none_=>_none (func))
(memory $0 256 256)
(data "hello, there!")
- (func $memory-init-load
+ (func $memory-init-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1725,7 +1725,7 @@
(local.get $x)
)
)
- (func $memory-init-store
+ (func $memory-init-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1745,7 +1745,7 @@
(local.get $x)
)
)
- (func $memory-copy-load
+ (func $memory-copy-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1761,7 +1761,7 @@
(local.get $x)
)
)
- (func $memory-copy-store
+ (func $memory-copy-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1781,7 +1781,7 @@
(local.get $x)
)
)
- (func $memory-fill-load
+ (func $memory-fill-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1797,7 +1797,7 @@
(local.get $x)
)
)
- (func $memory-fill-store
+ (func $memory-fill-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1817,7 +1817,7 @@
(local.get $x)
)
)
- (func $data-drop-load
+ (func $data-drop-load (type $none_=>_none)
(local $x i32)
(local.set $x
(i32.load
@@ -1829,7 +1829,7 @@
(local.get $x)
)
)
- (func $data-drop-store
+ (func $data-drop-store (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1845,7 +1845,7 @@
(local.get $x)
)
)
- (func $data-drop-memory-init
+ (func $data-drop-memory-init (type $none_=>_none)
(local $x i32)
(local.set $x
(block (result i32)
@@ -1865,7 +1865,7 @@
)
(module
(type $none_=>_anyref (func (result anyref)))
- (func $subtype-test (result anyref)
+ (func $subtype-test (type $none_=>_anyref) (result anyref)
(local $0 i31ref)
(local $1 anyref)
(local $2 anyref)
diff --git a/test/passes/strip-target-features_roundtrip_print-features_all-features.txt b/test/passes/strip-target-features_roundtrip_print-features_all-features.txt
index 8e2d73001..29555b427 100644
--- a/test/passes/strip-target-features_roundtrip_print-features_all-features.txt
+++ b/test/passes/strip-target-features_roundtrip_print-features_all-features.txt
@@ -16,13 +16,13 @@
--enable-multi-memories
(module
(type $none_=>_v128_externref (func (result v128 externref)))
- (func $foo (result v128 externref)
+ (func $foo (type $none_=>_v128_externref) (result v128 externref)
(tuple.make
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(ref.null noextern)
)
)
- (func $bar (result v128 externref)
+ (func $bar (type $none_=>_v128_externref) (result v128 externref)
(return_call $foo)
)
)
diff --git a/test/passes/vacuum_all-features.txt b/test/passes/vacuum_all-features.txt
index f15572cac..739a86158 100644
--- a/test/passes/vacuum_all-features.txt
+++ b/test/passes/vacuum_all-features.txt
@@ -9,10 +9,10 @@
(import "env" "int" (func $int (result i32)))
(global $Int i32 (i32.const 0))
(memory $0 256 256)
- (func $b
+ (func $b (type $0)
(nop)
)
- (func $l (result i32)
+ (func $l (type $3) (result i32)
(local $x i32)
(local $y i32)
(local.set $x
@@ -26,15 +26,15 @@
)
(local.get $x)
)
- (func $loopy (param $0 i32)
+ (func $loopy (type $1) (param $0 i32)
(nop)
)
- (func $unary (result f32)
+ (func $unary (type $2) (result f32)
(f32.abs
(unreachable)
)
)
- (func $binary (result f32)
+ (func $binary (type $2) (result f32)
(drop
(f32.add
(unreachable)
@@ -42,7 +42,7 @@
)
)
)
- (func $select (result i32)
+ (func $select (type $3) (result i32)
(drop
(select
(unreachable)
@@ -51,16 +51,16 @@
)
)
)
- (func $block-to-one
+ (func $block-to-one (type $0)
(unreachable)
)
- (func $recurse
+ (func $recurse (type $0)
(nop)
)
- (func $func-block
+ (func $func-block (type $0)
(nop)
)
- (func $Gu (param $b i32) (param $e f64) (param $l i32) (param $d i32)
+ (func $Gu (type $4) (param $b i32) (param $e f64) (param $l i32) (param $d i32)
(if
(if (result i32)
(local.get $d)
@@ -82,7 +82,7 @@
(unreachable)
)
)
- (func $if-drop (result i32)
+ (func $if-drop (type $3) (result i32)
(block $out
(if
(call $if-drop)
@@ -101,7 +101,7 @@
)
(i32.const 1)
)
- (func $drop-silly
+ (func $drop-silly (type $0)
(drop
(call $int)
)
@@ -118,21 +118,21 @@
)
)
)
- (func $drop-get-global
+ (func $drop-get-global (type $0)
(call $drop-get-global)
)
- (func $relooperJumpThreading1
+ (func $relooperJumpThreading1 (type $0)
(local $$vararg_ptr5 i32)
(local $$11 i32)
(nop)
)
- (func $relooperJumpThreading2
+ (func $relooperJumpThreading2 (type $0)
(nop)
)
- (func $relooperJumpThreading3
+ (func $relooperJumpThreading3 (type $0)
(nop)
)
- (func $if2drops (result i32)
+ (func $if2drops (type $3) (result i32)
(drop
(if (result i32)
(call $if2drops)
@@ -142,7 +142,7 @@
)
(i32.const 2)
)
- (func $if2drops-different (result i32)
+ (func $if2drops-different (type $3) (result i32)
(if
(call $if2drops)
(drop
@@ -154,7 +154,7 @@
)
(i32.const 2)
)
- (func $if-const (param $x i32)
+ (func $if-const (type $1) (param $x i32)
(call $if-const
(i32.const 3)
)
@@ -165,7 +165,7 @@
(i32.const 7)
)
)
- (func $drop-if-both-unreachable (param $0 i32)
+ (func $drop-if-both-unreachable (type $1) (param $0 i32)
(block $out
(drop
(if (result i32)
@@ -183,7 +183,7 @@
)
)
)
- (func $if-1-block (param $x i32) (result i32)
+ (func $if-1-block (type $i32_=>_i32) (param $x i32) (result i32)
(block $out
(if
(local.get $x)
@@ -197,7 +197,7 @@
)
(local.get $x)
)
- (func $block-resize-br-gone
+ (func $block-resize-br-gone (type $0)
(block $out
(block $in
(call $block-resize-br-gone)
@@ -206,11 +206,11 @@
(return)
)
)
- (func $block-unreachable-but-last-element-concrete
+ (func $block-unreachable-but-last-element-concrete (type $0)
(local $2 i32)
(nop)
)
- (func $a
+ (func $a (type $0)
(i32.store
(i32.const 1)
(i32.const 2)
@@ -222,7 +222,7 @@
)
)
)
- (func $leave-block-even-if-br-not-taken (result f64)
+ (func $leave-block-even-if-br-not-taken (type $none_=>_f64) (result f64)
(block $label$0 (result f64)
(f64.store align=1
(i32.const 879179022)
@@ -235,19 +235,19 @@
)
)
)
- (func $executed-if-in-block
+ (func $executed-if-in-block (type $0)
(unreachable)
)
- (func $executed-if-in-block2
+ (func $executed-if-in-block2 (type $0)
(unreachable)
)
- (func $executed-if-in-block3
+ (func $executed-if-in-block3 (type $0)
(block $label$0
(br $label$0)
)
(unreachable)
)
- (func $load-may-have-side-effects (result i32)
+ (func $load-may-have-side-effects (type $3) (result i32)
(i64.ge_s
(block (result i64)
(drop
@@ -260,14 +260,14 @@
(i64.const 0)
)
)
- (func $unary-binary-may-trap
+ (func $unary-binary-may-trap (type $0)
(drop
(i64.trunc_f32_u
(f32.const 70847791997969805621592064)
)
)
)
- (func $unreachable-if-with-nop-arm-that-leaves-a-concrete-value-if-nop-is-removed
+ (func $unreachable-if-with-nop-arm-that-leaves-a-concrete-value-if-nop-is-removed (type $0)
(block $label$0
(loop $label$1
(drop
@@ -280,21 +280,21 @@
)
)
)
- (func $if-arm-vanishes (result i32)
+ (func $if-arm-vanishes (type $3) (result i32)
(block $label$0 (result i32)
(br $label$0
(i32.const 1)
)
)
)
- (func $if-arm-vanishes-2 (result i32)
+ (func $if-arm-vanishes-2 (type $3) (result i32)
(block $label$0 (result i32)
(br $label$0
(i32.const 1)
)
)
)
- (func $nop-if-type-changes
+ (func $nop-if-type-changes (type $0)
(local $0 i32)
(nop)
)
@@ -302,10 +302,10 @@
(module
(type $0 (func (param i64)))
(type $1 (func (param f32 i32) (result i32)))
- (func $0 (param $0 i64)
+ (func $0 (type $0) (param $0 i64)
(nop)
)
- (func $1 (param $0 f32) (param $1 i32) (result i32)
+ (func $1 (type $1) (param $0 f32) (param $1 i32) (result i32)
(drop
(block $label$2 (result i64)
(call $0
@@ -326,22 +326,22 @@
(global $global$1 (mut i32) (i32.const 0))
(memory $0 1 1)
(export "compress" (func $3))
- (func $_deflate (param $0 i32) (result i32)
+ (func $_deflate (type $i32_=>_i32) (param $0 i32) (result i32)
(call $_deflate
(local.get $0)
)
)
- (func $_deflateInit2_ (param $0 i32) (result i32)
+ (func $_deflateInit2_ (type $i32_=>_i32) (param $0 i32) (result i32)
(call $_deflateInit2_
(local.get $0)
)
)
- (func $_deflateEnd (param $0 i32) (result i32)
+ (func $_deflateEnd (type $i32_=>_i32) (param $0 i32) (result i32)
(call $_deflateEnd
(local.get $0)
)
)
- (func $3 (param $0 i32) (param $1 i32) (param $2 i32)
+ (func $3 (type $i32_i32_i32_=>_none) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local.set $3
(global.get $global$1)
@@ -437,14 +437,14 @@
)
(module
(type $none_=>_none (func))
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
)
(module
(type $none_=>_none (func))
(global $global$0 (mut i32) (i32.const 10))
- (func $1
+ (func $1 (type $none_=>_none)
(nop)
)
)
diff --git a/test/polymorphic_stack.wast.from-wast b/test/polymorphic_stack.wast.from-wast
index e9379f862..b420b3192 100644
--- a/test/polymorphic_stack.wast.from-wast
+++ b/test/polymorphic_stack.wast.from-wast
@@ -4,7 +4,7 @@
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
- (func $break-and-binary (result i32)
+ (func $break-and-binary (type $none_=>_i32) (result i32)
(block $x (result i32)
(f32.add
(br_if $x
@@ -19,7 +19,7 @@
)
)
)
- (func $call-and-unary (param $0 i32) (result i32)
+ (func $call-and-unary (type $FUNCSIG$ii) (param $0 i32) (result i32)
(drop
(i64.eqz
(call $call-and-unary
@@ -43,7 +43,7 @@
)
)
)
- (func $tee (param $x i32)
+ (func $tee (type $i32_=>_none) (param $x i32)
(local $y f32)
(drop
(i64.eqz
@@ -60,7 +60,7 @@
)
)
)
- (func $tee2
+ (func $tee2 (type $none_=>_none)
(local $0 f32)
(if
(i32.const 259)
@@ -69,7 +69,7 @@
)
)
)
- (func $select
+ (func $select (type $none_=>_none)
(drop
(i64.eqz
(select
@@ -80,7 +80,7 @@
)
)
)
- (func $untaken-break-should-have-value (result i32)
+ (func $untaken-break-should-have-value (type $none_=>_i32) (result i32)
(block $x (result i32)
(block
(br_if $x
@@ -90,7 +90,7 @@
)
)
)
- (func $unreachable-in-block-but-code-before (param $0 i32) (result i32)
+ (func $unreachable-in-block-but-code-before (type $FUNCSIG$ii) (param $0 i32) (result i32)
(if
(local.get $0)
(return
@@ -106,7 +106,7 @@
)
)
)
- (func $br_table_unreachable_to_also_unreachable (result i32)
+ (func $br_table_unreachable_to_also_unreachable (type $none_=>_i32) (result i32)
(block $a (result i32)
(block $b (result i32)
(br_table $a $b
@@ -116,7 +116,7 @@
)
)
)
- (func $untaken-br_if (result i32)
+ (func $untaken-br_if (type $none_=>_i32) (result i32)
(block $label$8 (result i32)
(block $label$9
(drop
diff --git a/test/polymorphic_stack.wast.fromBinary b/test/polymorphic_stack.wast.fromBinary
index 776db62ad..94ff7b2a5 100644
--- a/test/polymorphic_stack.wast.fromBinary
+++ b/test/polymorphic_stack.wast.fromBinary
@@ -4,29 +4,29 @@
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
- (func $break-and-binary (result i32)
+ (func $break-and-binary (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(unreachable)
)
)
- (func $call-and-unary (param $0 i32) (result i32)
+ (func $call-and-unary (type $FUNCSIG$ii) (param $0 i32) (result i32)
(unreachable)
)
- (func $tee (param $x i32)
+ (func $tee (type $i32_=>_none) (param $x i32)
(local $y f32)
(unreachable)
)
- (func $tee2
+ (func $tee2 (type $none_=>_none)
(local $0 f32)
(if
(i32.const 259)
(unreachable)
)
)
- (func $select
+ (func $select (type $none_=>_none)
(unreachable)
)
- (func $untaken-break-should-have-value (result i32)
+ (func $untaken-break-should-have-value (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(drop
@@ -37,7 +37,7 @@
(unreachable)
)
)
- (func $unreachable-in-block-but-code-before (param $0 i32) (result i32)
+ (func $unreachable-in-block-but-code-before (type $FUNCSIG$ii) (param $0 i32) (result i32)
(if
(local.get $0)
(return
@@ -53,14 +53,14 @@
)
)
)
- (func $br_table_unreachable_to_also_unreachable (result i32)
+ (func $br_table_unreachable_to_also_unreachable (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2 (result i32)
(unreachable)
)
)
)
- (func $untaken-br_if (result i32)
+ (func $untaken-br_if (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(if
diff --git a/test/polymorphic_stack.wast.fromBinary.noDebugInfo b/test/polymorphic_stack.wast.fromBinary.noDebugInfo
index 5d08d3d60..1bc00bf13 100644
--- a/test/polymorphic_stack.wast.fromBinary.noDebugInfo
+++ b/test/polymorphic_stack.wast.fromBinary.noDebugInfo
@@ -4,29 +4,29 @@
(type $none_=>_none (func))
(type $i32_=>_none (func (param i32)))
(import "env" "table" (table $timport$0 9 9 funcref))
- (func $0 (result i32)
+ (func $0 (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(unreachable)
)
)
- (func $1 (param $0 i32) (result i32)
+ (func $1 (type $i32_=>_i32) (param $0 i32) (result i32)
(unreachable)
)
- (func $2 (param $0 i32)
+ (func $2 (type $i32_=>_none) (param $0 i32)
(local $1 f32)
(unreachable)
)
- (func $3
+ (func $3 (type $none_=>_none)
(local $0 f32)
(if
(i32.const 259)
(unreachable)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(unreachable)
)
- (func $5 (result i32)
+ (func $5 (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(drop
@@ -37,7 +37,7 @@
(unreachable)
)
)
- (func $6 (param $0 i32) (result i32)
+ (func $6 (type $i32_=>_i32) (param $0 i32) (result i32)
(if
(local.get $0)
(return
@@ -53,14 +53,14 @@
)
)
)
- (func $7 (result i32)
+ (func $7 (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2 (result i32)
(unreachable)
)
)
)
- (func $8 (result i32)
+ (func $8 (type $none_=>_i32) (result i32)
(block $label$1 (result i32)
(block $label$2
(if
diff --git a/test/print/min.minified.txt b/test/print/min.minified.txt
index 214f9447b..545a2dcc1 100644
--- a/test/print/min.minified.txt
+++ b/test/print/min.minified.txt
@@ -1,4 +1,4 @@
(module(type $0 (func(param f32)(result f32)))(type $1 (func(param i32 i32)(result f32)))(type $2 (func(param i32)(result i32)))(type $3 (func(param i32 i32 i32)(result i32)))(memory $0 256 256)
-(export "floats" (func $floats))(func $floats(param $f f32)(result f32)(local $t f32)(f32.add(local.get $t)(local.get $f)))(func $neg(param $k i32)(param $p i32)(result f32)(local $n f32)(local.tee $n(f32.neg(block $block0 (result f32)(i32.store(local.get $k)(local.get $p))(f32.load(local.get $k))))))(func $littleswitch(param $x i32)(result i32)(block $topmost (result i32)(block $switch-case$2(block $switch-case$1(br_table $switch-case$1 $switch-case$2 $switch-case$1(i32.sub(local.get $x)(i32.const 1))))
+(export "floats" (func $floats))(func $floats (type $0)(param $f f32)(result f32)(local $t f32)(f32.add(local.get $t)(local.get $f)))(func $neg (type $1)(param $k i32)(param $p i32)(result f32)(local $n f32)(local.tee $n(f32.neg(block $block0 (result f32)(i32.store(local.get $k)(local.get $p))(f32.load(local.get $k))))))(func $littleswitch (type $2)(param $x i32)(result i32)(block $topmost (result i32)(block $switch-case$2(block $switch-case$1(br_table $switch-case$1 $switch-case$2 $switch-case$1(i32.sub(local.get $x)(i32.const 1))))
(br $topmost(i32.const 1)))
-(br $topmost(i32.const 2))(i32.const 0)))(func $f1(param $i1 i32)(param $i2 i32)(param $i3 i32)(result i32)(block $topmost (result i32)(local.get $i3)))) \ No newline at end of file
+(br $topmost(i32.const 2))(i32.const 0)))(func $f1 (type $3)(param $i1 i32)(param $i2 i32)(param $i3 i32)(result i32)(block $topmost (result i32)(local.get $i3)))) \ No newline at end of file
diff --git a/test/print/min.txt b/test/print/min.txt
index f0c501672..d8de52edd 100644
--- a/test/print/min.txt
+++ b/test/print/min.txt
@@ -5,14 +5,14 @@
(type $3 (func (param i32 i32 i32) (result i32)))
(memory $0 256 256)
(export "floats" (func $floats))
- (func $floats (param $f f32) (result f32)
+ (func $floats (type $0) (param $f f32) (result f32)
(local $t f32)
(f32.add
(local.get $t)
(local.get $f)
)
)
- (func $neg (param $k i32) (param $p i32) (result f32)
+ (func $neg (type $1) (param $k i32) (param $p i32) (result f32)
(local $n f32)
(local.tee $n
(f32.neg
@@ -28,7 +28,7 @@
)
)
)
- (func $littleswitch (param $x i32) (result i32)
+ (func $littleswitch (type $2) (param $x i32) (result i32)
(block $topmost (result i32)
(block $switch-case$2
(block $switch-case$1
@@ -49,7 +49,7 @@
(i32.const 0)
)
)
- (func $f1 (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
+ (func $f1 (type $3) (param $i1 i32) (param $i2 i32) (param $i3 i32) (result i32)
(block $topmost (result i32)
(local.get $i3)
)
diff --git a/test/reduce/imports.wast.txt b/test/reduce/imports.wast.txt
index 1c2a8c63f..143240b49 100644
--- a/test/reduce/imports.wast.txt
+++ b/test/reduce/imports.wast.txt
@@ -1,5 +1,8 @@
(module
- (type $none_=>_i32 (func (result i32)))
+ (rec
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ )
(export "x" (func $0))
(func $0 (result i32)
(i32.const 5678)
diff --git a/test/reduce/memory_table.wast.txt b/test/reduce/memory_table.wast.txt
index fe9e82072..9da5e8739 100644
--- a/test/reduce/memory_table.wast.txt
+++ b/test/reduce/memory_table.wast.txt
@@ -1,6 +1,8 @@
(module
- (type $none_=>_i32 (func (result i32)))
- (type $none_=>_none (func))
+ (rec
+ (type $none_=>_i32 (func (result i32)))
+ (type $none_=>_none (func))
+ )
(memory $0 256 256)
(export "f1" (func $0))
(export "f2" (func $1))
diff --git a/test/reduce/simple.wast.txt b/test/reduce/simple.wast.txt
index 1c2a8c63f..e621ce52a 100644
--- a/test/reduce/simple.wast.txt
+++ b/test/reduce/simple.wast.txt
@@ -1,5 +1,8 @@
(module
- (type $none_=>_i32 (func (result i32)))
+ (rec
+ (type $none_=>_i32 (func (result i32)))
+ (type $none_=>_none (func))
+ )
(export "x" (func $0))
(func $0 (result i32)
(i32.const 5678)
diff --git a/test/reference-types.wast.from-wast b/test/reference-types.wast.from-wast
index e3a04c760..52661704c 100644
--- a/test/reference-types.wast.from-wast
+++ b/test/reference-types.wast.from-wast
@@ -21,19 +21,19 @@
(tag $e-i32 (param i32))
(export "export_func" (func $import_func))
(export "export_global" (global $import_global))
- (func $take_eqref (param $0 eqref)
+ (func $take_eqref (type $sig_eqref) (param $0 eqref)
(nop)
)
- (func $take_funcref (param $0 funcref)
+ (func $take_funcref (type $sig_funcref) (param $0 funcref)
(nop)
)
- (func $take_anyref (param $0 anyref)
+ (func $take_anyref (type $sig_anyref) (param $0 anyref)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $test
+ (func $test (type $none_=>_none)
(local $local_eqref eqref)
(local $local_funcref funcref)
(local $local_anyref anyref)
@@ -544,50 +544,50 @@
)
)
)
- (func $return_eqref_local (result eqref)
+ (func $return_eqref_local (type $none_=>_eqref) (result eqref)
(local $local_eqref eqref)
(local.get $local_eqref)
)
- (func $return_eqref_global (result eqref)
+ (func $return_eqref_global (type $none_=>_eqref) (result eqref)
(global.get $global_eqref)
)
- (func $return_eqref_null (result eqref)
+ (func $return_eqref_null (type $none_=>_eqref) (result eqref)
(ref.null none)
)
- (func $return_funcref_local (result funcref)
+ (func $return_funcref_local (type $none_=>_funcref) (result funcref)
(local $local_funcref funcref)
(local.get $local_funcref)
)
- (func $return_funcref_global (result funcref)
+ (func $return_funcref_global (type $none_=>_funcref) (result funcref)
(global.get $global_funcref)
)
- (func $return_funcref_null (result funcref)
+ (func $return_funcref_null (type $none_=>_funcref) (result funcref)
(ref.null nofunc)
)
- (func $return_funcref_func (result funcref)
+ (func $return_funcref_func (type $none_=>_funcref) (result funcref)
(ref.func $foo)
)
- (func $return_anyref_local (result anyref)
+ (func $return_anyref_local (type $none_=>_anyref) (result anyref)
(local $local_anyref anyref)
(local.get $local_anyref)
)
- (func $return_anyref_global (result anyref)
+ (func $return_anyref_global (type $none_=>_anyref) (result anyref)
(global.get $global_anyref)
)
- (func $return_anyref_null (result anyref)
+ (func $return_anyref_null (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $return_anyref2 (result anyref)
+ (func $return_anyref2 (type $none_=>_anyref) (result anyref)
(local $local_eqref eqref)
(local.get $local_eqref)
)
- (func $return_anyref3 (result anyref)
+ (func $return_anyref3 (type $none_=>_anyref) (result anyref)
(global.get $global_eqref)
)
- (func $return_anyref4 (result anyref)
+ (func $return_anyref4 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $returns_eqref (result eqref)
+ (func $returns_eqref (type $none_=>_eqref) (result eqref)
(local $local_eqref eqref)
(return
(local.get $local_eqref)
@@ -599,7 +599,7 @@
(ref.null none)
)
)
- (func $returns_funcref (result funcref)
+ (func $returns_funcref (type $none_=>_funcref) (result funcref)
(local $local_funcref funcref)
(return
(local.get $local_funcref)
@@ -614,7 +614,7 @@
(ref.null nofunc)
)
)
- (func $returns_anyref (result anyref)
+ (func $returns_anyref (type $none_=>_anyref) (result anyref)
(local $local_anyref anyref)
(return
(local.get $local_anyref)
@@ -626,7 +626,7 @@
(ref.null none)
)
)
- (func $returns_anyref2 (result anyref)
+ (func $returns_anyref2 (type $none_=>_anyref) (result anyref)
(local $local_eqref eqref)
(local $local_funcref funcref)
(return
@@ -639,12 +639,12 @@
(ref.null none)
)
)
- (func $ref-user
+ (func $ref-user (type $none_=>_none)
(drop
(ref.func $ref-taken-but-not-in-table)
)
)
- (func $ref-taken-but-not-in-table
+ (func $ref-taken-but-not-in-table (type $none_=>_none)
(nop)
)
)
diff --git a/test/reference-types.wast.fromBinary b/test/reference-types.wast.fromBinary
index 670645cf2..163c29d4a 100644
--- a/test/reference-types.wast.fromBinary
+++ b/test/reference-types.wast.fromBinary
@@ -21,19 +21,19 @@
(tag $e-i32 (param i32))
(export "export_func" (func $import_func))
(export "export_global" (global $import_global))
- (func $take_eqref (param $0 eqref)
+ (func $take_eqref (type $sig_eqref) (param $0 eqref)
(nop)
)
- (func $take_funcref (param $0 funcref)
+ (func $take_funcref (type $sig_funcref) (param $0 funcref)
(nop)
)
- (func $take_anyref (param $0 anyref)
+ (func $take_anyref (type $sig_anyref) (param $0 anyref)
(nop)
)
- (func $foo
+ (func $foo (type $none_=>_none)
(nop)
)
- (func $test
+ (func $test (type $none_=>_none)
(local $local_eqref eqref)
(local $local_funcref funcref)
(local $local_anyref anyref)
@@ -544,80 +544,80 @@
)
)
)
- (func $return_eqref_local (result eqref)
+ (func $return_eqref_local (type $none_=>_eqref) (result eqref)
(local $local_eqref eqref)
(local.get $local_eqref)
)
- (func $return_eqref_global (result eqref)
+ (func $return_eqref_global (type $none_=>_eqref) (result eqref)
(global.get $global_eqref)
)
- (func $return_eqref_null (result eqref)
+ (func $return_eqref_null (type $none_=>_eqref) (result eqref)
(ref.null none)
)
- (func $return_funcref_local (result funcref)
+ (func $return_funcref_local (type $none_=>_funcref) (result funcref)
(local $local_funcref funcref)
(local.get $local_funcref)
)
- (func $return_funcref_global (result funcref)
+ (func $return_funcref_global (type $none_=>_funcref) (result funcref)
(global.get $global_funcref)
)
- (func $return_funcref_null (result funcref)
+ (func $return_funcref_null (type $none_=>_funcref) (result funcref)
(ref.null nofunc)
)
- (func $return_funcref_func (result funcref)
+ (func $return_funcref_func (type $none_=>_funcref) (result funcref)
(ref.func $foo)
)
- (func $return_anyref_local (result anyref)
+ (func $return_anyref_local (type $none_=>_anyref) (result anyref)
(local $local_anyref anyref)
(local.get $local_anyref)
)
- (func $return_anyref_global (result anyref)
+ (func $return_anyref_global (type $none_=>_anyref) (result anyref)
(global.get $global_anyref)
)
- (func $return_anyref_null (result anyref)
+ (func $return_anyref_null (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $return_anyref2 (result anyref)
+ (func $return_anyref2 (type $none_=>_anyref) (result anyref)
(local $local_eqref eqref)
(local.get $local_eqref)
)
- (func $return_anyref3 (result anyref)
+ (func $return_anyref3 (type $none_=>_anyref) (result anyref)
(global.get $global_eqref)
)
- (func $return_anyref4 (result anyref)
+ (func $return_anyref4 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $returns_eqref (result eqref)
+ (func $returns_eqref (type $none_=>_eqref) (result eqref)
(local $local_eqref eqref)
(return
(local.get $local_eqref)
)
)
- (func $returns_funcref (result funcref)
+ (func $returns_funcref (type $none_=>_funcref) (result funcref)
(local $local_funcref funcref)
(return
(local.get $local_funcref)
)
)
- (func $returns_anyref (result anyref)
+ (func $returns_anyref (type $none_=>_anyref) (result anyref)
(local $local_anyref anyref)
(return
(local.get $local_anyref)
)
)
- (func $returns_anyref2 (result anyref)
+ (func $returns_anyref2 (type $none_=>_anyref) (result anyref)
(local $local_eqref eqref)
(local $local_funcref funcref)
(return
(local.get $local_eqref)
)
)
- (func $ref-user
+ (func $ref-user (type $none_=>_none)
(drop
(ref.func $ref-taken-but-not-in-table)
)
)
- (func $ref-taken-but-not-in-table
+ (func $ref-taken-but-not-in-table (type $none_=>_none)
(nop)
)
)
diff --git a/test/reference-types.wast.fromBinary.noDebugInfo b/test/reference-types.wast.fromBinary.noDebugInfo
index 85ebc9e9e..f4349a527 100644
--- a/test/reference-types.wast.fromBinary.noDebugInfo
+++ b/test/reference-types.wast.fromBinary.noDebugInfo
@@ -21,19 +21,19 @@
(tag $tag$0 (param i32))
(export "export_func" (func $fimport$0))
(export "export_global" (global $gimport$0))
- (func $0 (param $0 eqref)
+ (func $0 (type $eqref_=>_none) (param $0 eqref)
(nop)
)
- (func $1 (param $0 funcref)
+ (func $1 (type $funcref_=>_none) (param $0 funcref)
(nop)
)
- (func $2 (param $0 anyref)
+ (func $2 (type $anyref_=>_none) (param $0 anyref)
(nop)
)
- (func $3
+ (func $3 (type $none_=>_none)
(nop)
)
- (func $4
+ (func $4 (type $none_=>_none)
(local $0 eqref)
(local $1 funcref)
(local $2 anyref)
@@ -544,80 +544,80 @@
)
)
)
- (func $5 (result eqref)
+ (func $5 (type $none_=>_eqref) (result eqref)
(local $0 eqref)
(local.get $0)
)
- (func $6 (result eqref)
+ (func $6 (type $none_=>_eqref) (result eqref)
(global.get $global$0)
)
- (func $7 (result eqref)
+ (func $7 (type $none_=>_eqref) (result eqref)
(ref.null none)
)
- (func $8 (result funcref)
+ (func $8 (type $none_=>_funcref) (result funcref)
(local $0 funcref)
(local.get $0)
)
- (func $9 (result funcref)
+ (func $9 (type $none_=>_funcref) (result funcref)
(global.get $global$1)
)
- (func $10 (result funcref)
+ (func $10 (type $none_=>_funcref) (result funcref)
(ref.null nofunc)
)
- (func $11 (result funcref)
+ (func $11 (type $none_=>_funcref) (result funcref)
(ref.func $3)
)
- (func $12 (result anyref)
+ (func $12 (type $none_=>_anyref) (result anyref)
(local $0 anyref)
(local.get $0)
)
- (func $13 (result anyref)
+ (func $13 (type $none_=>_anyref) (result anyref)
(global.get $global$3)
)
- (func $14 (result anyref)
+ (func $14 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $15 (result anyref)
+ (func $15 (type $none_=>_anyref) (result anyref)
(local $0 eqref)
(local.get $0)
)
- (func $16 (result anyref)
+ (func $16 (type $none_=>_anyref) (result anyref)
(global.get $global$0)
)
- (func $17 (result anyref)
+ (func $17 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
- (func $18 (result eqref)
+ (func $18 (type $none_=>_eqref) (result eqref)
(local $0 eqref)
(return
(local.get $0)
)
)
- (func $19 (result funcref)
+ (func $19 (type $none_=>_funcref) (result funcref)
(local $0 funcref)
(return
(local.get $0)
)
)
- (func $20 (result anyref)
+ (func $20 (type $none_=>_anyref) (result anyref)
(local $0 anyref)
(return
(local.get $0)
)
)
- (func $21 (result anyref)
+ (func $21 (type $none_=>_anyref) (result anyref)
(local $0 eqref)
(local $1 funcref)
(return
(local.get $0)
)
)
- (func $22
+ (func $22 (type $none_=>_none)
(drop
(ref.func $23)
)
)
- (func $23
+ (func $23 (type $none_=>_none)
(nop)
)
)
diff --git a/test/reg_switch.wast.from-wast b/test/reg_switch.wast.from-wast
index 74b69d9b0..a76690804 100644
--- a/test/reg_switch.wast.from-wast
+++ b/test/reg_switch.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 0)
- (func $0
+ (func $0 (type $0)
(if
(i32.const 0)
(block $A
diff --git a/test/reg_switch.wast.fromBinary b/test/reg_switch.wast.fromBinary
index 8cbd99645..00b78d79c 100644
--- a/test/reg_switch.wast.fromBinary
+++ b/test/reg_switch.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $0 (func))
(memory $0 0)
- (func $0
+ (func $0 (type $0)
(if
(i32.const 0)
(block $label$2
diff --git a/test/reg_switch.wast.fromBinary.noDebugInfo b/test/reg_switch.wast.fromBinary.noDebugInfo
index 3cd9a0793..5ce002075 100644
--- a/test/reg_switch.wast.fromBinary.noDebugInfo
+++ b/test/reg_switch.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 0)
- (func $0
+ (func $0 (type $none_=>_none)
(if
(i32.const 0)
(block $label$2
diff --git a/test/signext.wast.from-wast b/test/signext.wast.from-wast
index c26938c06..128bf5b11 100644
--- a/test/signext.wast.from-wast
+++ b/test/signext.wast.from-wast
@@ -1,6 +1,6 @@
(module
(type $0 (func))
- (func $signext
+ (func $signext (type $0)
(local $0 i32)
(local $1 i64)
(drop
diff --git a/test/signext.wast.fromBinary b/test/signext.wast.fromBinary
index bb1f2bcf3..55b8b92eb 100644
--- a/test/signext.wast.fromBinary
+++ b/test/signext.wast.fromBinary
@@ -1,6 +1,6 @@
(module
(type $0 (func))
- (func $signext
+ (func $signext (type $0)
(local $0 i32)
(local $1 i64)
(drop
diff --git a/test/signext.wast.fromBinary.noDebugInfo b/test/signext.wast.fromBinary.noDebugInfo
index f93d702b8..d37ea9aab 100644
--- a/test/signext.wast.fromBinary.noDebugInfo
+++ b/test/signext.wast.fromBinary.noDebugInfo
@@ -1,6 +1,6 @@
(module
(type $none_=>_none (func))
- (func $0
+ (func $0 (type $none_=>_none)
(local $0 i32)
(local $1 i64)
(drop
diff --git a/test/simd.wast.from-wast b/test/simd.wast.from-wast
index 729706286..a8eefccbe 100644
--- a/test/simd.wast.from-wast
+++ b/test/simd.wast.from-wast
@@ -17,1371 +17,1371 @@
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
(type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
- (func $v128.load (param $0 i32) (result v128)
+ (func $v128.load (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i32) (result v128)
+ (func $v128.load8x8_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i32) (result v128)
+ (func $v128.load8x8_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i32) (result v128)
+ (func $v128.load16x4_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i32) (result v128)
+ (func $v128.load16x4_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i32) (result v128)
+ (func $v128.load32x2_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i32) (result v128)
+ (func $v128.load32x2_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $v128.load8_splat (param $0 i32) (result v128)
+ (func $v128.load8_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i32) (result v128)
+ (func $v128.load16_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i32) (result v128)
+ (func $v128.load32_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i32) (result v128)
+ (func $v128.load64_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $v128.store (param $0 i32) (param $1 v128)
+ (func $v128.store (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $v128.const.i8x16 (result v128)
+ (func $v128.const.i8x16 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
- (func $v128.const.i16x8 (result v128)
+ (func $v128.const.i16x8 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00080007)
)
- (func $v128.const.i32x4 (result v128)
+ (func $v128.const.i32x4 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004)
)
- (func $v128.const.i64x2 (result v128)
+ (func $v128.const.i64x2 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000000 0x00000002 0x00000000)
)
- (func $v128.const.f32x4 (result v128)
+ (func $v128.const.f32x4 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x3f800000 0x40000000 0x40400000 0x40800000)
)
- (func $v128.const.f64x2 (result v128)
+ (func $v128.const.f64x2 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $i8x16.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.shuffle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.swizzle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.swizzle
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.splat (param $0 i32) (result v128)
+ (func $i8x16.splat (type $i32_=>_v128) (param $0 i32) (result v128)
(i8x16.splat
(local.get $0)
)
)
- (func $i16x8.splat (param $0 i32) (result v128)
+ (func $i16x8.splat (type $i32_=>_v128) (param $0 i32) (result v128)
(i16x8.splat
(local.get $0)
)
)
- (func $f32x4.splat (param $0 f32) (result v128)
+ (func $f32x4.splat (type $f32_=>_v128) (param $0 f32) (result v128)
(f32x4.splat
(local.get $0)
)
)
- (func $f64x2.splat (param $0 f64) (result v128)
+ (func $f64x2.splat (type $f64_=>_v128) (param $0 f64) (result v128)
(f64x2.splat
(local.get $0)
)
)
- (func $i8x16.extract_lane_s (param $0 v128) (result i32)
+ (func $i8x16.extract_lane_s (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
)
)
- (func $i8x16.extract_lane_u (param $0 v128) (result i32)
+ (func $i8x16.extract_lane_u (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_u 0
(local.get $0)
)
)
- (func $i8x16.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extract_lane_s (param $0 v128) (result i32)
+ (func $i16x8.extract_lane_s (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
)
)
- (func $i16x8.extract_lane_u (param $0 v128) (result i32)
+ (func $i16x8.extract_lane_u (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_u 0
(local.get $0)
)
)
- (func $i16x8.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extract_lane (param $0 v128) (result i32)
+ (func $i32x4.extract_lane (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
)
)
- (func $i32x4.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extract_lane (param $0 v128) (result i64)
+ (func $i64x2.extract_lane (type $v128_=>_i64) (param $0 v128) (result i64)
(i64x2.extract_lane 0
(local.get $0)
)
)
- (func $i64x2.replace_lane (param $0 v128) (param $1 i64) (result v128)
+ (func $i64x2.replace_lane (type $v128_i64_=>_v128) (param $0 v128) (param $1 i64) (result v128)
(i64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.extract_lane (param $0 v128) (result f32)
+ (func $f32x4.extract_lane (type $v128_=>_f32) (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
)
)
- (func $f32x4.replace_lane (param $0 v128) (param $1 f32) (result v128)
+ (func $f32x4.replace_lane (type $v128_f32_=>_v128) (param $0 v128) (param $1 f32) (result v128)
(f32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.extract_lane (param $0 v128) (result f64)
+ (func $f64x2.extract_lane (type $v128_=>_f64) (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
)
)
- (func $f64x2.replace_lane (param $0 v128) (param $1 f64) (result v128)
+ (func $f64x2.replace_lane (type $v128_f64_=>_v128) (param $0 v128) (param $1 f64) (result v128)
(f64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.eq
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ne
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.eq
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ne
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.lt (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.lt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.lt
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.gt (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.gt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.gt
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.le (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.le (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.le
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ge (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.ge (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ge
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.lt (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.lt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.lt
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.gt (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.gt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.gt
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.le (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.le (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.le
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ge (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.ge (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ge
(local.get $0)
(local.get $1)
)
)
- (func $v128.not (param $0 v128) (result v128)
+ (func $v128.not (type $v128_=>_v128) (param $0 v128) (result v128)
(v128.not
(local.get $0)
)
)
- (func $v128.and (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.and (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.and
(local.get $0)
(local.get $1)
)
)
- (func $v128.andnot (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.andnot (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.or (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.or
(local.get $0)
(local.get $1)
)
)
- (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.xor (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.xor
(local.get $0)
(local.get $1)
)
)
- (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (func $v128.bitselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
(v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $v128.any_true (param $0 v128) (result i32)
+ (func $v128.any_true (type $v128_=>_i32) (param $0 v128) (result i32)
(v128.any_true
(local.get $0)
)
)
- (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_zero (param $0 i32) (result v128)
+ (func $v128.load32_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i32) (result v128)
+ (func $v128.load64_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero
(local.get $0)
)
)
- (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
+ (func $f32x4.demote_f64x2_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.demote_f64x2_zero
(local.get $0)
)
)
- (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
+ (func $f64x2.promote_low_f32x4 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.promote_low_f32x4
(local.get $0)
)
)
- (func $i8x16.abs (param $0 v128) (result v128)
+ (func $i8x16.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.abs
(local.get $0)
)
)
- (func $i8x16.neg (param $0 v128) (result v128)
+ (func $i8x16.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.neg
(local.get $0)
)
)
- (func $i8x16.popcnt (param $0 v128) (result v128)
+ (func $i8x16.popcnt (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.popcnt
(local.get $0)
)
)
- (func $i8x16.all_true (param $0 v128) (result i32)
+ (func $i8x16.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.all_true
(local.get $0)
)
)
- (func $i8x16.bitmask (param $0 v128) (result i32)
+ (func $i8x16.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.bitmask
(local.get $0)
)
)
- (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.narrow_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.narrow_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ceil (param $0 v128) (result v128)
+ (func $f32x4.ceil (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.ceil
(local.get $0)
)
)
- (func $f32x4.floor (param $0 v128) (result v128)
+ (func $f32x4.floor (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.floor
(local.get $0)
)
)
- (func $f32x4.trunc (param $0 v128) (result v128)
+ (func $f32x4.trunc (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.trunc
(local.get $0)
)
)
- (func $f32x4.nearest (param $0 v128) (result v128)
+ (func $f32x4.nearest (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.nearest
(local.get $0)
)
)
- (func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ceil (param $0 v128) (result v128)
+ (func $f64x2.ceil (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.ceil
(local.get $0)
)
)
- (func $f64x2.floor (param $0 v128) (result v128)
+ (func $f64x2.floor (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.floor
(local.get $0)
)
)
- (func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.trunc (param $0 v128) (result v128)
+ (func $f64x2.trunc (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.trunc
(local.get $0)
)
)
- (func $i8x16.avgr_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.avgr_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extadd_pairwise_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extadd_pairwise_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_u
(local.get $0)
)
)
- (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extadd_pairwise_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extadd_pairwise_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_u
(local.get $0)
)
)
- (func $i16x8.abs (param $0 v128) (result v128)
+ (func $i16x8.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
)
)
- (func $i16x8.neg (param $0 v128) (result v128)
+ (func $i16x8.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.neg
(local.get $0)
)
)
- (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.q15mulr_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.q15mulr_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.all_true (param $0 v128) (result i32)
+ (func $i16x8.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.all_true
(local.get $0)
)
)
- (func $i16x8.bitmask (param $0 v128) (result i32)
+ (func $i16x8.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.bitmask
(local.get $0)
)
)
- (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.narrow_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.narrow_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extend_low_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extend_low_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extend_high_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extend_high_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extend_low_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extend_low_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_u
(local.get $0)
)
)
- (func $i16x8.extend_high_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extend_high_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_u
(local.get $0)
)
)
- (func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.nearest (param $0 v128) (result v128)
+ (func $f64x2.nearest (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.nearest
(local.get $0)
)
)
- (func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.avgr_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.avgr_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_low_i8x16_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_low_i8x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_high_i8x16_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_high_i8x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_low_i8x16_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_low_i8x16_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_high_i8x16_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_high_i8x16_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.abs (param $0 v128) (result v128)
+ (func $i32x4.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.abs
(local.get $0)
)
)
- (func $i32x4.neg (param $0 v128) (result v128)
+ (func $i32x4.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.neg
(local.get $0)
)
)
- (func $i32x4.all_true (param $0 v128) (result i32)
+ (func $i32x4.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
)
)
- (func $i32x4.bitmask (param $0 v128) (result i32)
+ (func $i32x4.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.bitmask
(local.get $0)
)
)
- (func $i32x4.extend_low_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extend_low_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extend_high_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extend_high_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extend_low_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extend_low_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_u
(local.get $0)
)
)
- (func $i32x4.extend_high_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extend_high_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_u
(local.get $0)
)
)
- (func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.dot_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.dot_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.dot_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_low_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_low_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_high_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_high_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_low_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_low_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_high_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_high_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.abs (param $0 v128) (result v128)
+ (func $i64x2.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.abs
(local.get $0)
)
)
- (func $i64x2.neg (param $0 v128) (result v128)
+ (func $i64x2.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
- (func $i64x2.all_true (param $0 v128) (result i32)
+ (func $i64x2.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.all_true
(local.get $0)
)
)
- (func $i64x2.bitmask (param $0 v128) (result i32)
+ (func $i64x2.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
- (func $i64x2.extend_low_i32x4_s (param $0 v128) (result v128)
+ (func $i64x2.extend_low_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_s
(local.get $0)
)
)
- (func $i64x2.extend_high_i32x4_s (param $0 v128) (result v128)
+ (func $i64x2.extend_high_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_s
(local.get $0)
)
)
- (func $i64x2.extend_low_i32x4_u (param $0 v128) (result v128)
+ (func $i64x2.extend_low_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_u
(local.get $0)
)
)
- (func $i64x2.extend_high_i32x4_u (param $0 v128) (result v128)
+ (func $i64x2.extend_high_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_u
(local.get $0)
)
)
- (func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_low_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_low_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_high_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_high_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_low_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_low_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_high_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_high_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.abs (param $0 v128) (result v128)
+ (func $f32x4.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.abs
(local.get $0)
)
)
- (func $f32x4.neg (param $0 v128) (result v128)
+ (func $f32x4.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.neg
(local.get $0)
)
)
- (func $f32x4.sqrt (param $0 v128) (result v128)
+ (func $f32x4.sqrt (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.sqrt
(local.get $0)
)
)
- (func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.div (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.div (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.div
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.min (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.min
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.max (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.max
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.pmin (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.pmin (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmin
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.pmax (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.pmax (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmax
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.abs (param $0 v128) (result v128)
+ (func $f64x2.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.abs
(local.get $0)
)
)
- (func $f64x2.neg (param $0 v128) (result v128)
+ (func $f64x2.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.neg
(local.get $0)
)
)
- (func $f64x2.sqrt (param $0 v128) (result v128)
+ (func $f64x2.sqrt (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.sqrt
(local.get $0)
)
)
- (func $f64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.div (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.div (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.div
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.min (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.min
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.max (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.max
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.pmin (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.pmin (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmin
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.pmax (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.pmax (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmax
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.trunc_sat_f32x4_s (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f32x4_u (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_u
(local.get $0)
)
)
- (func $f32x4.convert_i32x4_s (param $0 v128) (result v128)
+ (func $f32x4.convert_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
)
)
- (func $f32x4.convert_i32x4_u (param $0 v128) (result v128)
+ (func $f32x4.convert_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_u
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_s_zero (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f64x2_s_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_u_zero (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f64x2_u_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
- (func $f64x2.convert_low_i32x4_s (param $0 v128) (result v128)
+ (func $f64x2.convert_low_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_s
(local.get $0)
)
)
- (func $f64x2.convert_low_i32x4_u (param $0 v128) (result v128)
+ (func $f64x2.convert_low_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_u
(local.get $0)
)
diff --git a/test/simd.wast.fromBinary b/test/simd.wast.fromBinary
index abcfd024e..1bfd3b2b5 100644
--- a/test/simd.wast.fromBinary
+++ b/test/simd.wast.fromBinary
@@ -17,1371 +17,1371 @@
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
(type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
- (func $v128.load (param $0 i32) (result v128)
+ (func $v128.load (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i32) (result v128)
+ (func $v128.load8x8_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i32) (result v128)
+ (func $v128.load8x8_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i32) (result v128)
+ (func $v128.load16x4_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i32) (result v128)
+ (func $v128.load16x4_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i32) (result v128)
+ (func $v128.load32x2_s (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i32) (result v128)
+ (func $v128.load32x2_u (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $v128.load8_splat (param $0 i32) (result v128)
+ (func $v128.load8_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i32) (result v128)
+ (func $v128.load16_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i32) (result v128)
+ (func $v128.load32_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i32) (result v128)
+ (func $v128.load64_splat (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $v128.store (param $0 i32) (param $1 v128)
+ (func $v128.store (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $v128.const.i8x16 (result v128)
+ (func $v128.const.i8x16 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
- (func $v128.const.i16x8 (result v128)
+ (func $v128.const.i16x8 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00080007)
)
- (func $v128.const.i32x4 (result v128)
+ (func $v128.const.i32x4 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004)
)
- (func $v128.const.i64x2 (result v128)
+ (func $v128.const.i64x2 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000000 0x00000002 0x00000000)
)
- (func $v128.const.f32x4 (result v128)
+ (func $v128.const.f32x4 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x3f800000 0x40000000 0x40400000 0x40800000)
)
- (func $v128.const.f64x2 (result v128)
+ (func $v128.const.f64x2 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $i8x16.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.shuffle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.swizzle (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.swizzle (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.swizzle
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.splat (param $0 i32) (result v128)
+ (func $i8x16.splat (type $i32_=>_v128) (param $0 i32) (result v128)
(i8x16.splat
(local.get $0)
)
)
- (func $i16x8.splat (param $0 i32) (result v128)
+ (func $i16x8.splat (type $i32_=>_v128) (param $0 i32) (result v128)
(i16x8.splat
(local.get $0)
)
)
- (func $f32x4.splat (param $0 f32) (result v128)
+ (func $f32x4.splat (type $f32_=>_v128) (param $0 f32) (result v128)
(f32x4.splat
(local.get $0)
)
)
- (func $f64x2.splat (param $0 f64) (result v128)
+ (func $f64x2.splat (type $f64_=>_v128) (param $0 f64) (result v128)
(f64x2.splat
(local.get $0)
)
)
- (func $i8x16.extract_lane_s (param $0 v128) (result i32)
+ (func $i8x16.extract_lane_s (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
)
)
- (func $i8x16.extract_lane_u (param $0 v128) (result i32)
+ (func $i8x16.extract_lane_u (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_u 0
(local.get $0)
)
)
- (func $i8x16.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extract_lane_s (param $0 v128) (result i32)
+ (func $i16x8.extract_lane_s (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
)
)
- (func $i16x8.extract_lane_u (param $0 v128) (result i32)
+ (func $i16x8.extract_lane_u (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_u 0
(local.get $0)
)
)
- (func $i16x8.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extract_lane (param $0 v128) (result i32)
+ (func $i32x4.extract_lane (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
)
)
- (func $i32x4.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.replace_lane (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extract_lane (param $0 v128) (result i64)
+ (func $i64x2.extract_lane (type $v128_=>_i64) (param $0 v128) (result i64)
(i64x2.extract_lane 0
(local.get $0)
)
)
- (func $i64x2.replace_lane (param $0 v128) (param $1 i64) (result v128)
+ (func $i64x2.replace_lane (type $v128_i64_=>_v128) (param $0 v128) (param $1 i64) (result v128)
(i64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.extract_lane (param $0 v128) (result f32)
+ (func $f32x4.extract_lane (type $v128_=>_f32) (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
)
)
- (func $f32x4.replace_lane (param $0 v128) (param $1 f32) (result v128)
+ (func $f32x4.replace_lane (type $v128_f32_=>_v128) (param $0 v128) (param $1 f32) (result v128)
(f32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.extract_lane (param $0 v128) (result f64)
+ (func $f64x2.extract_lane (type $v128_=>_f64) (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
)
)
- (func $f64x2.replace_lane (param $0 v128) (param $1 f64) (result v128)
+ (func $f64x2.replace_lane (type $v128_f64_=>_v128) (param $0 v128) (param $1 f64) (result v128)
(f64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.eq
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ne
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.eq
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ne
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.lt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.gt_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.le_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.le_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.ge_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.lt (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.lt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.lt
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.gt (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.gt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.gt
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.le (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.le (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.le
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ge (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.ge (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ge
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.lt (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.lt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.lt
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.gt (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.gt (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.gt
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.le (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.le (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.le
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ge (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.ge (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ge
(local.get $0)
(local.get $1)
)
)
- (func $v128.not (param $0 v128) (result v128)
+ (func $v128.not (type $v128_=>_v128) (param $0 v128) (result v128)
(v128.not
(local.get $0)
)
)
- (func $v128.and (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.and (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.and
(local.get $0)
(local.get $1)
)
)
- (func $v128.andnot (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.andnot (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.or (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.or
(local.get $0)
(local.get $1)
)
)
- (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (func $v128.xor (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.xor
(local.get $0)
(local.get $1)
)
)
- (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (func $v128.bitselect (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
(v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $v128.any_true (param $0 v128) (result i32)
+ (func $v128.any_true (type $v128_=>_i32) (param $0 v128) (result i32)
(v128.any_true
(local.get $0)
)
)
- (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load8_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load16_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load32_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (func $v128.load64_lane_align_offset (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (func $v128.store8_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (func $v128.store16_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (func $v128.store32_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (func $v128.store64_lane_align_offset (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $v128.load32_zero (param $0 i32) (result v128)
+ (func $v128.load32_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i32) (result v128)
+ (func $v128.load64_zero (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero
(local.get $0)
)
)
- (func $f32x4.demote_f64x2_zero (param $0 v128) (result v128)
+ (func $f32x4.demote_f64x2_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.demote_f64x2_zero
(local.get $0)
)
)
- (func $f64x2.promote_low_f32x4 (param $0 v128) (result v128)
+ (func $f64x2.promote_low_f32x4 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.promote_low_f32x4
(local.get $0)
)
)
- (func $i8x16.abs (param $0 v128) (result v128)
+ (func $i8x16.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.abs
(local.get $0)
)
)
- (func $i8x16.neg (param $0 v128) (result v128)
+ (func $i8x16.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.neg
(local.get $0)
)
)
- (func $i8x16.popcnt (param $0 v128) (result v128)
+ (func $i8x16.popcnt (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.popcnt
(local.get $0)
)
)
- (func $i8x16.all_true (param $0 v128) (result i32)
+ (func $i8x16.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.all_true
(local.get $0)
)
)
- (func $i8x16.bitmask (param $0 v128) (result i32)
+ (func $i8x16.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.bitmask
(local.get $0)
)
)
- (func $i8x16.narrow_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.narrow_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.narrow_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.narrow_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.ceil (param $0 v128) (result v128)
+ (func $f32x4.ceil (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.ceil
(local.get $0)
)
)
- (func $f32x4.floor (param $0 v128) (result v128)
+ (func $f32x4.floor (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.floor
(local.get $0)
)
)
- (func $f32x4.trunc (param $0 v128) (result v128)
+ (func $f32x4.trunc (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.trunc
(local.get $0)
)
)
- (func $f32x4.nearest (param $0 v128) (result v128)
+ (func $f32x4.nearest (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.nearest
(local.get $0)
)
)
- (func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i8x16.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.add_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.sub_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.ceil (param $0 v128) (result v128)
+ (func $f64x2.ceil (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.ceil
(local.get $0)
)
)
- (func $f64x2.floor (param $0 v128) (result v128)
+ (func $f64x2.floor (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.floor
(local.get $0)
)
)
- (func $i8x16.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i8x16.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.trunc (param $0 v128) (result v128)
+ (func $f64x2.trunc (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.trunc
(local.get $0)
)
)
- (func $i8x16.avgr_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i8x16.avgr_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extadd_pairwise_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extadd_pairwise_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extadd_pairwise_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extadd_pairwise_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_u
(local.get $0)
)
)
- (func $i32x4.extadd_pairwise_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extadd_pairwise_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extadd_pairwise_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extadd_pairwise_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_u
(local.get $0)
)
)
- (func $i16x8.abs (param $0 v128) (result v128)
+ (func $i16x8.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
)
)
- (func $i16x8.neg (param $0 v128) (result v128)
+ (func $i16x8.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.neg
(local.get $0)
)
)
- (func $i16x8.q15mulr_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.q15mulr_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.q15mulr_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.all_true (param $0 v128) (result i32)
+ (func $i16x8.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.all_true
(local.get $0)
)
)
- (func $i16x8.bitmask (param $0 v128) (result i32)
+ (func $i16x8.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.bitmask
(local.get $0)
)
)
- (func $i16x8.narrow_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.narrow_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.narrow_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.narrow_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extend_low_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extend_low_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extend_high_i8x16_s (param $0 v128) (result v128)
+ (func $i16x8.extend_high_i8x16_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_s
(local.get $0)
)
)
- (func $i16x8.extend_low_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extend_low_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_u
(local.get $0)
)
)
- (func $i16x8.extend_high_i8x16_u (param $0 v128) (result v128)
+ (func $i16x8.extend_high_i8x16_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_u
(local.get $0)
)
)
- (func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i16x8.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.add_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.add_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_sat_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub_sat_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.sub_sat_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.sub_sat_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.nearest (param $0 v128) (result v128)
+ (func $f64x2.nearest (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.nearest
(local.get $0)
)
)
- (func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.avgr_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.avgr_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_low_i8x16_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_low_i8x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_high_i8x16_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_high_i8x16_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_low_i8x16_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_low_i8x16_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $i16x8.extmul_high_i8x16_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i16x8.extmul_high_i8x16_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.abs (param $0 v128) (result v128)
+ (func $i32x4.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.abs
(local.get $0)
)
)
- (func $i32x4.neg (param $0 v128) (result v128)
+ (func $i32x4.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.neg
(local.get $0)
)
)
- (func $i32x4.all_true (param $0 v128) (result i32)
+ (func $i32x4.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
)
)
- (func $i32x4.bitmask (param $0 v128) (result i32)
+ (func $i32x4.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.bitmask
(local.get $0)
)
)
- (func $i32x4.extend_low_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extend_low_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extend_high_i16x8_s (param $0 v128) (result v128)
+ (func $i32x4.extend_high_i16x8_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_s
(local.get $0)
)
)
- (func $i32x4.extend_low_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extend_low_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_u
(local.get $0)
)
)
- (func $i32x4.extend_high_i16x8_u (param $0 v128) (result v128)
+ (func $i32x4.extend_high_i16x8_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_u
(local.get $0)
)
)
- (func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i32x4.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.min_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.min_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.min_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.min_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.max_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.max_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.max_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.max_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.dot_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.dot_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.dot_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_low_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_low_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_high_i16x8_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_high_i16x8_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_low_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_low_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.extmul_high_i16x8_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i32x4.extmul_high_i16x8_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.abs (param $0 v128) (result v128)
+ (func $i64x2.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.abs
(local.get $0)
)
)
- (func $i64x2.neg (param $0 v128) (result v128)
+ (func $i64x2.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
- (func $i64x2.all_true (param $0 v128) (result i32)
+ (func $i64x2.all_true (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.all_true
(local.get $0)
)
)
- (func $i64x2.bitmask (param $0 v128) (result i32)
+ (func $i64x2.bitmask (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
- (func $i64x2.extend_low_i32x4_s (param $0 v128) (result v128)
+ (func $i64x2.extend_low_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_s
(local.get $0)
)
)
- (func $i64x2.extend_high_i32x4_s (param $0 v128) (result v128)
+ (func $i64x2.extend_high_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_s
(local.get $0)
)
)
- (func $i64x2.extend_low_i32x4_u (param $0 v128) (result v128)
+ (func $i64x2.extend_low_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_u
(local.get $0)
)
)
- (func $i64x2.extend_high_i32x4_u (param $0 v128) (result v128)
+ (func $i64x2.extend_high_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_u
(local.get $0)
)
)
- (func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shl (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shr_s (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (func $i64x2.shr_u (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.eq (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.ne (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.lt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.gt_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.le_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.le_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.le_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.ge_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_low_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_low_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_high_i32x4_s (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_high_i32x4_s (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_low_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_low_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $i64x2.extmul_high_i32x4_u (param $0 v128) (param $1 v128) (result v128)
+ (func $i64x2.extmul_high_i32x4_u (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.abs (param $0 v128) (result v128)
+ (func $f32x4.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.abs
(local.get $0)
)
)
- (func $f32x4.neg (param $0 v128) (result v128)
+ (func $f32x4.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.neg
(local.get $0)
)
)
- (func $f32x4.sqrt (param $0 v128) (result v128)
+ (func $f32x4.sqrt (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.sqrt
(local.get $0)
)
)
- (func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.div (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.div (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.div
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.min (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.min
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.max (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.max
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.pmin (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.pmin (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmin
(local.get $0)
(local.get $1)
)
)
- (func $f32x4.pmax (param $0 v128) (param $1 v128) (result v128)
+ (func $f32x4.pmax (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmax
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.abs (param $0 v128) (result v128)
+ (func $f64x2.abs (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.abs
(local.get $0)
)
)
- (func $f64x2.neg (param $0 v128) (result v128)
+ (func $f64x2.neg (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.neg
(local.get $0)
)
)
- (func $f64x2.sqrt (param $0 v128) (result v128)
+ (func $f64x2.sqrt (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.sqrt
(local.get $0)
)
)
- (func $f64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.add (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.sub (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.mul (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.mul (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.div (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.div (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.div
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.min (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.min (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.min
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.max (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.max (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.max
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.pmin (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.pmin (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmin
(local.get $0)
(local.get $1)
)
)
- (func $f64x2.pmax (param $0 v128) (param $1 v128) (result v128)
+ (func $f64x2.pmax (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmax
(local.get $0)
(local.get $1)
)
)
- (func $i32x4.trunc_sat_f32x4_s (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f32x4_u (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_u
(local.get $0)
)
)
- (func $f32x4.convert_i32x4_s (param $0 v128) (result v128)
+ (func $f32x4.convert_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
)
)
- (func $f32x4.convert_i32x4_u (param $0 v128) (result v128)
+ (func $f32x4.convert_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_u
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_s_zero (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f64x2_s_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $i32x4.trunc_sat_f64x2_u_zero (param $0 v128) (result v128)
+ (func $i32x4.trunc_sat_f64x2_u_zero (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
- (func $f64x2.convert_low_i32x4_s (param $0 v128) (result v128)
+ (func $f64x2.convert_low_i32x4_s (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_s
(local.get $0)
)
)
- (func $f64x2.convert_low_i32x4_u (param $0 v128) (result v128)
+ (func $f64x2.convert_low_i32x4_u (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_u
(local.get $0)
)
diff --git a/test/simd.wast.fromBinary.noDebugInfo b/test/simd.wast.fromBinary.noDebugInfo
index 0567be049..db46e7564 100644
--- a/test/simd.wast.fromBinary.noDebugInfo
+++ b/test/simd.wast.fromBinary.noDebugInfo
@@ -17,1371 +17,1371 @@
(type $v128_f64_=>_v128 (func (param v128 f64) (result v128)))
(type $v128_v128_v128_=>_v128 (func (param v128 v128 v128) (result v128)))
(memory $0 1 1)
- (func $0 (param $0 i32) (result v128)
+ (func $0 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load
(local.get $0)
)
)
- (func $1 (param $0 i32) (result v128)
+ (func $1 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $2 (param $0 i32) (result v128)
+ (func $2 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $3 (param $0 i32) (result v128)
+ (func $3 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $4 (param $0 i32) (result v128)
+ (func $4 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $5 (param $0 i32) (result v128)
+ (func $5 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $6 (param $0 i32) (result v128)
+ (func $6 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $7 (param $0 i32) (result v128)
+ (func $7 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $8 (param $0 i32) (result v128)
+ (func $8 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $9 (param $0 i32) (result v128)
+ (func $9 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $10 (param $0 i32) (result v128)
+ (func $10 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $11 (param $0 i32) (param $1 v128)
+ (func $11 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $12 (result v128)
+ (func $12 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
- (func $13 (result v128)
+ (func $13 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00080007)
)
- (func $14 (result v128)
+ (func $14 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004)
)
- (func $15 (result v128)
+ (func $15 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000001 0x00000000 0x00000002 0x00000000)
)
- (func $16 (result v128)
+ (func $16 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x3f800000 0x40000000 0x40400000 0x40800000)
)
- (func $17 (result v128)
+ (func $17 (type $none_=>_v128) (result v128)
(v128.const i32x4 0x00000000 0x3ff00000 0x00000000 0x40000000)
)
- (func $18 (param $0 v128) (param $1 v128) (result v128)
+ (func $18 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
(local.get $0)
(local.get $1)
)
)
- (func $19 (param $0 v128) (param $1 v128) (result v128)
+ (func $19 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.swizzle
(local.get $0)
(local.get $1)
)
)
- (func $20 (param $0 i32) (result v128)
+ (func $20 (type $i32_=>_v128) (param $0 i32) (result v128)
(i8x16.splat
(local.get $0)
)
)
- (func $21 (param $0 i32) (result v128)
+ (func $21 (type $i32_=>_v128) (param $0 i32) (result v128)
(i16x8.splat
(local.get $0)
)
)
- (func $22 (param $0 f32) (result v128)
+ (func $22 (type $f32_=>_v128) (param $0 f32) (result v128)
(f32x4.splat
(local.get $0)
)
)
- (func $23 (param $0 f64) (result v128)
+ (func $23 (type $f64_=>_v128) (param $0 f64) (result v128)
(f64x2.splat
(local.get $0)
)
)
- (func $24 (param $0 v128) (result i32)
+ (func $24 (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_s 0
(local.get $0)
)
)
- (func $25 (param $0 v128) (result i32)
+ (func $25 (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.extract_lane_u 0
(local.get $0)
)
)
- (func $26 (param $0 v128) (param $1 i32) (result v128)
+ (func $26 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $27 (param $0 v128) (result i32)
+ (func $27 (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_s 0
(local.get $0)
)
)
- (func $28 (param $0 v128) (result i32)
+ (func $28 (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.extract_lane_u 0
(local.get $0)
)
)
- (func $29 (param $0 v128) (param $1 i32) (result v128)
+ (func $29 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $30 (param $0 v128) (result i32)
+ (func $30 (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.extract_lane 0
(local.get $0)
)
)
- (func $31 (param $0 v128) (param $1 i32) (result v128)
+ (func $31 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $32 (param $0 v128) (result i64)
+ (func $32 (type $v128_=>_i64) (param $0 v128) (result i64)
(i64x2.extract_lane 0
(local.get $0)
)
)
- (func $33 (param $0 v128) (param $1 i64) (result v128)
+ (func $33 (type $v128_i64_=>_v128) (param $0 v128) (param $1 i64) (result v128)
(i64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $34 (param $0 v128) (result f32)
+ (func $34 (type $v128_=>_f32) (param $0 v128) (result f32)
(f32x4.extract_lane 0
(local.get $0)
)
)
- (func $35 (param $0 v128) (param $1 f32) (result v128)
+ (func $35 (type $v128_f32_=>_v128) (param $0 v128) (param $1 f32) (result v128)
(f32x4.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $36 (param $0 v128) (result f64)
+ (func $36 (type $v128_=>_f64) (param $0 v128) (result f64)
(f64x2.extract_lane 0
(local.get $0)
)
)
- (func $37 (param $0 v128) (param $1 f64) (result v128)
+ (func $37 (type $v128_f64_=>_v128) (param $0 v128) (param $1 f64) (result v128)
(f64x2.replace_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $38 (param $0 v128) (param $1 v128) (result v128)
+ (func $38 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.eq
(local.get $0)
(local.get $1)
)
)
- (func $39 (param $0 v128) (param $1 v128) (result v128)
+ (func $39 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ne
(local.get $0)
(local.get $1)
)
)
- (func $40 (param $0 v128) (param $1 v128) (result v128)
+ (func $40 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $41 (param $0 v128) (param $1 v128) (result v128)
+ (func $41 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $42 (param $0 v128) (param $1 v128) (result v128)
+ (func $42 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $43 (param $0 v128) (param $1 v128) (result v128)
+ (func $43 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $44 (param $0 v128) (param $1 v128) (result v128)
+ (func $44 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_s
(local.get $0)
(local.get $1)
)
)
- (func $45 (param $0 v128) (param $1 v128) (result v128)
+ (func $45 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.le_u
(local.get $0)
(local.get $1)
)
)
- (func $46 (param $0 v128) (param $1 v128) (result v128)
+ (func $46 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $47 (param $0 v128) (param $1 v128) (result v128)
+ (func $47 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $48 (param $0 v128) (param $1 v128) (result v128)
+ (func $48 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.eq
(local.get $0)
(local.get $1)
)
)
- (func $49 (param $0 v128) (param $1 v128) (result v128)
+ (func $49 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ne
(local.get $0)
(local.get $1)
)
)
- (func $50 (param $0 v128) (param $1 v128) (result v128)
+ (func $50 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $51 (param $0 v128) (param $1 v128) (result v128)
+ (func $51 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $52 (param $0 v128) (param $1 v128) (result v128)
+ (func $52 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $53 (param $0 v128) (param $1 v128) (result v128)
+ (func $53 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $54 (param $0 v128) (param $1 v128) (result v128)
+ (func $54 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_s
(local.get $0)
(local.get $1)
)
)
- (func $55 (param $0 v128) (param $1 v128) (result v128)
+ (func $55 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.le_u
(local.get $0)
(local.get $1)
)
)
- (func $56 (param $0 v128) (param $1 v128) (result v128)
+ (func $56 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $57 (param $0 v128) (param $1 v128) (result v128)
+ (func $57 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $58 (param $0 v128) (param $1 v128) (result v128)
+ (func $58 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $59 (param $0 v128) (param $1 v128) (result v128)
+ (func $59 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $60 (param $0 v128) (param $1 v128) (result v128)
+ (func $60 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $61 (param $0 v128) (param $1 v128) (result v128)
+ (func $61 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.lt_u
(local.get $0)
(local.get $1)
)
)
- (func $62 (param $0 v128) (param $1 v128) (result v128)
+ (func $62 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $63 (param $0 v128) (param $1 v128) (result v128)
+ (func $63 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.gt_u
(local.get $0)
(local.get $1)
)
)
- (func $64 (param $0 v128) (param $1 v128) (result v128)
+ (func $64 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_s
(local.get $0)
(local.get $1)
)
)
- (func $65 (param $0 v128) (param $1 v128) (result v128)
+ (func $65 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.le_u
(local.get $0)
(local.get $1)
)
)
- (func $66 (param $0 v128) (param $1 v128) (result v128)
+ (func $66 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $67 (param $0 v128) (param $1 v128) (result v128)
+ (func $67 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.ge_u
(local.get $0)
(local.get $1)
)
)
- (func $68 (param $0 v128) (param $1 v128) (result v128)
+ (func $68 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.eq
(local.get $0)
(local.get $1)
)
)
- (func $69 (param $0 v128) (param $1 v128) (result v128)
+ (func $69 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ne
(local.get $0)
(local.get $1)
)
)
- (func $70 (param $0 v128) (param $1 v128) (result v128)
+ (func $70 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.lt
(local.get $0)
(local.get $1)
)
)
- (func $71 (param $0 v128) (param $1 v128) (result v128)
+ (func $71 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.gt
(local.get $0)
(local.get $1)
)
)
- (func $72 (param $0 v128) (param $1 v128) (result v128)
+ (func $72 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.le
(local.get $0)
(local.get $1)
)
)
- (func $73 (param $0 v128) (param $1 v128) (result v128)
+ (func $73 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.ge
(local.get $0)
(local.get $1)
)
)
- (func $74 (param $0 v128) (param $1 v128) (result v128)
+ (func $74 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $75 (param $0 v128) (param $1 v128) (result v128)
+ (func $75 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $76 (param $0 v128) (param $1 v128) (result v128)
+ (func $76 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.lt
(local.get $0)
(local.get $1)
)
)
- (func $77 (param $0 v128) (param $1 v128) (result v128)
+ (func $77 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.gt
(local.get $0)
(local.get $1)
)
)
- (func $78 (param $0 v128) (param $1 v128) (result v128)
+ (func $78 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.le
(local.get $0)
(local.get $1)
)
)
- (func $79 (param $0 v128) (param $1 v128) (result v128)
+ (func $79 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.ge
(local.get $0)
(local.get $1)
)
)
- (func $80 (param $0 v128) (result v128)
+ (func $80 (type $v128_=>_v128) (param $0 v128) (result v128)
(v128.not
(local.get $0)
)
)
- (func $81 (param $0 v128) (param $1 v128) (result v128)
+ (func $81 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.and
(local.get $0)
(local.get $1)
)
)
- (func $82 (param $0 v128) (param $1 v128) (result v128)
+ (func $82 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.andnot
(local.get $0)
(local.get $1)
)
)
- (func $83 (param $0 v128) (param $1 v128) (result v128)
+ (func $83 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.or
(local.get $0)
(local.get $1)
)
)
- (func $84 (param $0 v128) (param $1 v128) (result v128)
+ (func $84 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(v128.xor
(local.get $0)
(local.get $1)
)
)
- (func $85 (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (func $85 (type $v128_v128_v128_=>_v128) (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
(v128.bitselect
(local.get $0)
(local.get $1)
(local.get $2)
)
)
- (func $86 (param $0 v128) (result i32)
+ (func $86 (type $v128_=>_i32) (param $0 v128) (result i32)
(v128.any_true
(local.get $0)
)
)
- (func $87 (param $0 i32) (param $1 v128) (result v128)
+ (func $87 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $88 (param $0 i32) (param $1 v128) (result v128)
+ (func $88 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $89 (param $0 i32) (param $1 v128) (result v128)
+ (func $89 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $90 (param $0 i32) (param $1 v128) (result v128)
+ (func $90 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $91 (param $0 i32) (param $1 v128) (result v128)
+ (func $91 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $92 (param $0 i32) (param $1 v128) (result v128)
+ (func $92 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $93 (param $0 i32) (param $1 v128) (result v128)
+ (func $93 (type $i32_v128_=>_v128) (param $0 i32) (param $1 v128) (result v128)
(v128.load64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $94 (param $0 i32) (param $1 v128)
+ (func $94 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store8_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $95 (param $0 i32) (param $1 v128)
+ (func $95 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store16_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $96 (param $0 i32) (param $1 v128)
+ (func $96 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store32_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $97 (param $0 i32) (param $1 v128)
+ (func $97 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane 0
(local.get $0)
(local.get $1)
)
)
- (func $98 (param $0 i32) (param $1 v128)
+ (func $98 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $99 (param $0 i32) (param $1 v128)
+ (func $99 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 0
(local.get $0)
(local.get $1)
)
)
- (func $100 (param $0 i32) (param $1 v128)
+ (func $100 (type $i32_v128_=>_none) (param $0 i32) (param $1 v128)
(v128.store64_lane offset=32 align=1 0
(local.get $0)
(local.get $1)
)
)
- (func $101 (param $0 i32) (result v128)
+ (func $101 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $102 (param $0 i32) (result v128)
+ (func $102 (type $i32_=>_v128) (param $0 i32) (result v128)
(v128.load64_zero
(local.get $0)
)
)
- (func $103 (param $0 v128) (result v128)
+ (func $103 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.demote_f64x2_zero
(local.get $0)
)
)
- (func $104 (param $0 v128) (result v128)
+ (func $104 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.promote_low_f32x4
(local.get $0)
)
)
- (func $105 (param $0 v128) (result v128)
+ (func $105 (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.abs
(local.get $0)
)
)
- (func $106 (param $0 v128) (result v128)
+ (func $106 (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.neg
(local.get $0)
)
)
- (func $107 (param $0 v128) (result v128)
+ (func $107 (type $v128_=>_v128) (param $0 v128) (result v128)
(i8x16.popcnt
(local.get $0)
)
)
- (func $108 (param $0 v128) (result i32)
+ (func $108 (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.all_true
(local.get $0)
)
)
- (func $109 (param $0 v128) (result i32)
+ (func $109 (type $v128_=>_i32) (param $0 v128) (result i32)
(i8x16.bitmask
(local.get $0)
)
)
- (func $110 (param $0 v128) (param $1 v128) (result v128)
+ (func $110 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $111 (param $0 v128) (param $1 v128) (result v128)
+ (func $111 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.narrow_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $112 (param $0 v128) (result v128)
+ (func $112 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.ceil
(local.get $0)
)
)
- (func $113 (param $0 v128) (result v128)
+ (func $113 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.floor
(local.get $0)
)
)
- (func $114 (param $0 v128) (result v128)
+ (func $114 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.trunc
(local.get $0)
)
)
- (func $115 (param $0 v128) (result v128)
+ (func $115 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.nearest
(local.get $0)
)
)
- (func $116 (param $0 v128) (param $1 i32) (result v128)
+ (func $116 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shl
(local.get $0)
(local.get $1)
)
)
- (func $117 (param $0 v128) (param $1 i32) (result v128)
+ (func $117 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $118 (param $0 v128) (param $1 i32) (result v128)
+ (func $118 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i8x16.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $119 (param $0 v128) (param $1 v128) (result v128)
+ (func $119 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add
(local.get $0)
(local.get $1)
)
)
- (func $120 (param $0 v128) (param $1 v128) (result v128)
+ (func $120 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $121 (param $0 v128) (param $1 v128) (result v128)
+ (func $121 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $122 (param $0 v128) (param $1 v128) (result v128)
+ (func $122 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub
(local.get $0)
(local.get $1)
)
)
- (func $123 (param $0 v128) (param $1 v128) (result v128)
+ (func $123 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $124 (param $0 v128) (param $1 v128) (result v128)
+ (func $124 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $125 (param $0 v128) (result v128)
+ (func $125 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.ceil
(local.get $0)
)
)
- (func $126 (param $0 v128) (result v128)
+ (func $126 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.floor
(local.get $0)
)
)
- (func $127 (param $0 v128) (param $1 v128) (result v128)
+ (func $127 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_s
(local.get $0)
(local.get $1)
)
)
- (func $128 (param $0 v128) (param $1 v128) (result v128)
+ (func $128 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.min_u
(local.get $0)
(local.get $1)
)
)
- (func $129 (param $0 v128) (param $1 v128) (result v128)
+ (func $129 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_s
(local.get $0)
(local.get $1)
)
)
- (func $130 (param $0 v128) (param $1 v128) (result v128)
+ (func $130 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.max_u
(local.get $0)
(local.get $1)
)
)
- (func $131 (param $0 v128) (result v128)
+ (func $131 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.trunc
(local.get $0)
)
)
- (func $132 (param $0 v128) (param $1 v128) (result v128)
+ (func $132 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i8x16.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $133 (param $0 v128) (result v128)
+ (func $133 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_s
(local.get $0)
)
)
- (func $134 (param $0 v128) (result v128)
+ (func $134 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extadd_pairwise_i8x16_u
(local.get $0)
)
)
- (func $135 (param $0 v128) (result v128)
+ (func $135 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_s
(local.get $0)
)
)
- (func $136 (param $0 v128) (result v128)
+ (func $136 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extadd_pairwise_i16x8_u
(local.get $0)
)
)
- (func $137 (param $0 v128) (result v128)
+ (func $137 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.abs
(local.get $0)
)
)
- (func $138 (param $0 v128) (result v128)
+ (func $138 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.neg
(local.get $0)
)
)
- (func $139 (param $0 v128) (param $1 v128) (result v128)
+ (func $139 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.q15mulr_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $140 (param $0 v128) (result i32)
+ (func $140 (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.all_true
(local.get $0)
)
)
- (func $141 (param $0 v128) (result i32)
+ (func $141 (type $v128_=>_i32) (param $0 v128) (result i32)
(i16x8.bitmask
(local.get $0)
)
)
- (func $142 (param $0 v128) (param $1 v128) (result v128)
+ (func $142 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $143 (param $0 v128) (param $1 v128) (result v128)
+ (func $143 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.narrow_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $144 (param $0 v128) (result v128)
+ (func $144 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_s
(local.get $0)
)
)
- (func $145 (param $0 v128) (result v128)
+ (func $145 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_s
(local.get $0)
)
)
- (func $146 (param $0 v128) (result v128)
+ (func $146 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_low_i8x16_u
(local.get $0)
)
)
- (func $147 (param $0 v128) (result v128)
+ (func $147 (type $v128_=>_v128) (param $0 v128) (result v128)
(i16x8.extend_high_i8x16_u
(local.get $0)
)
)
- (func $148 (param $0 v128) (param $1 i32) (result v128)
+ (func $148 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shl
(local.get $0)
(local.get $1)
)
)
- (func $149 (param $0 v128) (param $1 i32) (result v128)
+ (func $149 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $150 (param $0 v128) (param $1 i32) (result v128)
+ (func $150 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i16x8.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $151 (param $0 v128) (param $1 v128) (result v128)
+ (func $151 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add
(local.get $0)
(local.get $1)
)
)
- (func $152 (param $0 v128) (param $1 v128) (result v128)
+ (func $152 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $153 (param $0 v128) (param $1 v128) (result v128)
+ (func $153 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.add_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $154 (param $0 v128) (param $1 v128) (result v128)
+ (func $154 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub
(local.get $0)
(local.get $1)
)
)
- (func $155 (param $0 v128) (param $1 v128) (result v128)
+ (func $155 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_s
(local.get $0)
(local.get $1)
)
)
- (func $156 (param $0 v128) (param $1 v128) (result v128)
+ (func $156 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.sub_sat_u
(local.get $0)
(local.get $1)
)
)
- (func $157 (param $0 v128) (result v128)
+ (func $157 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.nearest
(local.get $0)
)
)
- (func $158 (param $0 v128) (param $1 v128) (result v128)
+ (func $158 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.mul
(local.get $0)
(local.get $1)
)
)
- (func $159 (param $0 v128) (param $1 v128) (result v128)
+ (func $159 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_s
(local.get $0)
(local.get $1)
)
)
- (func $160 (param $0 v128) (param $1 v128) (result v128)
+ (func $160 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.min_u
(local.get $0)
(local.get $1)
)
)
- (func $161 (param $0 v128) (param $1 v128) (result v128)
+ (func $161 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_s
(local.get $0)
(local.get $1)
)
)
- (func $162 (param $0 v128) (param $1 v128) (result v128)
+ (func $162 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.max_u
(local.get $0)
(local.get $1)
)
)
- (func $163 (param $0 v128) (param $1 v128) (result v128)
+ (func $163 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.avgr_u
(local.get $0)
(local.get $1)
)
)
- (func $164 (param $0 v128) (param $1 v128) (result v128)
+ (func $164 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $165 (param $0 v128) (param $1 v128) (result v128)
+ (func $165 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_s
(local.get $0)
(local.get $1)
)
)
- (func $166 (param $0 v128) (param $1 v128) (result v128)
+ (func $166 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_low_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $167 (param $0 v128) (param $1 v128) (result v128)
+ (func $167 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i16x8.extmul_high_i8x16_u
(local.get $0)
(local.get $1)
)
)
- (func $168 (param $0 v128) (result v128)
+ (func $168 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.abs
(local.get $0)
)
)
- (func $169 (param $0 v128) (result v128)
+ (func $169 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.neg
(local.get $0)
)
)
- (func $170 (param $0 v128) (result i32)
+ (func $170 (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.all_true
(local.get $0)
)
)
- (func $171 (param $0 v128) (result i32)
+ (func $171 (type $v128_=>_i32) (param $0 v128) (result i32)
(i32x4.bitmask
(local.get $0)
)
)
- (func $172 (param $0 v128) (result v128)
+ (func $172 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_s
(local.get $0)
)
)
- (func $173 (param $0 v128) (result v128)
+ (func $173 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_s
(local.get $0)
)
)
- (func $174 (param $0 v128) (result v128)
+ (func $174 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_low_i16x8_u
(local.get $0)
)
)
- (func $175 (param $0 v128) (result v128)
+ (func $175 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.extend_high_i16x8_u
(local.get $0)
)
)
- (func $176 (param $0 v128) (param $1 i32) (result v128)
+ (func $176 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shl
(local.get $0)
(local.get $1)
)
)
- (func $177 (param $0 v128) (param $1 i32) (result v128)
+ (func $177 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $178 (param $0 v128) (param $1 i32) (result v128)
+ (func $178 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i32x4.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $179 (param $0 v128) (param $1 v128) (result v128)
+ (func $179 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $180 (param $0 v128) (param $1 v128) (result v128)
+ (func $180 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $181 (param $0 v128) (param $1 v128) (result v128)
+ (func $181 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $182 (param $0 v128) (param $1 v128) (result v128)
+ (func $182 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_s
(local.get $0)
(local.get $1)
)
)
- (func $183 (param $0 v128) (param $1 v128) (result v128)
+ (func $183 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.min_u
(local.get $0)
(local.get $1)
)
)
- (func $184 (param $0 v128) (param $1 v128) (result v128)
+ (func $184 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_s
(local.get $0)
(local.get $1)
)
)
- (func $185 (param $0 v128) (param $1 v128) (result v128)
+ (func $185 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.max_u
(local.get $0)
(local.get $1)
)
)
- (func $186 (param $0 v128) (param $1 v128) (result v128)
+ (func $186 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.dot_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $187 (param $0 v128) (param $1 v128) (result v128)
+ (func $187 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $188 (param $0 v128) (param $1 v128) (result v128)
+ (func $188 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_s
(local.get $0)
(local.get $1)
)
)
- (func $189 (param $0 v128) (param $1 v128) (result v128)
+ (func $189 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_low_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $190 (param $0 v128) (param $1 v128) (result v128)
+ (func $190 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i32x4.extmul_high_i16x8_u
(local.get $0)
(local.get $1)
)
)
- (func $191 (param $0 v128) (result v128)
+ (func $191 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.abs
(local.get $0)
)
)
- (func $192 (param $0 v128) (result v128)
+ (func $192 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.neg
(local.get $0)
)
)
- (func $193 (param $0 v128) (result i32)
+ (func $193 (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.all_true
(local.get $0)
)
)
- (func $194 (param $0 v128) (result i32)
+ (func $194 (type $v128_=>_i32) (param $0 v128) (result i32)
(i64x2.bitmask
(local.get $0)
)
)
- (func $195 (param $0 v128) (result v128)
+ (func $195 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_s
(local.get $0)
)
)
- (func $196 (param $0 v128) (result v128)
+ (func $196 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_s
(local.get $0)
)
)
- (func $197 (param $0 v128) (result v128)
+ (func $197 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_low_i32x4_u
(local.get $0)
)
)
- (func $198 (param $0 v128) (result v128)
+ (func $198 (type $v128_=>_v128) (param $0 v128) (result v128)
(i64x2.extend_high_i32x4_u
(local.get $0)
)
)
- (func $199 (param $0 v128) (param $1 i32) (result v128)
+ (func $199 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shl
(local.get $0)
(local.get $1)
)
)
- (func $200 (param $0 v128) (param $1 i32) (result v128)
+ (func $200 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_s
(local.get $0)
(local.get $1)
)
)
- (func $201 (param $0 v128) (param $1 i32) (result v128)
+ (func $201 (type $v128_i32_=>_v128) (param $0 v128) (param $1 i32) (result v128)
(i64x2.shr_u
(local.get $0)
(local.get $1)
)
)
- (func $202 (param $0 v128) (param $1 v128) (result v128)
+ (func $202 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $203 (param $0 v128) (param $1 v128) (result v128)
+ (func $203 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $204 (param $0 v128) (param $1 v128) (result v128)
+ (func $204 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $205 (param $0 v128) (param $1 v128) (result v128)
+ (func $205 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.eq
(local.get $0)
(local.get $1)
)
)
- (func $206 (param $0 v128) (param $1 v128) (result v128)
+ (func $206 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ne
(local.get $0)
(local.get $1)
)
)
- (func $207 (param $0 v128) (param $1 v128) (result v128)
+ (func $207 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.lt_s
(local.get $0)
(local.get $1)
)
)
- (func $208 (param $0 v128) (param $1 v128) (result v128)
+ (func $208 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.gt_s
(local.get $0)
(local.get $1)
)
)
- (func $209 (param $0 v128) (param $1 v128) (result v128)
+ (func $209 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.le_s
(local.get $0)
(local.get $1)
)
)
- (func $210 (param $0 v128) (param $1 v128) (result v128)
+ (func $210 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.ge_s
(local.get $0)
(local.get $1)
)
)
- (func $211 (param $0 v128) (param $1 v128) (result v128)
+ (func $211 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $212 (param $0 v128) (param $1 v128) (result v128)
+ (func $212 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_s
(local.get $0)
(local.get $1)
)
)
- (func $213 (param $0 v128) (param $1 v128) (result v128)
+ (func $213 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_low_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $214 (param $0 v128) (param $1 v128) (result v128)
+ (func $214 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(i64x2.extmul_high_i32x4_u
(local.get $0)
(local.get $1)
)
)
- (func $215 (param $0 v128) (result v128)
+ (func $215 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.abs
(local.get $0)
)
)
- (func $216 (param $0 v128) (result v128)
+ (func $216 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.neg
(local.get $0)
)
)
- (func $217 (param $0 v128) (result v128)
+ (func $217 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.sqrt
(local.get $0)
)
)
- (func $218 (param $0 v128) (param $1 v128) (result v128)
+ (func $218 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.add
(local.get $0)
(local.get $1)
)
)
- (func $219 (param $0 v128) (param $1 v128) (result v128)
+ (func $219 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.sub
(local.get $0)
(local.get $1)
)
)
- (func $220 (param $0 v128) (param $1 v128) (result v128)
+ (func $220 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.mul
(local.get $0)
(local.get $1)
)
)
- (func $221 (param $0 v128) (param $1 v128) (result v128)
+ (func $221 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.div
(local.get $0)
(local.get $1)
)
)
- (func $222 (param $0 v128) (param $1 v128) (result v128)
+ (func $222 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.min
(local.get $0)
(local.get $1)
)
)
- (func $223 (param $0 v128) (param $1 v128) (result v128)
+ (func $223 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.max
(local.get $0)
(local.get $1)
)
)
- (func $224 (param $0 v128) (param $1 v128) (result v128)
+ (func $224 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmin
(local.get $0)
(local.get $1)
)
)
- (func $225 (param $0 v128) (param $1 v128) (result v128)
+ (func $225 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f32x4.pmax
(local.get $0)
(local.get $1)
)
)
- (func $226 (param $0 v128) (result v128)
+ (func $226 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.abs
(local.get $0)
)
)
- (func $227 (param $0 v128) (result v128)
+ (func $227 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.neg
(local.get $0)
)
)
- (func $228 (param $0 v128) (result v128)
+ (func $228 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.sqrt
(local.get $0)
)
)
- (func $229 (param $0 v128) (param $1 v128) (result v128)
+ (func $229 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.add
(local.get $0)
(local.get $1)
)
)
- (func $230 (param $0 v128) (param $1 v128) (result v128)
+ (func $230 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.sub
(local.get $0)
(local.get $1)
)
)
- (func $231 (param $0 v128) (param $1 v128) (result v128)
+ (func $231 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.mul
(local.get $0)
(local.get $1)
)
)
- (func $232 (param $0 v128) (param $1 v128) (result v128)
+ (func $232 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.div
(local.get $0)
(local.get $1)
)
)
- (func $233 (param $0 v128) (param $1 v128) (result v128)
+ (func $233 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.min
(local.get $0)
(local.get $1)
)
)
- (func $234 (param $0 v128) (param $1 v128) (result v128)
+ (func $234 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.max
(local.get $0)
(local.get $1)
)
)
- (func $235 (param $0 v128) (param $1 v128) (result v128)
+ (func $235 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmin
(local.get $0)
(local.get $1)
)
)
- (func $236 (param $0 v128) (param $1 v128) (result v128)
+ (func $236 (type $v128_v128_=>_v128) (param $0 v128) (param $1 v128) (result v128)
(f64x2.pmax
(local.get $0)
(local.get $1)
)
)
- (func $237 (param $0 v128) (result v128)
+ (func $237 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_s
(local.get $0)
)
)
- (func $238 (param $0 v128) (result v128)
+ (func $238 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f32x4_u
(local.get $0)
)
)
- (func $239 (param $0 v128) (result v128)
+ (func $239 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_s
(local.get $0)
)
)
- (func $240 (param $0 v128) (result v128)
+ (func $240 (type $v128_=>_v128) (param $0 v128) (result v128)
(f32x4.convert_i32x4_u
(local.get $0)
)
)
- (func $241 (param $0 v128) (result v128)
+ (func $241 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_s_zero
(local.get $0)
)
)
- (func $242 (param $0 v128) (result v128)
+ (func $242 (type $v128_=>_v128) (param $0 v128) (result v128)
(i32x4.trunc_sat_f64x2_u_zero
(local.get $0)
)
)
- (func $243 (param $0 v128) (result v128)
+ (func $243 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_s
(local.get $0)
)
)
- (func $244 (param $0 v128) (result v128)
+ (func $244 (type $v128_=>_v128) (param $0 v128) (result v128)
(f64x2.convert_low_i32x4_u
(local.get $0)
)
diff --git a/test/simd64.wast.from-wast b/test/simd64.wast.from-wast
index a12e5d08f..933f9adbc 100644
--- a/test/simd64.wast.from-wast
+++ b/test/simd64.wast.from-wast
@@ -2,73 +2,73 @@
(type $i64_=>_v128 (func (param i64) (result v128)))
(type $i64_v128_=>_none (func (param i64 v128)))
(memory $0 i64 1 1)
- (func $v128.load (param $0 i64) (result v128)
+ (func $v128.load (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load
(local.get $0)
)
)
- (func $v128.store (param $0 i64) (param $1 v128)
+ (func $v128.store (type $i64_v128_=>_none) (param $0 i64) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_splat (param $0 i64) (result v128)
+ (func $v128.load8_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i64) (result v128)
+ (func $v128.load16_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i64) (result v128)
+ (func $v128.load32_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i64) (result v128)
+ (func $v128.load64_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i64) (result v128)
+ (func $v128.load8x8_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i64) (result v128)
+ (func $v128.load8x8_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i64) (result v128)
+ (func $v128.load16x4_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i64) (result v128)
+ (func $v128.load16x4_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i64) (result v128)
+ (func $v128.load32x2_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i64) (result v128)
+ (func $v128.load32x2_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $v128.load32_zero (param $0 i64) (result v128)
+ (func $v128.load32_zero (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i64) (result v128)
+ (func $v128.load64_zero (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_zero
(local.get $0)
)
diff --git a/test/simd64.wast.fromBinary b/test/simd64.wast.fromBinary
index 988f678b8..c66eadeb9 100644
--- a/test/simd64.wast.fromBinary
+++ b/test/simd64.wast.fromBinary
@@ -2,73 +2,73 @@
(type $i64_=>_v128 (func (param i64) (result v128)))
(type $i64_v128_=>_none (func (param i64 v128)))
(memory $0 i64 1 1)
- (func $v128.load (param $0 i64) (result v128)
+ (func $v128.load (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load
(local.get $0)
)
)
- (func $v128.store (param $0 i64) (param $1 v128)
+ (func $v128.store (type $i64_v128_=>_none) (param $0 i64) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $v128.load8_splat (param $0 i64) (result v128)
+ (func $v128.load8_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $v128.load16_splat (param $0 i64) (result v128)
+ (func $v128.load16_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $v128.load32_splat (param $0 i64) (result v128)
+ (func $v128.load32_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $v128.load64_splat (param $0 i64) (result v128)
+ (func $v128.load64_splat (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $v128.load8x8_u (param $0 i64) (result v128)
+ (func $v128.load8x8_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $v128.load8x8_s (param $0 i64) (result v128)
+ (func $v128.load8x8_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $v128.load16x4_s (param $0 i64) (result v128)
+ (func $v128.load16x4_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $v128.load16x4_u (param $0 i64) (result v128)
+ (func $v128.load16x4_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $v128.load32x2_s (param $0 i64) (result v128)
+ (func $v128.load32x2_s (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $v128.load32x2_u (param $0 i64) (result v128)
+ (func $v128.load32x2_u (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $v128.load32_zero (param $0 i64) (result v128)
+ (func $v128.load32_zero (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $v128.load64_zero (param $0 i64) (result v128)
+ (func $v128.load64_zero (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_zero
(local.get $0)
)
diff --git a/test/simd64.wast.fromBinary.noDebugInfo b/test/simd64.wast.fromBinary.noDebugInfo
index 2e96dfe64..e252ecb2c 100644
--- a/test/simd64.wast.fromBinary.noDebugInfo
+++ b/test/simd64.wast.fromBinary.noDebugInfo
@@ -2,73 +2,73 @@
(type $i64_=>_v128 (func (param i64) (result v128)))
(type $i64_v128_=>_none (func (param i64 v128)))
(memory $0 i64 1 1)
- (func $0 (param $0 i64) (result v128)
+ (func $0 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load
(local.get $0)
)
)
- (func $1 (param $0 i64) (param $1 v128)
+ (func $1 (type $i64_v128_=>_none) (param $0 i64) (param $1 v128)
(v128.store
(local.get $0)
(local.get $1)
)
)
- (func $2 (param $0 i64) (result v128)
+ (func $2 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8_splat
(local.get $0)
)
)
- (func $3 (param $0 i64) (result v128)
+ (func $3 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16_splat
(local.get $0)
)
)
- (func $4 (param $0 i64) (result v128)
+ (func $4 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_splat
(local.get $0)
)
)
- (func $5 (param $0 i64) (result v128)
+ (func $5 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_splat
(local.get $0)
)
)
- (func $6 (param $0 i64) (result v128)
+ (func $6 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_u
(local.get $0)
)
)
- (func $7 (param $0 i64) (result v128)
+ (func $7 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load8x8_s
(local.get $0)
)
)
- (func $8 (param $0 i64) (result v128)
+ (func $8 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_s
(local.get $0)
)
)
- (func $9 (param $0 i64) (result v128)
+ (func $9 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load16x4_u
(local.get $0)
)
)
- (func $10 (param $0 i64) (result v128)
+ (func $10 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_s
(local.get $0)
)
)
- (func $11 (param $0 i64) (result v128)
+ (func $11 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32x2_u
(local.get $0)
)
)
- (func $12 (param $0 i64) (result v128)
+ (func $12 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load32_zero
(local.get $0)
)
)
- (func $13 (param $0 i64) (result v128)
+ (func $13 (type $i64_=>_v128) (param $0 i64) (result v128)
(v128.load64_zero
(local.get $0)
)
diff --git a/test/spec/array.wast b/test/spec/array.wast
index fd151669e..c30365030 100644
--- a/test/spec/array.wast
+++ b/test/spec/array.wast
@@ -35,12 +35,15 @@
;; Binding structure
(module
- (type $s0 (array (ref $s1)))
- (type $s1 (array (ref $s0)))
-
- (func (param (ref $forward)))
+ (rec
+ (type $s0 (array (ref $s1)))
+ (type $s1 (array (ref $s0)))
+ )
- (type $forward (array i32))
+ (rec
+ (func (param (ref $forward)))
+ (type $forward (array i32))
+ )
)
(assert_invalid
diff --git a/test/spec/ref_cast.wast b/test/spec/ref_cast.wast
index 1af96d9d4..86f958b80 100644
--- a/test/spec/ref_cast.wast
+++ b/test/spec/ref_cast.wast
@@ -1,10 +1,10 @@
(module
(type $t0 (struct))
- (type $t1 (struct (field i32)))
- (type $t1' (struct (field i32)))
- (type $t2 (struct (field i32) (field i32)))
- (type $t2' (struct (field i32) (field i32)))
- (type $t3 (struct (field i32) (field i32)))
+ (type $t1 (struct_subtype (field i32) $t0))
+ (type $t1' (struct_subtype (field i32) $t1))
+ (type $t2 (struct_subtype (field i32) (field i32) $t1))
+ (type $t2' (struct_subtype (field i32) (field i32) $t2))
+ (type $t3 (struct_subtype (field i32) (field i32) $t2))
(global $tab.0 (mut (ref null data)) (ref.null data))
(global $tab.1 (mut (ref null data)) (ref.null data))
@@ -56,14 +56,9 @@
(drop (ref.cast_static $t0 (global.get $tab.11)))
(drop (ref.cast_static $t0 (global.get $tab.12)))
- (drop (ref.cast_static $t1' (global.get $tab.1)))
- (drop (ref.cast_static $t1' (global.get $tab.2)))
-
(drop (ref.cast_static $t1 (global.get $tab.11)))
(drop (ref.cast_static $t1 (global.get $tab.12)))
- (drop (ref.cast_static $t2' (global.get $tab.2)))
-
(drop (ref.cast_static $t2 (global.get $tab.12)))
)
)
diff --git a/test/spec/struct.wast b/test/spec/struct.wast
index 5bc8e2f2e..4d86f6538 100644
--- a/test/spec/struct.wast
+++ b/test/spec/struct.wast
@@ -1,12 +1,15 @@
;; Binding structure
(module
- (type $s0 (struct (field (ref 0) (ref 1) (ref $s0) (ref $s1))))
- (type $s1 (struct (field (ref 0) (ref 1) (ref $s0) (ref $s1))))
-
- (func (param (ref $forward)))
+ (rec
+ (type $s0 (struct (field (ref 0) (ref 1) (ref $s0) (ref $s1))))
+ (type $s1 (struct (field (ref 0) (ref 1) (ref $s0) (ref $s1))))
+ )
- (type $forward (struct))
+ (rec
+ (func (param (ref $forward)))
+ (type $forward (struct))
+ )
)
(assert_invalid
diff --git a/test/subtypes.wast b/test/subtypes.wast
index bb67f9d72..0562d6cb2 100644
--- a/test/subtypes.wast
+++ b/test/subtypes.wast
@@ -3,28 +3,31 @@
;; Arrays
(type $vector-i32 (array i32))
- (type $vector-i31 (array (ref i31)))
(type $vector-any (array (ref any)))
+ (type $vector-i31 (array_subtype (ref i31) $vector-any))
;; Structs
- (type $struct-i31 (struct
- (field (ref i31))
- ))
(type $struct-any (struct
(field (ref any))
))
- (type $struct-i31_any (struct
+ (type $struct-i31 (struct_subtype
+ (field (ref i31))
+ $struct-any
+ ))
+ (type $struct-i31_any (struct_subtype
(field (ref i31))
(field (ref any))
+ $struct-i31
))
;; Recursive structs
(type $struct-rec-one (struct
(field (ref $struct-rec-one))
))
- (type $struct-rec-two (struct
+ (type $struct-rec-two (struct_subtype
(field (ref $struct-rec-two))
(field (ref $struct-rec-two))
+ $struct-rec-one
))
(func $foo (param $no-null (ref $vector-i32))
diff --git a/test/subtypes.wast.from-wast b/test/subtypes.wast.from-wast
index 88bd9b976..f927ab7c6 100644
--- a/test/subtypes.wast.from-wast
+++ b/test/subtypes.wast.from-wast
@@ -1,38 +1,38 @@
(module
- (type $struct-rec-two (struct (field (ref $struct-rec-two)) (field (ref $struct-rec-two))))
- (type $vector-i32 (array i32))
- (type $struct-i31 (struct (field (ref i31))))
(type $struct-rec-one (struct (field (ref $struct-rec-one))))
+ (type $struct-rec-two (struct_subtype (field (ref $struct-rec-two)) (field (ref $struct-rec-two)) $struct-rec-one))
+ (type $vector-i32 (array i32))
+ (type $struct-any (struct (field (ref any))))
+ (type $struct-i31 (struct_subtype (field (ref i31)) $struct-any))
(type $ref|$vector-i32|_ref?|$vector-i32|_=>_none (func (param (ref $vector-i32) (ref null $vector-i32))))
+ (type $vector-any (array (ref any)))
+ (type $vector-i31 (array_subtype (ref i31) $vector-any))
(type $ref|$vector-i31|_ref|$vector-any|_=>_none (func (param (ref $vector-i31) (ref $vector-any))))
(type $ref|$struct-i31|_ref|$struct-any|_=>_none (func (param (ref $struct-i31) (ref $struct-any))))
+ (type $struct-i31_any (struct_subtype (field (ref i31)) (field (ref any)) $struct-i31))
(type $ref|$struct-i31|_ref|$struct-i31_any|_=>_none (func (param (ref $struct-i31) (ref $struct-i31_any))))
(type $ref|$struct-rec-one|_ref|$struct-rec-two|_=>_none (func (param (ref $struct-rec-one) (ref $struct-rec-two))))
- (type $vector-i31 (array (ref i31)))
- (type $vector-any (array (ref any)))
- (type $struct-any (struct (field (ref any))))
- (type $struct-i31_any (struct (field (ref i31)) (field (ref any))))
- (func $foo (param $no-null (ref $vector-i32)) (param $yes-null (ref null $vector-i32))
+ (func $foo (type $ref|$vector-i32|_ref?|$vector-i32|_=>_none) (param $no-null (ref $vector-i32)) (param $yes-null (ref null $vector-i32))
(local.set $yes-null
(local.get $no-null)
)
)
- (func $bar (param $v-i31 (ref $vector-i31)) (param $v-any (ref $vector-any))
+ (func $bar (type $ref|$vector-i31|_ref|$vector-any|_=>_none) (param $v-i31 (ref $vector-i31)) (param $v-any (ref $vector-any))
(local.set $v-any
(local.get $v-i31)
)
)
- (func $baz (param $s-i31 (ref $struct-i31)) (param $s-any (ref $struct-any))
+ (func $baz (type $ref|$struct-i31|_ref|$struct-any|_=>_none) (param $s-i31 (ref $struct-i31)) (param $s-any (ref $struct-any))
(local.set $s-any
(local.get $s-i31)
)
)
- (func $boo (param $s-i31 (ref $struct-i31)) (param $s-i31_any (ref $struct-i31_any))
+ (func $boo (type $ref|$struct-i31|_ref|$struct-i31_any|_=>_none) (param $s-i31 (ref $struct-i31)) (param $s-i31_any (ref $struct-i31_any))
(local.set $s-i31
(local.get $s-i31_any)
)
)
- (func $coinductive (param $rec-one (ref $struct-rec-one)) (param $rec-two (ref $struct-rec-two))
+ (func $coinductive (type $ref|$struct-rec-one|_ref|$struct-rec-two|_=>_none) (param $rec-one (ref $struct-rec-one)) (param $rec-two (ref $struct-rec-two))
(local.set $rec-one
(local.get $rec-two)
)
diff --git a/test/subtypes.wast.fromBinary b/test/subtypes.wast.fromBinary
index 6286fb527..c29ad10b0 100644
--- a/test/subtypes.wast.fromBinary
+++ b/test/subtypes.wast.fromBinary
@@ -1,38 +1,38 @@
(module
- (type $struct-rec-two (struct (field (ref $struct-rec-two)) (field (ref $struct-rec-two))))
- (type $vector-i32 (array i32))
- (type $struct-i31 (struct (field (ref i31))))
(type $struct-rec-one (struct (field (ref $struct-rec-one))))
+ (type $struct-rec-two (struct_subtype (field (ref $struct-rec-two)) (field (ref $struct-rec-two)) $struct-rec-one))
+ (type $vector-i32 (array i32))
+ (type $struct-any (struct (field (ref any))))
+ (type $struct-i31 (struct_subtype (field (ref i31)) $struct-any))
(type $ref|$vector-i32|_ref?|$vector-i32|_=>_none (func (param (ref $vector-i32) (ref null $vector-i32))))
+ (type $vector-any (array (ref any)))
+ (type $vector-i31 (array_subtype (ref i31) $vector-any))
(type $ref|$vector-i31|_ref|$vector-any|_=>_none (func (param (ref $vector-i31) (ref $vector-any))))
(type $ref|$struct-i31|_ref|$struct-any|_=>_none (func (param (ref $struct-i31) (ref $struct-any))))
+ (type $struct-i31_any (struct_subtype (field (ref i31)) (field (ref any)) $struct-i31))
(type $ref|$struct-i31|_ref|$struct-i31_any|_=>_none (func (param (ref $struct-i31) (ref $struct-i31_any))))
(type $ref|$struct-rec-one|_ref|$struct-rec-two|_=>_none (func (param (ref $struct-rec-one) (ref $struct-rec-two))))
- (type $vector-i31 (array (ref i31)))
- (type $vector-any (array (ref any)))
- (type $struct-any (struct (field (ref any))))
- (type $struct-i31_any (struct (field (ref i31)) (field (ref any))))
- (func $foo (param $no-null (ref $vector-i32)) (param $yes-null (ref null $vector-i32))
+ (func $foo (type $ref|$vector-i32|_ref?|$vector-i32|_=>_none) (param $no-null (ref $vector-i32)) (param $yes-null (ref null $vector-i32))
(local.set $yes-null
(local.get $no-null)
)
)
- (func $bar (param $v-i31 (ref $vector-i31)) (param $v-any (ref $vector-any))
+ (func $bar (type $ref|$vector-i31|_ref|$vector-any|_=>_none) (param $v-i31 (ref $vector-i31)) (param $v-any (ref $vector-any))
(local.set $v-any
(local.get $v-i31)
)
)
- (func $baz (param $s-i31 (ref $struct-i31)) (param $s-any (ref $struct-any))
+ (func $baz (type $ref|$struct-i31|_ref|$struct-any|_=>_none) (param $s-i31 (ref $struct-i31)) (param $s-any (ref $struct-any))
(local.set $s-any
(local.get $s-i31)
)
)
- (func $boo (param $s-i31 (ref $struct-i31)) (param $s-i31_any (ref $struct-i31_any))
+ (func $boo (type $ref|$struct-i31|_ref|$struct-i31_any|_=>_none) (param $s-i31 (ref $struct-i31)) (param $s-i31_any (ref $struct-i31_any))
(local.set $s-i31
(local.get $s-i31_any)
)
)
- (func $coinductive (param $rec-one (ref $struct-rec-one)) (param $rec-two (ref $struct-rec-two))
+ (func $coinductive (type $ref|$struct-rec-one|_ref|$struct-rec-two|_=>_none) (param $rec-one (ref $struct-rec-one)) (param $rec-two (ref $struct-rec-two))
(local.set $rec-one
(local.get $rec-two)
)
diff --git a/test/subtypes.wast.fromBinary.noDebugInfo b/test/subtypes.wast.fromBinary.noDebugInfo
index 210e9ab8c..0e77deeed 100644
--- a/test/subtypes.wast.fromBinary.noDebugInfo
+++ b/test/subtypes.wast.fromBinary.noDebugInfo
@@ -1,38 +1,38 @@
(module
- (type ${ref|...0|_ref|...0|} (struct (field (ref ${ref|...0|_ref|...0|})) (field (ref ${ref|...0|_ref|...0|}))))
- (type $[i32] (array i32))
- (type ${ref|i31|} (struct (field (ref i31))))
(type ${ref|...0|} (struct (field (ref ${ref|...0|}))))
+ (type ${ref|...0|_ref|...0|} (struct_subtype (field (ref ${ref|...0|_ref|...0|})) (field (ref ${ref|...0|_ref|...0|})) ${ref|...0|}))
+ (type $[i32] (array i32))
+ (type ${ref|any|} (struct (field (ref any))))
+ (type ${ref|i31|} (struct_subtype (field (ref i31)) ${ref|any|}))
(type $ref|[i32]|_ref?|[i32]|_=>_none (func (param (ref $[i32]) (ref null $[i32]))))
+ (type $[ref|any|] (array (ref any)))
+ (type $[ref|i31|] (array_subtype (ref i31) $[ref|any|]))
(type $ref|[ref|i31|]|_ref|[ref|any|]|_=>_none (func (param (ref $[ref|i31|]) (ref $[ref|any|]))))
(type $ref|{ref|i31|}|_ref|{ref|any|}|_=>_none (func (param (ref ${ref|i31|}) (ref ${ref|any|}))))
+ (type ${ref|i31|_ref|any|} (struct_subtype (field (ref i31)) (field (ref any)) ${ref|i31|}))
(type $ref|{ref|i31|}|_ref|{ref|i31|_ref|any|}|_=>_none (func (param (ref ${ref|i31|}) (ref ${ref|i31|_ref|any|}))))
(type $ref|{ref|...0|}|_ref|{ref|...0|_ref|...0|}|_=>_none (func (param (ref ${ref|...0|}) (ref ${ref|...0|_ref|...0|}))))
- (type $[ref|i31|] (array (ref i31)))
- (type $[ref|any|] (array (ref any)))
- (type ${ref|any|} (struct (field (ref any))))
- (type ${ref|i31|_ref|any|} (struct (field (ref i31)) (field (ref any))))
- (func $0 (param $0 (ref $[i32])) (param $1 (ref null $[i32]))
+ (func $0 (type $ref|[i32]|_ref?|[i32]|_=>_none) (param $0 (ref $[i32])) (param $1 (ref null $[i32]))
(local.set $1
(local.get $0)
)
)
- (func $1 (param $0 (ref $[ref|i31|])) (param $1 (ref $[ref|any|]))
+ (func $1 (type $ref|[ref|i31|]|_ref|[ref|any|]|_=>_none) (param $0 (ref $[ref|i31|])) (param $1 (ref $[ref|any|]))
(local.set $1
(local.get $0)
)
)
- (func $2 (param $0 (ref ${ref|i31|})) (param $1 (ref ${ref|any|}))
+ (func $2 (type $ref|{ref|i31|}|_ref|{ref|any|}|_=>_none) (param $0 (ref ${ref|i31|})) (param $1 (ref ${ref|any|}))
(local.set $1
(local.get $0)
)
)
- (func $3 (param $0 (ref ${ref|i31|})) (param $1 (ref ${ref|i31|_ref|any|}))
+ (func $3 (type $ref|{ref|i31|}|_ref|{ref|i31|_ref|any|}|_=>_none) (param $0 (ref ${ref|i31|})) (param $1 (ref ${ref|i31|_ref|any|}))
(local.set $0
(local.get $1)
)
)
- (func $4 (param $0 (ref ${ref|...0|})) (param $1 (ref ${ref|...0|_ref|...0|}))
+ (func $4 (type $ref|{ref|...0|}|_ref|{ref|...0|_ref|...0|}|_=>_none) (param $0 (ref ${ref|...0|})) (param $1 (ref ${ref|...0|_ref|...0|}))
(local.set $0
(local.get $1)
)
diff --git a/test/table-import.wast.from-wast b/test/table-import.wast.from-wast
index bbace54cf..17d889564 100644
--- a/test/table-import.wast.from-wast
+++ b/test/table-import.wast.from-wast
@@ -3,7 +3,7 @@
(import "env" "table" (table $timport$0 1 1 funcref))
(memory $0 0)
(elem (i32.const 0) $foo)
- (func $foo
+ (func $foo (type $0)
(nop)
)
)
diff --git a/test/table-import.wast.fromBinary b/test/table-import.wast.fromBinary
index 7c09f0291..363ab28b5 100644
--- a/test/table-import.wast.fromBinary
+++ b/test/table-import.wast.fromBinary
@@ -3,7 +3,7 @@
(import "env" "table" (table $timport$0 1 1 funcref))
(memory $0 0)
(elem (i32.const 0) $foo)
- (func $foo
+ (func $foo (type $0)
(nop)
)
)
diff --git a/test/table-import.wast.fromBinary.noDebugInfo b/test/table-import.wast.fromBinary.noDebugInfo
index ed53490cb..13946ee7b 100644
--- a/test/table-import.wast.fromBinary.noDebugInfo
+++ b/test/table-import.wast.fromBinary.noDebugInfo
@@ -3,7 +3,7 @@
(import "env" "table" (table $timport$0 1 1 funcref))
(memory $0 0)
(elem (i32.const 0) $0)
- (func $0
+ (func $0 (type $none_=>_none)
(nop)
)
)
diff --git a/test/unreachable-code.wast.from-wast b/test/unreachable-code.wast.from-wast
index afd67f76f..6034fabc3 100644
--- a/test/unreachable-code.wast.from-wast
+++ b/test/unreachable-code.wast.from-wast
@@ -1,32 +1,32 @@
(module
(type $none_=>_none (func))
- (func $a
+ (func $a (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $b
+ (func $b (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $a-block
+ (func $a-block (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $b-block
+ (func $b-block (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $a-prepost
+ (func $a-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -34,7 +34,7 @@
)
(nop)
)
- (func $b-prepost
+ (func $b-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -43,7 +43,7 @@
)
(nop)
)
- (func $a-block-prepost
+ (func $a-block-prepost (type $none_=>_none)
(nop)
(block
(if
@@ -53,7 +53,7 @@
)
(nop)
)
- (func $b-block-prepost
+ (func $b-block-prepost (type $none_=>_none)
(nop)
(block
(if
@@ -64,7 +64,7 @@
)
(nop)
)
- (func $recurse
+ (func $recurse (type $none_=>_none)
(block $a
(nop)
(block $b
@@ -75,7 +75,7 @@
(nop)
)
)
- (func $recurse-b
+ (func $recurse-b (type $none_=>_none)
(block $a
(nop)
(block $b
diff --git a/test/unreachable-code.wast.fromBinary b/test/unreachable-code.wast.fromBinary
index 67b8c30a6..26177527d 100644
--- a/test/unreachable-code.wast.fromBinary
+++ b/test/unreachable-code.wast.fromBinary
@@ -1,32 +1,32 @@
(module
(type $none_=>_none (func))
- (func $a
+ (func $a (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $b
+ (func $b (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $a-block
+ (func $a-block (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $b-block
+ (func $b-block (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $a-prepost
+ (func $a-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -34,7 +34,7 @@
)
(nop)
)
- (func $b-prepost
+ (func $b-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -42,7 +42,7 @@
(unreachable)
)
)
- (func $a-block-prepost
+ (func $a-block-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -50,7 +50,7 @@
)
(nop)
)
- (func $b-block-prepost
+ (func $b-block-prepost (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -58,7 +58,7 @@
(unreachable)
)
)
- (func $recurse
+ (func $recurse (type $none_=>_none)
(nop)
(block $label$1
(nop)
@@ -66,7 +66,7 @@
)
(nop)
)
- (func $recurse-b
+ (func $recurse-b (type $none_=>_none)
(block $label$1
(nop)
(block $label$2
diff --git a/test/unreachable-code.wast.fromBinary.noDebugInfo b/test/unreachable-code.wast.fromBinary.noDebugInfo
index 3ff74e98f..9f90354a9 100644
--- a/test/unreachable-code.wast.fromBinary.noDebugInfo
+++ b/test/unreachable-code.wast.fromBinary.noDebugInfo
@@ -1,32 +1,32 @@
(module
(type $none_=>_none (func))
- (func $0
+ (func $0 (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $1
+ (func $1 (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $2
+ (func $2 (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
)
)
- (func $3
+ (func $3 (type $none_=>_none)
(if
(i32.const 1)
(unreachable)
(unreachable)
)
)
- (func $4
+ (func $4 (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -34,7 +34,7 @@
)
(nop)
)
- (func $5
+ (func $5 (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -42,7 +42,7 @@
(unreachable)
)
)
- (func $6
+ (func $6 (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -50,7 +50,7 @@
)
(nop)
)
- (func $7
+ (func $7 (type $none_=>_none)
(nop)
(if
(i32.const 1)
@@ -58,7 +58,7 @@
(unreachable)
)
)
- (func $8
+ (func $8 (type $none_=>_none)
(nop)
(block $label$1
(nop)
@@ -66,7 +66,7 @@
)
(nop)
)
- (func $9
+ (func $9 (type $none_=>_none)
(block $label$1
(nop)
(block $label$2
diff --git a/test/unreachable-instr-type.wast.from-wast b/test/unreachable-instr-type.wast.from-wast
index 311c98a66..0013a0e2f 100644
--- a/test/unreachable-instr-type.wast.from-wast
+++ b/test/unreachable-instr-type.wast.from-wast
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 (shared 1 1))
- (func $test
+ (func $test (type $none_=>_none)
(i32.load
(unreachable)
)
diff --git a/test/unreachable-instr-type.wast.fromBinary b/test/unreachable-instr-type.wast.fromBinary
index 8538eccef..e68bf5b3a 100644
--- a/test/unreachable-instr-type.wast.fromBinary
+++ b/test/unreachable-instr-type.wast.fromBinary
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 (shared 1 1))
- (func $test
+ (func $test (type $none_=>_none)
(unreachable)
)
)
diff --git a/test/unreachable-instr-type.wast.fromBinary.noDebugInfo b/test/unreachable-instr-type.wast.fromBinary.noDebugInfo
index b9de7d9bd..8004817d0 100644
--- a/test/unreachable-instr-type.wast.fromBinary.noDebugInfo
+++ b/test/unreachable-instr-type.wast.fromBinary.noDebugInfo
@@ -1,7 +1,7 @@
(module
(type $none_=>_none (func))
(memory $0 (shared 1 1))
- (func $0
+ (func $0 (type $none_=>_none)
(unreachable)
)
)
diff --git a/test/untaken-br_if.wast.from-wast b/test/untaken-br_if.wast.from-wast
index 616402045..8cabc57df 100644
--- a/test/untaken-br_if.wast.from-wast
+++ b/test/untaken-br_if.wast.from-wast
@@ -1,6 +1,6 @@
(module
(type $none_=>_f32 (func (result f32)))
- (func $binaryify-untaken-br_if (result f32)
+ (func $binaryify-untaken-br_if (type $none_=>_f32) (result f32)
(if (result f32)
(i32.const 1)
(unreachable)
diff --git a/test/untaken-br_if.wast.fromBinary b/test/untaken-br_if.wast.fromBinary
index 25e0e728b..d8dd3eb80 100644
--- a/test/untaken-br_if.wast.fromBinary
+++ b/test/untaken-br_if.wast.fromBinary
@@ -1,6 +1,6 @@
(module
(type $none_=>_f32 (func (result f32)))
- (func $binaryify-untaken-br_if (result f32)
+ (func $binaryify-untaken-br_if (type $none_=>_f32) (result f32)
(if (result f32)
(i32.const 1)
(unreachable)
diff --git a/test/untaken-br_if.wast.fromBinary.noDebugInfo b/test/untaken-br_if.wast.fromBinary.noDebugInfo
index 5f1473dda..056098c6a 100644
--- a/test/untaken-br_if.wast.fromBinary.noDebugInfo
+++ b/test/untaken-br_if.wast.fromBinary.noDebugInfo
@@ -1,6 +1,6 @@
(module
(type $none_=>_f32 (func (result f32)))
- (func $0 (result f32)
+ (func $0 (type $none_=>_f32) (result f32)
(if (result f32)
(i32.const 1)
(unreachable)