diff options
Diffstat (limited to 'src/passes/DuplicateFunctionElimination.cpp')
-rw-r--r-- | src/passes/DuplicateFunctionElimination.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/passes/DuplicateFunctionElimination.cpp b/src/passes/DuplicateFunctionElimination.cpp index 3f048d79a..445a024e4 100644 --- a/src/passes/DuplicateFunctionElimination.cpp +++ b/src/passes/DuplicateFunctionElimination.cpp @@ -70,10 +70,7 @@ struct DuplicateFunctionElimination : public Pass { limit--; // Hash all the functions auto hashes = FunctionHasher::createMap(module); - PassRunner hasherRunner(module); - hasherRunner.setIsNested(true); - hasherRunner.add<FunctionHasher>(&hashes); - hasherRunner.run(); + FunctionHasher(&hashes).run(runner, module); // Find hash-equal groups std::map<uint32_t, std::vector<Function*>> hashGroups; ModuleUtils::iterDefinedFunctions(*module, [&](Function* func) { @@ -121,10 +118,7 @@ struct DuplicateFunctionElimination : public Pass { v.end()); module->updateMaps(); // replace direct calls - PassRunner replacerRunner(module); - replacerRunner.setIsNested(true); - replacerRunner.add<FunctionReplacer>(&replacements); - replacerRunner.run(); + FunctionReplacer(&replacements).run(runner, module); // replace in table for (auto& segment : module->table.segments) { for (auto& name : segment.data) { |