diff --git a/src/passes/DeadArgumentElimination.cpp b/src/passes/DeadArgumentElimination.cpp index 93e6ba44b26..909fe9dbefa 100644 --- a/src/passes/DeadArgumentElimination.cpp +++ b/src/passes/DeadArgumentElimination.cpp @@ -94,6 +94,7 @@ using DAEFunctionInfoMap = std::unordered_map; struct DAEScanner : public WalkerPass>> { bool isFunctionParallel() override { return true; } + bool modifiesBinaryenIR() override { return false; } std::unique_ptr create() override { return std::make_unique(infoMap); diff --git a/src/passes/param-utils.cpp b/src/passes/param-utils.cpp index a600e1928c7..e63606195ad 100644 --- a/src/passes/param-utils.cpp +++ b/src/passes/param-utils.cpp @@ -290,6 +290,9 @@ void localizeCallsTo(const std::unordered_set& callTargets, std::function onChange) { struct LocalizerPass : public WalkerPass> { bool isFunctionParallel() override { return true; } + // May add non-nullable locals, but fixups are never needed as they are + // immediately used in the code right after. + bool requiresNonNullableLocalFixups() override { return false; } std::unique_ptr create() override { return std::make_unique(callTargets, onChange); @@ -335,6 +338,8 @@ void localizeCallsTo(const std::unordered_set& callTargets, PassRunner* runner) { struct LocalizerPass : public WalkerPass> { bool isFunctionParallel() override { return true; } + // See above. + bool requiresNonNullableLocalFixups() override { return false; } std::unique_ptr create() override { return std::make_unique(callTargets);