diff options
author | Gav Wood <g@ethdev.com> | 2015-06-07 13:12:29 +0800 |
---|---|---|
committer | Gav Wood <g@ethdev.com> | 2015-06-07 13:12:29 +0800 |
commit | 523fd10c54953144bf091c2320d99efb095c762d (patch) | |
tree | ac4e5f736e8cf0bbceec20fe48307508060e47a7 /libsolidity | |
parent | 6bd934868044e38d2e53bc587f285a46b1236790 (diff) | |
parent | a20b23a7a835a31a5a35974000e5ddcc7cbfdbff (diff) | |
download | dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar.gz dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar.bz2 dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar.lz dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar.xz dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.tar.zst dexon-solidity-523fd10c54953144bf091c2320d99efb095c762d.zip |
Merge pull request #2102 from chriseth/sol_iszeroiszero
Optimize double ISZERO.
Diffstat (limited to 'libsolidity')
-rw-r--r-- | libsolidity/SolidityOptimizer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libsolidity/SolidityOptimizer.cpp b/libsolidity/SolidityOptimizer.cpp index 4ed081fd..de704c0d 100644 --- a/libsolidity/SolidityOptimizer.cpp +++ b/libsolidity/SolidityOptimizer.cpp @@ -440,6 +440,16 @@ BOOST_AUTO_TEST_CASE(cse_double_negation) checkCSE({Instruction::DUP5, Instruction::NOT, Instruction::NOT}, {Instruction::DUP5}); } +BOOST_AUTO_TEST_CASE(cse_double_iszero) +{ + checkCSE({Instruction::GT, Instruction::ISZERO, Instruction::ISZERO}, {Instruction::GT}); + checkCSE({Instruction::GT, Instruction::ISZERO}, {Instruction::GT, Instruction::ISZERO}); + checkCSE( + {Instruction::ISZERO, Instruction::ISZERO, Instruction::ISZERO}, + {Instruction::ISZERO} + ); +} + BOOST_AUTO_TEST_CASE(cse_associativity) { AssemblyItems input{ |