summaryrefslogtreecommitdiff
path: root/src/passes/pass.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2019-02-12 11:31:29 -0800
committerGitHub <noreply@github.com>2019-02-12 11:31:29 -0800
commit90d0ee4337c56ce4b30a6cb2a931ae814d150ee7 (patch)
tree7f92d73deff9379fcf2283df51df7dd18787c289 /src/passes/pass.cpp
parent92c10bce1a2d5635e3e7a5432066e660821c5d2d (diff)
downloadbinaryen-90d0ee4337c56ce4b30a6cb2a931ae814d150ee7.tar.gz
binaryen-90d0ee4337c56ce4b30a6cb2a931ae814d150ee7.tar.bz2
binaryen-90d0ee4337c56ce4b30a6cb2a931ae814d150ee7.zip
respect --no-validation in pass-debug mode (#1904)
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r--src/passes/pass.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 2872575c2..3eed059bb 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -289,28 +289,31 @@ void PassRunner::run() {
std::chrono::duration<double> diff = after - before;
std::cerr << diff.count() << " seconds." << std::endl;
totalTime += diff;
- // validate, ignoring the time
- std::cerr << "[PassRunner] (validating)\n";
- if (!WasmValidator().validate(*wasm, options.features, validationFlags)) {
- WasmPrinter::printModule(wasm);
- if (passDebug >= 2) {
- std::cerr << "Last pass (" << pass->name << ") broke validation. Here is the module before: \n" << moduleBefore.str() << "\n";
- } else {
- std::cerr << "Last pass (" << pass->name << ") broke validation. Run with BINARYEN_PASS_DEBUG=2 in the env to see the earlier state, or 3 to dump byn-* files for each pass\n";
+ if (options.validate) {
+ // validate, ignoring the time
+ std::cerr << "[PassRunner] (validating)\n";
+ if (!WasmValidator().validate(*wasm, options.features, validationFlags)) {
+ WasmPrinter::printModule(wasm);
+ if (passDebug >= 2) {
+ std::cerr << "Last pass (" << pass->name << ") broke validation. Here is the module before: \n" << moduleBefore.str() << "\n";
+ } else {
+ std::cerr << "Last pass (" << pass->name << ") broke validation. Run with BINARYEN_PASS_DEBUG=2 in the env to see the earlier state, or 3 to dump byn-* files for each pass\n";
+ }
+ abort();
}
- abort();
}
if (passDebug >= 3) {
dumpWast(pass->name, wasm);
}
}
std::cerr << "[PassRunner] passes took " << totalTime.count() << " seconds." << std::endl;
- // validate
- std::cerr << "[PassRunner] (final validation)\n";
- if (!WasmValidator().validate(*wasm, options.features, validationFlags)) {
- WasmPrinter::printModule(wasm);
- std::cerr << "final module does not validate\n";
- abort();
+ if (options.validate) {
+ std::cerr << "[PassRunner] (final validation)\n";
+ if (!WasmValidator().validate(*wasm, options.features, validationFlags)) {
+ WasmPrinter::printModule(wasm);
+ std::cerr << "final module does not validate\n";
+ abort();
+ }
}
} else {
// non-debug normal mode, run them in an optimal manner - for locality it is better