summaryrefslogtreecommitdiff
path: root/src/passes/Inlining.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/Inlining.cpp')
-rw-r--r--src/passes/Inlining.cpp14
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;
}