diff options
Diffstat (limited to 'src/passes/RemoveUnusedBrs.cpp')
-rw-r--r-- | src/passes/RemoveUnusedBrs.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index c2f470d80..2452130cc 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -260,15 +260,16 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs>> { } } } else if (curr->is<Nop>()) { - // ignore (could be result of a previous cycle) + // Ignore (could be result of a previous cycle). self->stopValueFlow(); - } else if (curr->is<Loop>()) { // TODO: eh - // do nothing - it's ok for values to flow out + } else if (curr->is<Loop>() || curr->is<TryTable>()) { + // Do nothing - it's ok for values to flow out. + // TODO: Legacy Try as well? } else if (auto* sw = curr->dynCast<Switch>()) { self->stopFlow(); self->optimizeSwitch(sw); } else { - // anything else stops the flow + // Anything else stops the flow. self->stopFlow(); } } |