From b3775b5e4e150439276ad3d34f1bb564b28e8ef5 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 6 Oct 2023 16:41:13 -0700 Subject: Automatically discard global effects in the rare passes that add effects (#5999) All logging/instrumentation passes need to do this, to avoid us using stale global effects that are too low (too high is not optimal either, but at least it cannot cause bugs). --- src/passes/ExtractFunction.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/passes/ExtractFunction.cpp') diff --git a/src/passes/ExtractFunction.cpp b/src/passes/ExtractFunction.cpp index e3f2a5538..440468ede 100644 --- a/src/passes/ExtractFunction.cpp +++ b/src/passes/ExtractFunction.cpp @@ -58,6 +58,9 @@ static void extract(PassRunner* runner, Module* module, Name name) { } struct ExtractFunction : public Pass { + // Turns functions into imported functions. + bool addsEffects() override { return true; } + void run(Module* module) override { Name name = getPassOptions().getArgument( "extract-function", @@ -67,6 +70,9 @@ struct ExtractFunction : public Pass { }; struct ExtractFunctionIndex : public Pass { + // See above. + bool addsEffects() override { return true; } + void run(Module* module) override { std::string index = getPassOptions().getArgument("extract-function-index", -- cgit v1.2.3