diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-04-08 15:49:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-08 15:49:26 -0700 |
commit | c5ad2e5ecc517030aa242c18fd738b9d79f11429 (patch) | |
tree | 7b12d8c5896d5a0d1806efefc9abc5267e5f99eb /src/tools/wasm-ctor-eval.cpp | |
parent | 3eb9b27246d5d021d68b9a854c064d5a537728dd (diff) | |
download | binaryen-c5ad2e5ecc517030aa242c18fd738b9d79f11429.tar.gz binaryen-c5ad2e5ecc517030aa242c18fd738b9d79f11429.tar.bz2 binaryen-c5ad2e5ecc517030aa242c18fd738b9d79f11429.zip |
Move segment merging to fit web limits into its own pass (#1980)
It was previously part of writing a binary, but changing the number of
segments at such a late stage would not work in the presence of bulk
memory's datacount section. Also updates the memory packing pass
to respect the web's limits on the number of data segments.
Diffstat (limited to 'src/tools/wasm-ctor-eval.cpp')
-rw-r--r-- | src/tools/wasm-ctor-eval.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/tools/wasm-ctor-eval.cpp b/src/tools/wasm-ctor-eval.cpp index 8b8eaa4ad..be1de7684 100644 --- a/src/tools/wasm-ctor-eval.cpp +++ b/src/tools/wasm-ctor-eval.cpp @@ -25,9 +25,9 @@ #include <memory> #include "pass.h" -#include "support/command-line.h" #include "support/file.h" #include "support/colors.h" +#include "tool-options.h" #include "wasm-io.h" #include "wasm-interpreter.h" #include "wasm-builder.h" @@ -383,7 +383,7 @@ int main(int argc, const char* argv[]) { bool debugInfo = false; std::string ctorsString; - Options options("wasm-ctor-eval", "Execute C++ global constructors ahead of time"); + ToolOptions options("wasm-ctor-eval", "Execute C++ global constructors ahead of time"); options .add("--output", "-o", "Output file (stdout if not specified)", Options::Arguments::One, @@ -425,6 +425,8 @@ int main(int argc, const char* argv[]) { } } + options.calculateFeatures(wasm); + if (!WasmValidator().validate(wasm)) { WasmPrinter::printModule(&wasm); Fatal() << "error in validating input"; @@ -442,6 +444,7 @@ int main(int argc, const char* argv[]) { // Do some useful optimizations after the evalling { PassRunner passRunner(&wasm); + passRunner.setFeatures(options.passOptions.features); passRunner.add("memory-packing"); // we flattened it, so re-optimize passRunner.add("remove-unused-names"); passRunner.add("dce"); |