Commit Graph
233 Commits
Author SHA1 Message Date
Daniel KirchnerandKamil Śliwak a33da17300 Bugfix and tests.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-09-08 11:54:14 +02:00
Daniel Kirchner d5e2925326 broken yul optimizer test 2022-09-07 16:49:58 +02:00
Daniel Kirchner e996fe6247 Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
Daniel Lupu 8c5f5c7db0 add rules for mod(mul(X, Y), A) & mod(add(X, Y), A) 2022-06-22 09:26:09 +02:00
Kamil Śliwak f08d349791 Separate some inlining tests into pre- and post-homestead 2022-05-23 13:37:50 +02:00
Daniel Kirchner 9fa907aac2 Do not remove potentially reverting returndatacopy cases. 2022-05-23 11:01:03 +02:00
chriseth 75abe92eb2 Refactor stack compressor. 2022-03-15 21:28:47 +01:00
chriseth 4f02be110c Unused store eliminator. 2022-03-10 18:25:28 +01:00
hrkrshnn 85d1a57e65 Added more tests. Updated chromosome. Remove unused headers. 2022-01-04 13:27:39 +05:30
chriseth e7fc2a176a Test updates. 2022-01-03 15:52:05 +01:00
chriseth 772e100813 Equal store eliminator. 2022-01-03 15:52:05 +01:00
chriseth 0e7a065a78 Enhance documentation. 2021-11-23 14:58:04 +01:00
chriseth bd321b9f1f Rename RedundantAssignEliminator to UnusedAssignEliminator. 2021-11-23 10:38:36 +01:00
Daniel Kirchner 10618188dd Update tests. 2021-11-09 14:34:05 +01:00
Daniel Kirchner 1a0605c594 Update tests. 2021-11-03 12:39:55 +01:00
chriseth 7f7c5ca171 New tests. 2021-11-02 11:59:01 +01:00
chriseth 3996d0a343 Update tests. 2021-11-02 11:59:01 +01:00
chriseth 95dbbdae22 Prepare tests to be meaningful. 2021-10-13 17:56:43 +02:00
Daniel Kirchner c499f27a63 Change RematCandidateSelector to not depend on variable name sorting. 2021-09-08 15:41:40 +02:00
hrkrshnn 2cdd3b2081 Resolving Keccak-256: check if arguments are identifiers early.
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
chriseth 4480662a58 Test. 2021-08-16 18:54:33 +02:00
Daniel Kirchner c341445f8e Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00
Daniel Kirchner dfce7b667d Move function arguments and return values. 2021-06-28 18:11:57 +02:00
Daniel Kirchner 284e8a103f Remove potentially non-deterministic test case. 2021-06-09 14:42:16 +02:00
hrkrshnn 8b4eaeabbf Added a few optimizer tests for Verbatim 2021-04-28 09:56:45 +02:00
Harikrishnan Mulackal f162c484ca Merge pull request #11026 from ethereum/resolve-keccak
Evaluate ``keccak256(a, const)``, when the value at memory location ``a`` is known at compile time and ``const <= 32``
2021-04-22 19:18:19 +02:00
hrkrshnn b599235b8d Skip resolving Keccak if AST contains msize.
Also a refactoring changing `m_optimizeMLoad` to `m_containsMSize`.
2021-04-22 18:19:47 +02:00
hrkrshnn 221292c278 Tests and changelog 2021-04-22 18:19:47 +02:00
chriseth a6a3af58a0 Add test. 2021-04-22 17:23:56 +02:00
chriseth 00fb2d390b Do not replace zeros by return variable. 2021-04-22 16:54:02 +02:00
hrkrshnn 0100f48e05 FunctionSpecializer: skip specializing recursive functions
This avoids potential pathological behaviour, like in Ackermann function.
2021-03-29 11:02:31 +02:00
hrkrshnn 2c75d1dfe4 Isoltest gas update for FunctionSpecializer 2021-03-29 11:02:31 +02:00
hrkrshnn 09998ceb0c Tests for FunctionSpecializer 2021-03-29 11:02:18 +02:00
chriseth 2c8540b1f9 Yul optimizer test updates. 2021-03-18 08:42:49 +01:00
chriseth 40c27ccc22 Move AND with constant inside OR. 2021-03-09 15:26:19 +01:00
chriseth 612d8184d1 Update tests. 2021-02-16 15:50:48 +01:00
Leonardo Alt 40221a90c4 Update smtCheckerTests for z3 4.8.10 2021-01-26 10:18:52 +01:00
Bhargava Shastry 02b28b42e8 Remove fuzzer mode from yul optimizer unit test framework. 2021-01-18 10:27:58 +01:00
Daniel Kirchner 308549f950 Simplify test and add Changelog entry. 2021-01-06 11:33:08 +01:00
chriseth d46da8e53c Optimize iszero(sub(x, y)) to eq(x, y). 2020-12-22 15:11:48 +01:00
chriseth f7a7e2928b New test. 2020-12-10 18:35:13 +01:00
Harikrishnan Mulackal 2b9f040c48 Optimize exp when base is -1 2020-09-29 17:44:09 +02:00
Daniel Kirchner 7fa9a9d312 Merge pull request #9162 from ethereum/memoryEscalator
Memory Escalator
2020-09-21 20:03:38 +02:00
Daniel Kirchner 48f620fb50 Reverse the order of the memory offsets assigned to variables. 2020-09-17 22:13:27 +02:00
Daniel Kirchner f4b42d1c72 Add stack limit evader. 2020-09-17 22:13:27 +02:00
chriseth 684fff34a9 Replace exp by shl. 2020-09-17 16:06:52 +02:00
chriseth f73fb726af Reasoning based optimizer. 2020-09-15 15:57:58 +02:00
chriseth 552a5f0913 Merge pull request #9314 from ethereum/inlineStartingFromLeaves
Handle "leaf functions" first in full inliner.
2020-09-14 20:22:48 +02:00
Harikrishnan Mulackal b7944477a1 Update UnusedFunctionParameterPruner tests to avoid getting inlined 2020-09-14 17:59:50 +02:00
chriseth 8e39110a30 Remove flag. 2020-09-14 17:35:04 +02:00