diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2022-09-09 18:42:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-09 18:42:15 -0700 |
commit | 73b562e24e958e6d5c15aa96ddf4b2e8f31162f8 (patch) | |
tree | 7bf17a711f4d90888dd3e45b0ccd65ad9584b6ba /test/lit/help/wasm-split.test | |
parent | 15117dc049c6e71b2ea646fb36e034b13dae6435 (diff) | |
download | binaryen-73b562e24e958e6d5c15aa96ddf4b2e8f31162f8.tar.gz binaryen-73b562e24e958e6d5c15aa96ddf4b2e8f31162f8.tar.bz2 binaryen-73b562e24e958e6d5c15aa96ddf4b2e8f31162f8.zip |
Remove typed-function-references feature (#5030)
In practice typed function references will not ship before GC and is not
independently useful, so it's not necessary to have a separate feature for it.
Roll the functionality previously enabled by --enable-typed-function-references
into --enable-gc instead.
This also avoids a problem with the ongoing implementation of the new GC bottom
heap types. That change will make all ref.null instructions in Binaryen IR refer
to one of the bottom heap types. But since those bottom types are introduced in
GC, it's not valid to emit them in binaries unless unless GC is enabled. The fix
if only reference types is enabled is to emit (ref.null func) instead
of (ref.null nofunc), but that doesn't always work if typed function references
are enabled because a function type more specific than func may be required.
Getting rid of typed function references as a separate feature makes this a
nonissue.
Diffstat (limited to 'test/lit/help/wasm-split.test')
-rw-r--r-- | test/lit/help/wasm-split.test | 324 |
1 files changed, 159 insertions, 165 deletions
diff --git a/test/lit/help/wasm-split.test b/test/lit/help/wasm-split.test index 9a1f95099..1994c681a 100644 --- a/test/lit/help/wasm-split.test +++ b/test/lit/help/wasm-split.test @@ -12,224 +12,218 @@ ;; CHECK-NEXT: wasm-split options: ;; CHECK-NEXT: ------------------- ;; CHECK-NEXT: -;; CHECK-NEXT: --split Split an input module into two output -;; CHECK-NEXT: modules. The default mode. -;; CHECK-NEXT: -;; CHECK-NEXT: --instrument Instrument an input module to allow it to -;; CHECK-NEXT: generate a profile that can be used to -;; CHECK-NEXT: guide splitting. -;; CHECK-NEXT: -;; CHECK-NEXT: --merge-profiles Merge multiple profiles for the same -;; CHECK-NEXT: module into a single profile. -;; CHECK-NEXT: -;; CHECK-NEXT: --print-profile [print-profile] Print profile contents in -;; CHECK-NEXT: a human-readable format. -;; CHECK-NEXT: -;; CHECK-NEXT: --profile [split] The profile to use to guide -;; CHECK-NEXT: splitting. -;; CHECK-NEXT: -;; CHECK-NEXT: --keep-funcs [split] Comma-separated list of functions -;; CHECK-NEXT: to keep in the primary module. The rest -;; CHECK-NEXT: will be split out. Cannot be used with -;; CHECK-NEXT: --profile or --split-funcs. You can also -;; CHECK-NEXT: pass a file with one function per line by -;; CHECK-NEXT: passing @filename. -;; CHECK-NEXT: -;; CHECK-NEXT: --split-funcs [split] Comma-separated list of functions -;; CHECK-NEXT: to split out to the secondary module. The -;; CHECK-NEXT: rest will be kept. Cannot be used with -;; CHECK-NEXT: --profile or --keep-funcs. You can also -;; CHECK-NEXT: pass a file with one function per line by -;; CHECK-NEXT: passing @filename. -;; CHECK-NEXT: -;; CHECK-NEXT: --primary-output,-o1 [split] Output file for the primary -;; CHECK-NEXT: module. -;; CHECK-NEXT: -;; CHECK-NEXT: --secondary-output,-o2 [split] Output file for the secondary -;; CHECK-NEXT: module. -;; CHECK-NEXT: -;; CHECK-NEXT: --symbolmap [split] Write a symbol map file for each -;; CHECK-NEXT: of the output modules. -;; CHECK-NEXT: -;; CHECK-NEXT: --placeholdermap [split] Write a file mapping placeholder -;; CHECK-NEXT: indices to the function names. -;; CHECK-NEXT: -;; CHECK-NEXT: --import-namespace [split] The namespace from which to -;; CHECK-NEXT: import objects from the primary module -;; CHECK-NEXT: into the secondary module. -;; CHECK-NEXT: -;; CHECK-NEXT: --placeholder-namespace [split] The namespace from which to -;; CHECK-NEXT: import placeholder functions into the -;; CHECK-NEXT: primary module. -;; CHECK-NEXT: -;; CHECK-NEXT: --asyncify [split] Transform the module to support -;; CHECK-NEXT: unwinding the stack from placeholder -;; CHECK-NEXT: functions and rewinding it once the -;; CHECK-NEXT: secondary module has been loaded. -;; CHECK-NEXT: -;; CHECK-NEXT: --export-prefix [split] An identifying prefix to prepend -;; CHECK-NEXT: to new export names created by module -;; CHECK-NEXT: splitting. -;; CHECK-NEXT: -;; CHECK-NEXT: --profile-export [instrument] The export name of the -;; CHECK-NEXT: function the embedder calls to write the -;; CHECK-NEXT: profile into memory. Defaults to -;; CHECK-NEXT: `__write_profile`. -;; CHECK-NEXT: -;; CHECK-NEXT: --in-memory [instrument] Store profile information in -;; CHECK-NEXT: memory (starting at address 0 and taking -;; CHECK-NEXT: one byte per function) rather than -;; CHECK-NEXT: globals (the default) so that it can be -;; CHECK-NEXT: shared between multiple threads. Users -;; CHECK-NEXT: are responsible for ensuring that the -;; CHECK-NEXT: module does not use the initial memory -;; CHECK-NEXT: region for anything else. -;; CHECK-NEXT: -;; CHECK-NEXT: --emit-module-names [split, instrument] Emit module names, -;; CHECK-NEXT: even if not emitting the rest of the -;; CHECK-NEXT: names section. Can help differentiate the -;; CHECK-NEXT: modules in stack traces. This option will -;; CHECK-NEXT: be removed once simpler ways of naming -;; CHECK-NEXT: modules are widely available. See -;; CHECK-NEXT: https://bugs.chromium.org/p/v8/issues/detail?id=11808. -;; CHECK-NEXT: -;; CHECK-NEXT: --initial-table [split, instrument] A hack to ensure the -;; CHECK-NEXT: split and instrumented modules have the -;; CHECK-NEXT: same table size when using Emscripten's -;; CHECK-NEXT: SPLIT_MODULE mode with dynamic linking. -;; CHECK-NEXT: TODO: Figure out a more elegant solution -;; CHECK-NEXT: for that use case and remove this. -;; CHECK-NEXT: -;; CHECK-NEXT: --emit-text,-S [split, instrument] Emit text instead of -;; CHECK-NEXT: binary for the output file or files. -;; CHECK-NEXT: -;; CHECK-NEXT: --debuginfo,-g [split, instrument] Emit names section in -;; CHECK-NEXT: wasm binary (or full debuginfo in wast) -;; CHECK-NEXT: -;; CHECK-NEXT: --output,-o [instrument, merge-profiles] Output file. -;; CHECK-NEXT: -;; CHECK-NEXT: --unescape,-u Un-escape function names (in -;; CHECK-NEXT: print-profile output) -;; CHECK-NEXT: -;; CHECK-NEXT: --verbose,-v Verbose output mode. Prints the functions -;; CHECK-NEXT: that will be kept and split out when -;; CHECK-NEXT: splitting a module. +;; CHECK-NEXT: --split Split an input module into two output +;; CHECK-NEXT: modules. The default mode. +;; CHECK-NEXT: +;; CHECK-NEXT: --instrument Instrument an input module to allow it to +;; CHECK-NEXT: generate a profile that can be used to +;; CHECK-NEXT: guide splitting. +;; CHECK-NEXT: +;; CHECK-NEXT: --merge-profiles Merge multiple profiles for the same +;; CHECK-NEXT: module into a single profile. +;; CHECK-NEXT: +;; CHECK-NEXT: --print-profile [print-profile] Print profile contents in +;; CHECK-NEXT: a human-readable format. +;; CHECK-NEXT: +;; CHECK-NEXT: --profile [split] The profile to use to guide +;; CHECK-NEXT: splitting. +;; CHECK-NEXT: +;; CHECK-NEXT: --keep-funcs [split] Comma-separated list of functions +;; CHECK-NEXT: to keep in the primary module. The rest +;; CHECK-NEXT: will be split out. Cannot be used with +;; CHECK-NEXT: --profile or --split-funcs. You can also +;; CHECK-NEXT: pass a file with one function per line by +;; CHECK-NEXT: passing @filename. +;; CHECK-NEXT: +;; CHECK-NEXT: --split-funcs [split] Comma-separated list of functions +;; CHECK-NEXT: to split out to the secondary module. The +;; CHECK-NEXT: rest will be kept. Cannot be used with +;; CHECK-NEXT: --profile or --keep-funcs. You can also +;; CHECK-NEXT: pass a file with one function per line by +;; CHECK-NEXT: passing @filename. +;; CHECK-NEXT: +;; CHECK-NEXT: --primary-output,-o1 [split] Output file for the primary +;; CHECK-NEXT: module. +;; CHECK-NEXT: +;; CHECK-NEXT: --secondary-output,-o2 [split] Output file for the secondary +;; CHECK-NEXT: module. +;; CHECK-NEXT: +;; CHECK-NEXT: --symbolmap [split] Write a symbol map file for each +;; CHECK-NEXT: of the output modules. +;; CHECK-NEXT: +;; CHECK-NEXT: --placeholdermap [split] Write a file mapping placeholder +;; CHECK-NEXT: indices to the function names. +;; CHECK-NEXT: +;; CHECK-NEXT: --import-namespace [split] The namespace from which to import +;; CHECK-NEXT: objects from the primary module into the +;; CHECK-NEXT: secondary module. +;; CHECK-NEXT: +;; CHECK-NEXT: --placeholder-namespace [split] The namespace from which to import +;; CHECK-NEXT: placeholder functions into the primary +;; CHECK-NEXT: module. +;; CHECK-NEXT: +;; CHECK-NEXT: --asyncify [split] Transform the module to support +;; CHECK-NEXT: unwinding the stack from placeholder +;; CHECK-NEXT: functions and rewinding it once the +;; CHECK-NEXT: secondary module has been loaded. +;; CHECK-NEXT: +;; CHECK-NEXT: --export-prefix [split] An identifying prefix to prepend +;; CHECK-NEXT: to new export names created by module +;; CHECK-NEXT: splitting. +;; CHECK-NEXT: +;; CHECK-NEXT: --profile-export [instrument] The export name of the +;; CHECK-NEXT: function the embedder calls to write the +;; CHECK-NEXT: profile into memory. Defaults to +;; CHECK-NEXT: `__write_profile`. +;; CHECK-NEXT: +;; CHECK-NEXT: --in-memory [instrument] Store profile information in +;; CHECK-NEXT: memory (starting at address 0 and taking +;; CHECK-NEXT: one byte per function) rather than globals +;; CHECK-NEXT: (the default) so that it can be shared +;; CHECK-NEXT: between multiple threads. Users are +;; CHECK-NEXT: responsible for ensuring that the module +;; CHECK-NEXT: does not use the initial memory region for +;; CHECK-NEXT: anything else. +;; CHECK-NEXT: +;; CHECK-NEXT: --emit-module-names [split, instrument] Emit module names, +;; CHECK-NEXT: even if not emitting the rest of the names +;; CHECK-NEXT: section. Can help differentiate the +;; CHECK-NEXT: modules in stack traces. This option will +;; CHECK-NEXT: be removed once simpler ways of naming +;; CHECK-NEXT: modules are widely available. See +;; CHECK-NEXT: https://bugs.chromium.org/p/v8/issues/detail?id=11808. +;; CHECK-NEXT: +;; CHECK-NEXT: --initial-table [split, instrument] A hack to ensure the +;; CHECK-NEXT: split and instrumented modules have the +;; CHECK-NEXT: same table size when using Emscripten's +;; CHECK-NEXT: SPLIT_MODULE mode with dynamic linking. +;; CHECK-NEXT: TODO: Figure out a more elegant solution +;; CHECK-NEXT: for that use case and remove this. +;; CHECK-NEXT: +;; CHECK-NEXT: --emit-text,-S [split, instrument] Emit text instead of +;; CHECK-NEXT: binary for the output file or files. +;; CHECK-NEXT: +;; CHECK-NEXT: --debuginfo,-g [split, instrument] Emit names section in +;; CHECK-NEXT: wasm binary (or full debuginfo in wast) +;; CHECK-NEXT: +;; CHECK-NEXT: --output,-o [instrument, merge-profiles] Output file. +;; CHECK-NEXT: +;; CHECK-NEXT: --unescape,-u Un-escape function names (in print-profile +;; CHECK-NEXT: output) +;; CHECK-NEXT: +;; CHECK-NEXT: --verbose,-v Verbose output mode. Prints the functions +;; CHECK-NEXT: that will be kept and split out when +;; CHECK-NEXT: splitting a module. ;; CHECK-NEXT: ;; CHECK-NEXT: ;; CHECK-NEXT: Tool options: ;; CHECK-NEXT: ------------- ;; CHECK-NEXT: -;; CHECK-NEXT: --mvp-features,-mvp Disable all non-MVP features +;; CHECK-NEXT: --mvp-features,-mvp Disable all non-MVP features ;; CHECK-NEXT: -;; CHECK-NEXT: --all-features,-all Enable all features +;; CHECK-NEXT: --all-features,-all Enable all features ;; CHECK-NEXT: -;; CHECK-NEXT: --detect-features (deprecated - this flag does nothing) +;; CHECK-NEXT: --detect-features (deprecated - this flag does nothing) ;; CHECK-NEXT: -;; CHECK-NEXT: --quiet,-q Emit less verbose output and hide trivial -;; CHECK-NEXT: warnings. +;; CHECK-NEXT: --quiet,-q Emit less verbose output and hide trivial +;; CHECK-NEXT: warnings. ;; CHECK-NEXT: -;; CHECK-NEXT: --experimental-poppy Parse wast files as Poppy IR for testing -;; CHECK-NEXT: purposes. +;; CHECK-NEXT: --experimental-poppy Parse wast files as Poppy IR for testing +;; CHECK-NEXT: purposes. ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-sign-ext Enable sign extension operations +;; CHECK-NEXT: --enable-sign-ext Enable sign extension operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-sign-ext Disable sign extension operations +;; CHECK-NEXT: --disable-sign-ext Disable sign extension operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-threads Enable atomic operations +;; CHECK-NEXT: --enable-threads Enable atomic operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-threads Disable atomic operations +;; CHECK-NEXT: --disable-threads Disable atomic operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-mutable-globals Enable mutable globals +;; CHECK-NEXT: --enable-mutable-globals Enable mutable globals ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-mutable-globals Disable mutable globals +;; CHECK-NEXT: --disable-mutable-globals Disable mutable globals ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-nontrapping-float-to-int Enable nontrapping float-to-int -;; CHECK-NEXT: operations +;; CHECK-NEXT: --enable-nontrapping-float-to-int Enable nontrapping float-to-int operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-nontrapping-float-to-int Disable nontrapping float-to-int -;; CHECK-NEXT: operations +;; CHECK-NEXT: --disable-nontrapping-float-to-int Disable nontrapping float-to-int +;; CHECK-NEXT: operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-simd Enable SIMD operations and types +;; CHECK-NEXT: --enable-simd Enable SIMD operations and types ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-simd Disable SIMD operations and types +;; CHECK-NEXT: --disable-simd Disable SIMD operations and types ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-bulk-memory Enable bulk memory operations +;; CHECK-NEXT: --enable-bulk-memory Enable bulk memory operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-bulk-memory Disable bulk memory operations +;; CHECK-NEXT: --disable-bulk-memory Disable bulk memory operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-exception-handling Enable exception handling operations +;; CHECK-NEXT: --enable-exception-handling Enable exception handling operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-exception-handling Disable exception handling operations +;; CHECK-NEXT: --disable-exception-handling Disable exception handling operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-tail-call Enable tail call operations +;; CHECK-NEXT: --enable-tail-call Enable tail call operations ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-tail-call Disable tail call operations +;; CHECK-NEXT: --disable-tail-call Disable tail call operations ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-reference-types Enable reference types +;; CHECK-NEXT: --enable-reference-types Enable reference types ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-reference-types Disable reference types +;; CHECK-NEXT: --disable-reference-types Disable reference types ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-multivalue Enable multivalue functions +;; CHECK-NEXT: --enable-multivalue Enable multivalue functions ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-multivalue Disable multivalue functions +;; CHECK-NEXT: --disable-multivalue Disable multivalue functions ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-gc Enable garbage collection +;; CHECK-NEXT: --enable-gc Enable garbage collection ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-gc Disable garbage collection +;; CHECK-NEXT: --disable-gc Disable garbage collection ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-memory64 Enable memory64 +;; CHECK-NEXT: --enable-memory64 Enable memory64 ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-memory64 Disable memory64 +;; CHECK-NEXT: --disable-memory64 Disable memory64 ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-typed-function-references Enable typed function references +;; CHECK-NEXT: --enable-gc-nn-locals Enable GC non-null locals ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-typed-function-references Disable typed function references +;; CHECK-NEXT: --disable-gc-nn-locals Disable GC non-null locals ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-gc-nn-locals Enable GC non-null locals +;; CHECK-NEXT: --enable-relaxed-simd Enable relaxed SIMD ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-gc-nn-locals Disable GC non-null locals +;; CHECK-NEXT: --disable-relaxed-simd Disable relaxed SIMD ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-relaxed-simd Enable relaxed SIMD +;; CHECK-NEXT: --enable-extended-const Enable extended const expressions ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-relaxed-simd Disable relaxed SIMD +;; CHECK-NEXT: --disable-extended-const Disable extended const expressions ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-extended-const Enable extended const expressions +;; CHECK-NEXT: --enable-strings Enable strings ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-extended-const Disable extended const expressions +;; CHECK-NEXT: --disable-strings Disable strings ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-strings Enable strings +;; CHECK-NEXT: --enable-multi-memories Enable multi-memories ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-strings Disable strings +;; CHECK-NEXT: --disable-multi-memories Disable multi-memories ;; CHECK-NEXT: -;; CHECK-NEXT: --enable-multi-memories Enable multi-memories +;; CHECK-NEXT: --no-validation,-n Disables validation, assumes inputs are +;; CHECK-NEXT: correct ;; CHECK-NEXT: -;; CHECK-NEXT: --disable-multi-memories Disable multi-memories +;; CHECK-NEXT: --pass-arg,-pa An argument passed along to optimization +;; CHECK-NEXT: passes being run. Must be in the form +;; CHECK-NEXT: KEY@VALUE ;; CHECK-NEXT: -;; CHECK-NEXT: --no-validation,-n Disables validation, assumes inputs are -;; CHECK-NEXT: correct +;; CHECK-NEXT: --nominal Force all GC type definitions to be parsed +;; CHECK-NEXT: as nominal. ;; CHECK-NEXT: -;; CHECK-NEXT: --pass-arg,-pa An argument passed along to optimization -;; CHECK-NEXT: passes being run. Must be in the form -;; CHECK-NEXT: KEY@VALUE +;; CHECK-NEXT: --structural Force all GC type definitions to be parsed +;; CHECK-NEXT: as structural (i.e. equirecursive). This +;; CHECK-NEXT: is the default. ;; CHECK-NEXT: -;; CHECK-NEXT: --nominal Force all GC type definitions to be -;; CHECK-NEXT: parsed as nominal. -;; CHECK-NEXT: -;; CHECK-NEXT: --structural Force all GC type definitions to be -;; CHECK-NEXT: parsed as structural (i.e. -;; CHECK-NEXT: equirecursive). This is the default. -;; CHECK-NEXT: -;; CHECK-NEXT: --hybrid Force all GC type definitions to be -;; CHECK-NEXT: parsed using the isorecursive hybrid type -;; CHECK-NEXT: system. +;; CHECK-NEXT: --hybrid Force all GC type definitions to be parsed +;; CHECK-NEXT: using the isorecursive hybrid type system. ;; CHECK-NEXT: ;; CHECK-NEXT: ;; CHECK-NEXT: General options: ;; CHECK-NEXT: ---------------- ;; CHECK-NEXT: -;; CHECK-NEXT: --version Output version information and exit +;; CHECK-NEXT: --version Output version information and exit ;; CHECK-NEXT: -;; CHECK-NEXT: --help,-h Show this help message and exit +;; CHECK-NEXT: --help,-h Show this help message and exit ;; CHECK-NEXT: -;; CHECK-NEXT: --debug,-d Print debug information to stderr +;; CHECK-NEXT: --debug,-d Print debug information to stderr ;; CHECK-NEXT: |