summaryrefslogtreecommitdiff
path: root/src/wasm-module-building.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-module-building.h')
-rw-r--r--src/wasm-module-building.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/wasm-module-building.h b/src/wasm-module-building.h
index 43cc493d1..52a4e7536 100644
--- a/src/wasm-module-building.h
+++ b/src/wasm-module-building.h
@@ -96,6 +96,14 @@ public:
return;
}
+ // Before parallelism, create all passes on the main thread here, to ensure
+ // constructors run at least once on the main thread, for one-time init things.
+ {
+ PassRunner passRunner(wasm);
+ addPrePasses(passRunner);
+ passRunner.addDefaultFunctionOptimizationPasses();
+ }
+
// prepare work list
endMarker = new Function();
list = new std::atomic<Function*>[numFunctions];