diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-01-07 16:22:46 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-01-07 16:23:14 -0800 |
commit | d0863fa49acc642353c99aa9c46a1aacc4be57d0 (patch) | |
tree | 6ec2dbeff39f1a2293d794233ce4107721255ac0 /src/passes/RemoveUnusedBrs.cpp | |
parent | 5110e2adc9351c7df283419041c154bf79eaddc7 (diff) | |
download | binaryen-d0863fa49acc642353c99aa9c46a1aacc4be57d0.tar.gz binaryen-d0863fa49acc642353c99aa9c46a1aacc4be57d0.tar.bz2 binaryen-d0863fa49acc642353c99aa9c46a1aacc4be57d0.zip |
optimize RemoveUnusedBrs some more - handle values #84
Diffstat (limited to 'src/passes/RemoveUnusedBrs.cpp')
-rw-r--r-- | src/passes/RemoveUnusedBrs.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index ff50847de..5f3018c5f 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -29,9 +29,13 @@ struct RemoveUnusedBrs : public Pass { if (curr->list.size() == 0) return; Break* last = curr->list.back()->dyn_cast<Break>(); if (!last) return; - if (last->value) return; + if (last->condition) return; if (last->name == curr->name) { - curr->list.pop_back(); + if (!last->value) { + curr->list.pop_back(); + } else { + curr->list[curr->list.size()-1] = last->value; // can replace with the value + } } } }; |