summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pass.h4
-rw-r--r--src/tools/optimization-options.h4
-rw-r--r--src/tools/wasm-opt.cpp4
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));
}