diff options
Diffstat (limited to 'src/passes/Inlining.cpp')
-rw-r--r-- | src/passes/Inlining.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/passes/Inlining.cpp b/src/passes/Inlining.cpp index b69d8f7c2..0e6f6abe4 100644 --- a/src/passes/Inlining.cpp +++ b/src/passes/Inlining.cpp @@ -344,23 +344,15 @@ struct Inlining : public Pass { infos[func->name]; } PassRunner runner(module); - FunctionInfoScanner(&infos).run(&runner, module); + FunctionInfoScanner scanner(&infos); + scanner.run(&runner, module); // fill in global uses + scanner.walkModuleCode(module); for (auto& ex : module->exports) { if (ex->kind == ExternalKind::Function) { infos[ex->value].usedGlobally = true; } } - ElementUtils::iterAllElementFunctionNames( - module, [&](Name name) { infos[name].usedGlobally = true; }); - - for (auto& global : module->globals) { - if (!global->imported()) { - for (auto* ref : FindAll<RefFunc>(global->init).list) { - infos[ref->func].usedGlobally = true; - } - } - } if (module->start.is()) { infos[module->start].usedGlobally = true; } |