diff options
Diffstat (limited to 'src/ir/module-utils.h')
-rw-r--r-- | src/ir/module-utils.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ir/module-utils.h b/src/ir/module-utils.h index 5bcf2ea99..83625809f 100644 --- a/src/ir/module-utils.h +++ b/src/ir/module-utils.h @@ -85,6 +85,19 @@ inline void copyModule(Module& in, Module& out) { out.debugInfoFileNames = in.debugInfoFileNames; } +inline Function* copyFunction(Module& in, Module& out, Name name) { + Function *ret = out.getFunctionOrNull(name); + if (ret != nullptr) { + return ret; + } + auto* curr = in.getFunction(name); + auto* func = new Function(*curr); + func->body = ExpressionManipulator::copy(func->body, out); + func->type = Name(); + out.addFunction(func); + return func; +} + } // namespace ModuleUtils } // namespace wasm |