diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-07-18 09:17:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-18 09:17:57 -0700 |
commit | e865f2fa2863b6e91521c059a61a4483769bf5c9 (patch) | |
tree | f2d4bbee701376a4975ebf0d2c518f10369fdabd /src/passes/OptimizeInstructions.cpp | |
parent | 24accd15fb59d476daaebbbcd492b8a9ee729b2b (diff) | |
parent | 7bc2ed70de137aa6615fcd5d0e1f3e88f008a738 (diff) | |
download | binaryen-e865f2fa2863b6e91521c059a61a4483769bf5c9.tar.gz binaryen-e865f2fa2863b6e91521c059a61a4483769bf5c9.tar.bz2 binaryen-e865f2fa2863b6e91521c059a61a4483769bf5c9.zip |
Merge pull request #1095 from WebAssembly/fuzz-3
More fuzz fixes
Diffstat (limited to 'src/passes/OptimizeInstructions.cpp')
-rw-r--r-- | src/passes/OptimizeInstructions.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index d1b419a06..c6006d712 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -517,6 +517,12 @@ struct OptimizeInstructions : public WalkerPass<PostWalker<OptimizeInstructions, } } } + // some operations have no effect TODO: many more + if (right->value == Literal(int32_t(0))) { + if (binary->op == ShlInt32 || binary->op == ShrUInt32 || binary->op == ShrSInt32) { + return binary->left; + } + } // the square of some operations can be merged if (auto* left = binary->left->dynCast<Binary>()) { if (left->op == binary->op) { |