summaryrefslogtreecommitdiff
path: root/src/tools/asm2wasm.cpp
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-04-12 18:27:13 -0700
committerGitHub <noreply@github.com>2019-04-12 18:27:13 -0700
commit9495b338121140d585648d64fb99e8ef7f92f867 (patch)
tree57418b1f685a4a5a43ee291759f64e9a763b1245 /src/tools/asm2wasm.cpp
parent883d14de7157950063f74b81658d00df0d53be8d (diff)
downloadbinaryen-9495b338121140d585648d64fb99e8ef7f92f867.tar.gz
binaryen-9495b338121140d585648d64fb99e8ef7f92f867.tar.bz2
binaryen-9495b338121140d585648d64fb99e8ef7f92f867.zip
Move features from passOptions to Module (#2001)
This allows us to emit a (potentially modified) target features section and conditionally emit other sections such as the DataCount section based on the presence of features.
Diffstat (limited to 'src/tools/asm2wasm.cpp')
-rw-r--r--src/tools/asm2wasm.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/asm2wasm.cpp b/src/tools/asm2wasm.cpp
index 9ec083db2..547bf4ab1 100644
--- a/src/tools/asm2wasm.cpp
+++ b/src/tools/asm2wasm.cpp
@@ -177,6 +177,9 @@ int main(int argc, const char *argv[]) {
wasm.memory.segments.emplace_back(init, data);
}
+ // set up the module's features, needed by optimization and validation passes
+ options.applyFeatures(wasm);
+
// compile the code
Asm2WasmBuilder asm2wasm(wasm, pre, options.debug, trapMode, options.passOptions, legalizeJavaScriptFFI, options.runningDefaultOptimizationPasses(), wasmOnly);
asm2wasm.processAsm(asmjs);
@@ -185,7 +188,6 @@ int main(int argc, const char *argv[]) {
if (memInit != options.extra.end()) {
if (options.runningDefaultOptimizationPasses()) {
PassRunner runner(&wasm);
- runner.setFeatures(options.passOptions.features);
runner.add("memory-packing");
runner.run();
}
@@ -213,7 +215,7 @@ int main(int argc, const char *argv[]) {
}
if (options.passOptions.validate) {
- if (!WasmValidator().validate(wasm, options.passOptions.features)) {
+ if (!WasmValidator().validate(wasm)) {
WasmPrinter::printModule(&wasm);
Fatal() << "error in validating output";
}