diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-08-25 11:29:46 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2017-08-25 16:04:36 -0700 |
commit | fe618683f2c8762f8817c7a573095a21751b2ed2 (patch) | |
tree | 4663573f75337dce15edc8afb73171dd3a5f3fb2 /src | |
parent | e88e1f1cdfd3807ca4f6cafe84d35083a92eddb1 (diff) | |
download | binaryen-fe618683f2c8762f8817c7a573095a21751b2ed2.tar.gz binaryen-fe618683f2c8762f8817c7a573095a21751b2ed2.tar.bz2 binaryen-fe618683f2c8762f8817c7a573095a21751b2ed2.zip |
quickly avoid all unreachable branching in ifs
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/RemoveUnusedBrs.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index f0db1eee6..d2b7c944f 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -173,6 +173,11 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs>> { auto* iff = (*currp)->dynCast<If>(); if (iff) { + if (iff->condition->type == unreachable) { + // avoid all the branching, we never reach it anyhow + *currp = iff->condition; + return; + } self->pushTask(doVisitIf, currp); if (iff->ifFalse) { // we need to join up if-else control flow, and clear after the condition |