summaryrefslogtreecommitdiff
path: root/src/pass.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pass.h')
-rw-r--r--src/pass.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/pass.h b/src/pass.h
index 090aa8d33..da9a12b95 100644
--- a/src/pass.h
+++ b/src/pass.h
@@ -466,6 +466,13 @@ public:
// For more details see the LocalStructuralDominance class.
virtual bool requiresNonNullableLocalFixups() { return true; }
+ // Many passes can remove effects, for example, by finding some path is not
+ // reached and removing a throw or a call there. The few passes that *add*
+ // effects must mark themselves as such, so that we know to discard global
+ // effects after running them. For example, a logging pass that adds new calls
+ // to imports must override this to return true.
+ virtual bool addsEffects() { return false; }
+
std::string name;
PassRunner* getPassRunner() { return runner; }