diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-06-03 14:55:29 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-06-03 14:55:29 -0700 |
commit | f6b5c1e5c1c0de26fd078d336782508dd0186820 (patch) | |
tree | 8711b60b41ef1d9e5ded89486073df526a99ada7 /src/passes/SimplifyLocals.cpp | |
parent | b76818e23eab75876f1981800ef12d55ce2f579b (diff) | |
download | binaryen-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.cpp | 8 |
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 { |