From 1cd34c211dffa66fa2f2e45f3f9291e8ad836e07 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Sat, 15 Jun 2019 12:04:16 -0700 Subject: Bysyncify: async transform for wasm (#2172) This adds a new pass, Bysyncify, which transforms code to allow unwind and rewinding the call stack and local state. This allows things like coroutines, turning synchronous code asynchronous, etc. The new pass file itself has a large comment on top with docs. So far the tests here seem to show this works, but this hasn't been tested heavily yet. My next step is to hook this up to emscripten as a replacement for asyncify/emterpreter, see emscripten-core/emscripten#8561 Note that this is completely usable by itself, so it could be useful for any language that needs coroutines etc., and not just ones using LLVM and/or emscripten. See docs on the ABI in the pass source. --- src/passes/Inlining.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/passes/Inlining.cpp') diff --git a/src/passes/Inlining.cpp b/src/passes/Inlining.cpp index 2aa800d62..1e5089b97 100644 --- a/src/passes/Inlining.cpp +++ b/src/passes/Inlining.cpp @@ -160,8 +160,6 @@ struct Planner : public WalkerPass> { } } - void doWalkFunction(Function* func) { walk(func->body); } - private: InliningState* state; }; -- cgit v1.2.3