Daniel
374a6fd50e
Merge pull request #14311 from ethereum/StackToMemoryDeterminism
...
Deterministically choose memory slots for variables during stack-to-memory.
2023-06-14 17:31:32 +02:00
Daniel Kirchner
aa01223398
Account for unassigned return variables in stack layout generation.
2023-06-14 11:43:46 +02:00
Daniel Kirchner
b7abd9bba4
Deterministically choose memory slots for variables independently of names that may depend on AST IDs.
2023-06-12 17:28:01 +02:00
Kamil Śliwak
5e32a728fe
Update test expectations
2023-06-07 12:13:39 +02:00
Kamil Śliwak
7ab730d410
Update tests that would become ineffective with minimal optimizations applied
2023-06-07 12:12:00 +02:00
Alexander Arlt
c5673278a7
Remove EWASM backend.
2023-05-11 10:56:55 -05:00
Daniel Kirchner
44da8507b1
Change default EVM version to Shanghai.
...
Co-authored-by: Rodrigo Q. Saramago <rodrigoqsaramago@gmail.com>
2023-05-08 16:34:23 +02:00
Rodrigo Q. Saramago
28c7fdae09
Migrate yulStackShuffling tests to isoltest
2023-04-25 15:53:01 +02:00
hrkrshnn
41ce3feb0a
test: some tests for push0
...
1. `push0_disallowed.yul`: checks if `push0()` is a valid builtin in strict Yul
2. `push0_disallowed.sol`: checks if `push0()` is a valid builtin in inline assembly
3. `push0.sol`: simple semantic test that returns 0
4. `evmone_support.sol`: tests if push0 works properly in evmone
5. Updated some bytecode too large tests to use `shanghai` as version
6. Updated various tests where `push1 0` was hardcoded in different forms / expectations on bytecode
size (`Assembler.cpp`, `GasCosts.cpp`, `SolidityCompiler.cpp`, `SolidityExpressionCompiler.cpp`)
2023-04-12 00:10:24 +02:00
chriseth
fac5666dc9
Re-implement unused assign / unused store eliminator.
2023-03-20 13:49:37 +01:00
Daniel Kirchner
4064116df4
Do not duplicate subassemblies.
...
Add LinkerObject check and more tests
2023-02-20 22:20:45 +01:00
chriseth
47aa1c65ae
Re-implement KnowledgeBase using groups of constantly-spaced variables.
2023-02-09 10:47:11 +01:00
Bhargava Shastry
5c6e12b2c0
Update existing and add new test cases.
2023-02-02 11:40:39 +01:00
Bhargava Shastry
f8880cad82
Yul grammar generator: Bound memory accesses.
2023-02-02 08:10:53 +01:00
Nikola Matic
e7543d487d
Issue warning when using deprecated SELFDESTRUCT
2023-01-25 16:55:11 +01:00
Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
...
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399 ).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
chriseth
79c52b3c9e
Re-use knowledge about keccak calls.
...
Re-use knowledge about keccak calls.
Update gas cost.
More tests.
Fix bug.
Update libyul/optimiser/DataFlowAnalyzer.cpp
Remove util prefixes
fix test
More test cases.
Add Changelog entry
2022-12-07 14:16:13 +01:00
Daniel
851cc09742
Merge pull request #13516 from ethereum/fix-yul-interpreter-memory-access
...
Fix memory expansion semantics in the yul interpreter.
2022-12-01 15:42:41 +01:00
Daniel Kirchner
bf26d3be5a
Add experimental EOF options for CLI and Standard JSON.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-11-23 19:53:44 +01:00
Bhargava Shastry
2c27405cbb
Fix zero size memory expansion semantics in the yul interpreter.
2022-11-21 11:53:42 +01:00
chriseth
5ba8c109f4
Use side-effects of user defined functions in evm code transform.
2022-11-14 21:26:36 +01:00
nishant-sachdeva
efbd3666a7
added optimization. shl comes out from being distributed over and
2022-11-11 01:16:14 +05:30
chriseth
cffacac9de
Hash number literals according to their value instead of their string representation.
2022-11-08 20:34:10 +01:00
Daniel
bbaf8a4eb4
Merge pull request #13283 from ethereum/yulDebugger
...
Yul Debugger
2022-11-01 14:04:56 +01:00
Alex Beregszaszi
565423c934
Replace use of boost::adapters::filtered with ranges::views::filter
2022-09-27 03:14:17 +02:00
nishant-sachdeva
c8011d8719
Cleaning up helpers around errors
2022-09-19 10:51:14 +05:30
Marenz
d10d967008
yulRun: Fix unexpected return value for call* instructions and add tests
2022-09-14 11:40:08 +02:00
Marenz
4b69b5fdc1
YulRunner: Add support for external calls to the same contract
2022-09-14 11:40:02 +02:00
Daniel Kirchner
1730e43bf7
Merge pull request #13514 from ethereum/yul-interpreter-create2
...
Fix create2 memory access in yul interpreter.
2022-09-14 11:19:11 +02:00
Nikola Matic
f6f0d6a360
Make hardcoded parts of the optimizer sequence configurable
2022-09-12 10:57:36 +02:00
Bhargava Shastry
69d9869d21
Fix create2 memory access in yul interpreter.
2022-09-12 09:53:31 +02:00
Daniel Kirchner
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
Marenz
f7cc29bec1
Add std:: qualifier to move() calls
2022-08-30 11:12:15 +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
Samuel Osewa
c21265f9f8
Changed error message for for Unicode character in non-unicode string literal
...
Co-authored-by: Kamil Śliwak <cameel2@gmail.com>
2022-06-15 16:12:24 +05:30
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
Joshua Quinones
e1a59397c6
Renamed AssemblyStack to YulStack
...
All files, references, variables, comments, etc. were renamed to YulStack.
2022-04-08 20:28:55 +02:00
chriseth
af86a80536
Merge pull request #12796 from ethereum/refactorStackCompressor
...
Refactor stack compressor
2022-03-16 16:36:41 +01:00
chriseth
75abe92eb2
Refactor stack compressor.
2022-03-15 21:28:47 +01:00
Daniel Kirchner
5cd98006d4
Fill in junk in stack layouts on terminating control flow paths.
2022-03-15 18:36:55 +01:00
Daniel Kirchner
b6cd3e154c
Test case for current behaviour.
2022-03-15 18:36:30 +01:00
chriseth
eab4ca906c
Refactor data flow analyzer state access.
2022-03-14 19:32:33 +01:00
chriseth
4f02be110c
Unused store eliminator.
2022-03-10 18:25:28 +01:00
chriseth
6ab31420af
Remove unneeded header files.
2022-03-10 09:55:05 +01:00
Daniel Kirchner
ce0a3e93f2
Store whether an evmasm Assembly is creation code.
2022-03-09 17:42:29 +01:00
chriseth
b0dcd7b915
Split out disassemble to remove numeric from instruction includes.
2022-03-02 15:30:41 +01:00
Daniel Kirchner
de28f31716
Improved stack shuffling in corner cases.
2022-01-21 15:41:30 +01:00