diff options
Diffstat (limited to 'src/passes/GUFA.cpp')
-rw-r--r-- | src/passes/GUFA.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/passes/GUFA.cpp b/src/passes/GUFA.cpp index 1f620f8db..eedf5f20c 100644 --- a/src/passes/GUFA.cpp +++ b/src/passes/GUFA.cpp @@ -63,8 +63,8 @@ struct GUFAOptimizer GUFAOptimizer(ContentOracle& oracle, bool optimizing) : oracle(oracle), optimizing(optimizing) {} - GUFAOptimizer* create() override { - return new GUFAOptimizer(oracle, optimizing); + std::unique_ptr<Pass> create() override { + return std::make_unique<GUFAOptimizer>(oracle, optimizing); } bool optimized = false; @@ -289,8 +289,7 @@ struct GUFAOptimizer return; } - PassRunner runner(getModule(), getPassOptions()); - runner.setIsNested(true); + PassRunner runner(getPassRunner()); // New unreachables we added have created dead code we can remove. If we do // not do this, then running GUFA repeatedly can actually increase code size // (by adding multiple unneeded unreachables). @@ -329,9 +328,9 @@ struct GUFAPass : public Pass { GUFAPass(bool optimizing) : optimizing(optimizing) {} - void run(PassRunner* runner, Module* module) override { + void run(Module* module) override { ContentOracle oracle(*module); - GUFAOptimizer(oracle, optimizing).run(runner, module); + GUFAOptimizer(oracle, optimizing).run(getPassRunner(), module); } }; |