summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2021-04-05 14:09:01 -0700
committerGitHub <noreply@github.com>2021-04-05 14:09:01 -0700
commitb900ed95deda68dad12b3aac7d1283f642e7a545 (patch)
tree20724af201132681c10e4e0c5753c763b5eeae3d
parent1bb172c789bb3a61aeaae78f5464d0544627ed3e (diff)
downloadbinaryen-b900ed95deda68dad12b3aac7d1283f642e7a545.tar.gz
binaryen-b900ed95deda68dad12b3aac7d1283f642e7a545.tar.bz2
binaryen-b900ed95deda68dad12b3aac7d1283f642e7a545.zip
Reducer: skip more functions when failing to remove them (#3718)
This avoids an annoying case where in each iteration we try to remove every function one by one and keep failing. Instead, we'll skip large numbers of them when the factor is large at least. Also shorten some unnecessary logging.
-rw-r--r--src/tools/wasm-reduce.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/tools/wasm-reduce.cpp b/src/tools/wasm-reduce.cpp
index b84fe8e38..40ad58115 100644
--- a/src/tools/wasm-reduce.cpp
+++ b/src/tools/wasm-reduce.cpp
@@ -303,8 +303,7 @@ struct Reducer
// see if it is still has the property we are preserving
if (ProgramResult(command) == expected) {
std::cerr << "| command \"" << currCommand
- << "\" succeeded, reduced size to " << newSize
- << ", and preserved the property\n";
+ << "\" succeeded, reduced size to " << newSize << '\n';
copy_file(test, working);
more = true;
oldSize = newSize;
@@ -920,6 +919,7 @@ struct Reducer
skip = std::min(size_t(factor), 2 * skip);
} else {
skip = std::max(skip / 2, size_t(1)); // or 1?
+ i += factor / 100;
}
}
// try to remove exports