diff options
-rw-r--r-- | src/pass.h | 4 | ||||
-rw-r--r-- | src/tools/optimization-options.h | 4 | ||||
-rw-r--r-- | src/tools/wasm-opt.cpp | 4 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/pass.h b/src/pass.h index 1c37bea40..20384241c 100644 --- a/src/pass.h +++ b/src/pass.h @@ -76,6 +76,10 @@ struct PassRunner { PassRunner(Module* wasm) : wasm(wasm), allocator(&wasm->allocator) {} PassRunner(Module* wasm, PassOptions options) : wasm(wasm), allocator(&wasm->allocator), options(options) {} + // no copying, we control |passes| + PassRunner(const PassRunner&) = delete; + PassRunner& operator=(const PassRunner&) = delete; + void setDebug(bool debug_) { options.debug = debug_; options.validateGlobally = debug_; // validate everything by default if debugging diff --git a/src/tools/optimization-options.h b/src/tools/optimization-options.h index b094f96ce..a15024151 100644 --- a/src/tools/optimization-options.h +++ b/src/tools/optimization-options.h @@ -115,7 +115,7 @@ struct OptimizationOptions : public Options { return passes.size() > 0; } - PassRunner getPassRunner(Module& wasm) { + void runPasses(Module& wasm) { PassRunner passRunner(&wasm, passOptions); if (debug) passRunner.setDebug(true); for (auto& pass : passes) { @@ -125,7 +125,7 @@ struct OptimizationOptions : public Options { passRunner.add(pass); } } - return passRunner; + passRunner.run(); } }; diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index a66bc612f..b813b5dd3 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -62,7 +62,6 @@ std::string runCommand(std::string command) { int main(int argc, const char* argv[]) { Name entry; - std::vector<std::string> passes; bool emitBinary = true; bool debugInfo = false; bool fuzzExec = false; @@ -173,8 +172,7 @@ int main(int argc, const char* argv[]) { if (options.runningPasses()) { if (options.debug) std::cerr << "running passes...\n"; - PassRunner passRunner = options.getPassRunner(wasm); - passRunner.run(); + options.runPasses(wasm); assert(WasmValidator().validate(wasm)); } |