Commit Graph

459 Commits

Author SHA1 Message Date
Daniel Kirchner
d584e53077 Disable deduplication to align with evmone validation. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
73aa171b19 f 2023-01-05 13:06:14 +01:00
Daniel Kirchner
b8f74c968e Move to unified spec. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
321bef463f new container 2023-01-05 13:06:14 +01:00
Daniel Kirchner
e5e02dab91 f 2023-01-05 13:06:14 +01:00
Daniel Kirchner
cca0b5ac08 Fix typo. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
2618c84cb4 Minor fix. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
1364253dd9 More fixes. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
0ccc3e3762 Initial working version of rjumps. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
d4314bb874 minor fixes 2023-01-05 13:06:14 +01:00
Daniel Kirchner
5cc6a5b9e8 Per-function deduplication. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
3801847ccd More fixes. 2023-01-05 13:06:14 +01:00
Daniel Kirchner
4f205b2f9e Some fixes. 2023-01-05 13:06:13 +01:00
Daniel Kirchner
64817db4ca First working version. 2023-01-05 13:06:13 +01:00
Daniel Kirchner
41c9ff8985 Initial still broken version. 2023-01-05 13:06:13 +01:00
Rodrigo Q. Saramago
2fe9ffb799 Add notes about temporary changes 2023-01-05 13:06:13 +01:00
Rodrigo Q. Saramago
d7ce0ca240 Enforce non-empty data section 2023-01-05 13:06:13 +01:00
Rodrigo Q. Saramago
b0ebf13e03 Make eofVersion member of Assembly class 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
9bb2466aa3 Properly offset jumpdests 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
fdec47d880 Remove typecast (size is determined by output) 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
7f33f15da3 Compiler fix 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
9c74f07af0 Turn EOF optional 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
cf131588b6 Nicer code in the assembler 2023-01-05 13:06:13 +01:00
Alex Beregszaszi
5cd1122009 Dumb implementation of EOF1 support in libevasm 2023-01-05 13:06:13 +01:00
nishant-sachdeva
efbd3666a7 added optimization. shl comes out from being distributed over and 2022-11-11 01:16:14 +05:30
Daniel
bbaf8a4eb4
Merge pull request #13283 from ethereum/yulDebugger
Yul Debugger
2022-11-01 14:04:56 +01:00
Alexander Arlt
b7abcb25ae [libevmasm] Add Assembly::OptimiserSettings::translateSettings. 2022-10-26 14:11:59 +02:00
Marenz
4b69b5fdc1 YulRunner: Add support for external calls to the same contract 2022-09-14 11:40:02 +02:00
Marenz
f7cc29bec1 Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Marenz
1b5332c2b9 Fix spelling mistakes and CI spellcheck job 2022-08-18 14:38:19 +02:00
Daniel Lupu
b99f85ec65 Only apply rules for yul optimizer 2022-06-22 09:26:09 +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
Daniel Kirchner
53c4facf4e Fix compilation error. 2022-06-15 11:14:50 +02:00
Daniel Kirchner
953bc9fed2
Merge pull request #12983 from ethereum/hint-via-ir
Recommend `via-ir` whenever a stack too deep error is encountered.
2022-05-20 12:26:25 +02:00
hrkrshnn
5ae17c8e65 Recommend via-ir whenever a stack too deep error is encountered. 2022-05-05 19:22:03 +02:00
wechman
e980a29186 Set CommonSubexpressionEliminator max chunk size to 2000 2022-04-11 08:31:04 +02:00
wechman
91638ed7b2 fixup! Limit max chunk size in CommonSubexpressionEliminator::feedItems 2022-04-11 08:31:04 +02:00
wechman
63f53a19dd Limit max chunk size in CommonSubexpressionEliminator::feedItems 2022-04-11 08:31:04 +02:00
wechman
b74a27e946 ExpressionClasses performance optimization 2022-04-11 08:31:04 +02:00
Kamil Śliwak
f567eb1fb2 Disallow RETURNDATASIZE and RETURNDATACOPY in inline assembly blocks in pure functions 2022-04-08 14:48:35 +02:00
Alexander Arlt
1a0988e503 libevmasm: refactor asm-json export & add support for source list. 2022-03-23 15:58:07 -05:00
Daniel Kirchner
54ab09fee8 Additional peephole optimizer rules for removing side-effect free instructions before simple terminations. 2022-03-16 15:34:37 +01:00
wechman
8b0845fe97 CommonSubexpressionEliminator performance optimization 2022-03-16 12:57:38 +01:00
Daniel Kirchner
5cd98006d4 Fill in junk in stack layouts on terminating control flow paths. 2022-03-15 18:36:55 +01:00
chriseth
4f02be110c Unused store eliminator. 2022-03-10 18:25:28 +01:00
chriseth
b3fe042884 Optimize eq iszero jumpi to xor jumpi and remove double jump. 2022-03-10 14:41:41 +01:00
Daniel Kirchner
efc00bef55
Merge pull request #12748 from ethereum/markCreationAssembly
Store whether an evmasm Assembly is creation code.
2022-03-09 18:30:31 +01:00
Daniel Kirchner
e0c837b33b Remove isCreation flag from OptimiserSettings. 2022-03-09 17:53:28 +01:00
Daniel Kirchner
ce0a3e93f2 Store whether an evmasm Assembly is creation code. 2022-03-09 17:42:29 +01:00
chriseth
859869c4dd Simplify peephole optimizer template. 2022-03-09 16:03:57 +01:00