summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2024-10-04 11:27:59 -0700
committerGitHub <noreply@github.com>2024-10-04 11:27:59 -0700
commit0be8d5e07e5f893705bc36c5d09676ee65d3466f (patch)
tree04228cdc0ecfce29a7d783a8c66809235629cfe7 /src
parentcbad8ec02680710001ebdc7157e487c54e9b4c66 (diff)
downloadbinaryen-0be8d5e07e5f893705bc36c5d09676ee65d3466f.tar.gz
binaryen-0be8d5e07e5f893705bc36c5d09676ee65d3466f.tar.bz2
binaryen-0be8d5e07e5f893705bc36c5d09676ee65d3466f.zip
MergeBlocks: Optimize all dropped blocks (#6984)
Just call optimizeDroppedBlock from visitDrop to handle that. Followup to #6982. This optimizes the new testcase added there. Some older tests also improve.
Diffstat (limited to 'src')
-rw-r--r--src/passes/MergeBlocks.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/passes/MergeBlocks.cpp b/src/passes/MergeBlocks.cpp
index 401d2e629..12f67329d 100644
--- a/src/passes/MergeBlocks.cpp
+++ b/src/passes/MergeBlocks.cpp
@@ -434,6 +434,15 @@ struct MergeBlocks
optimizeBlock(curr, getModule(), getPassOptions(), branchInfo);
}
+ void visitDrop(Drop* curr) {
+ if (auto* block = curr->value->dynCast<Block>()) {
+ if (optimizeDroppedBlock(
+ curr, block, *getModule(), getPassOptions(), branchInfo)) {
+ replaceCurrent(block);
+ }
+ }
+ }
+
// given
// (curr
// (block=child