summaryrefslogtreecommitdiff
path: root/src/passes/SimplifyLocals.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-06-03 14:55:29 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-06-03 14:55:29 -0700
commitf6b5c1e5c1c0de26fd078d336782508dd0186820 (patch)
tree8711b60b41ef1d9e5ded89486073df526a99ada7 /src/passes/SimplifyLocals.cpp
parentb76818e23eab75876f1981800ef12d55ce2f579b (diff)
downloadbinaryen-f6b5c1e5c1c0de26fd078d336782508dd0186820.tar.gz
binaryen-f6b5c1e5c1c0de26fd078d336782508dd0186820.tar.bz2
binaryen-f6b5c1e5c1c0de26fd078d336782508dd0186820.zip
move function parallelism to pass and pass runner, which allows more efficient parallel execution (#564)
Diffstat (limited to 'src/passes/SimplifyLocals.cpp')
-rw-r--r--src/passes/SimplifyLocals.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp
index 57057e8f9..b79b55eea 100644
--- a/src/passes/SimplifyLocals.cpp
+++ b/src/passes/SimplifyLocals.cpp
@@ -42,7 +42,7 @@ namespace wasm {
// Helper classes
-struct GetLocalCounter : public WalkerPass<PostWalker<GetLocalCounter, Visitor<GetLocalCounter>>> {
+struct GetLocalCounter : public PostWalker<GetLocalCounter, Visitor<GetLocalCounter>> {
std::vector<int>* numGetLocals;
void visitGetLocal(GetLocal *curr) {
@@ -50,7 +50,7 @@ struct GetLocalCounter : public WalkerPass<PostWalker<GetLocalCounter, Visitor<G
}
};
-struct SetLocalRemover : public WalkerPass<PostWalker<SetLocalRemover, Visitor<SetLocalRemover>>> {
+struct SetLocalRemover : public PostWalker<SetLocalRemover, Visitor<SetLocalRemover>> {
std::vector<int>* numGetLocals;
void visitSetLocal(SetLocal *curr) {
@@ -63,7 +63,9 @@ struct SetLocalRemover : public WalkerPass<PostWalker<SetLocalRemover, Visitor<S
// Main class
struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, Visitor<SimplifyLocals>>> {
- bool isFunctionParallel() { return true; }
+ bool isFunctionParallel() override { return true; }
+
+ Pass* create() override { return new SimplifyLocals; }
// information for a set_local we can sink
struct SinkableInfo {