diff options
Diffstat (limited to 'src/pass.h')
-rw-r--r-- | src/pass.h | 7 |
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; } |