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
chriseth
42c26e0bf5
Inline tiny functions first.
2020-09-10 17:01:20 +02:00
chriseth
f102feaf09
Handle "leaf functions" first in full inliner.
2020-09-10 17:01:19 +02:00