Commit Graph

844 Commits

Author SHA1 Message Date
Daniel Kirchner
c23b18926f Adjusted stack compression for testing. 2021-08-18 13:28:28 +02:00
Daniel Kirchner
4c9fcda641 Add optimizer setting for fuzzing. 2021-08-18 10:02:32 +02:00
Daniel Kirchner
442666d181 Allow stack limit evasion in system yul routines during old code generation. 2021-08-17 19:00:28 +02:00
Daniel Kirchner
8bd358074e Compatibility with StackCompressor and StackLimitEvader. 2021-08-17 19:00:28 +02:00
Daniel Kirchner
de7f26c15d Enable the new code generator for "system" inline assembly routines. 2021-08-17 19:00:28 +02:00
Daniel Kirchner
68a0af709b Enable for IR code generation with stack optimization > homestead. 2021-08-17 19:00:28 +02:00
Daniel Kirchner
c0c214df2b Optimized EVM Code Transform. 2021-08-17 19:00:17 +02:00
Daniel Kirchner
1e3034a0eb Clarification with some comments and another assertion to help understanding the preconditions. 2021-08-17 18:59:57 +02:00
Daniel Kirchner
1612648268 Maintain only one best candidate during combineStack. 2021-08-17 13:24:11 +02:00
Daniel Kirchner
79d39d241c Simplify compressStack. 2021-08-17 13:24:11 +02:00
Daniel Kirchner
a58694ca4d Also push deep slots early if swapping is required later. 2021-08-17 13:24:11 +02:00
Daniel Kirchner
ae48500147 Refactor createIdealLayout slightly and add more comments. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
3bfd437ba7 Fixup! coding style from review suggestion. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
556bd9adfc Remove fixStackTooDeep and adjust combineStack comments. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
3bb7414703 Review comments. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
387c248601 Adjust pushDeepSlotIfRequired (and rename to dupDeepSlotIfRequired). 2021-08-16 17:34:00 +02:00
Daniel Kirchner
eca4fb6781 Adjust and extend comments for the stack shuffling operations. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
535d30bbb3 Avoid dupping slots if doing so causes other needed slots to become unreachable. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
74edc40a7e Reorder functions in implementation to match order in header. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
6037c4f26c Add function to FunctionReturnLabelSlot and assert that functions are identical in comparison operators. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
9f46fff467 Review suggestions and a lot more comments. 2021-08-16 17:34:00 +02:00
Daniel Kirchner
a756ec3e0e Attempt to split up the main algorithm a bit. 2021-08-16 17:33:59 +02:00
Daniel Kirchner
1fd4cf2254 Stack layout generator for new code generation. 2021-08-16 17:33:59 +02:00
chriseth
3622b30a1d Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
chriseth
90c4623460 Some more base fees. 2021-08-12 16:37:21 +02:00
chriseth
a4c94a1b5b Fixed inline assembly external identifier access. 2021-08-11 18:18:29 +02:00
hrkrshnn
7f1a2be0fe Allow basefee as Yul identifier for EVMVersion < london
This was done to prevent basefee from being a breaking change. This change will be removed in 0.9.0.

TODO revert this commit in breaking.
2021-08-11 10:46:08 +02:00
hrkrshnn
95091f6b58 Implemented block.basefee in Solidilty and basefee() in Yul.
Also added basefee to Yul grammar.
2021-08-09 16:18:08 +02:00
chriseth
467cbf92bc Only provide code generator to CodeTransform. 2021-08-04 18:38:10 +02:00
chriseth
ae519c1278
Merge pull request #11658 from ethereum/removeScannerFromCompilerStack
Remove scanner from compiler stack
2021-08-03 17:47:39 +02:00
chriseth
d7a40622e4
Merge pull request #11729 from ethereum/build-speedups
header file cleanups
2021-08-03 16:44:54 +02:00
Christian Parpart
af18b8afc2 Eliminate some unnecessary header inclusions in headers in Scanner.h and SourceReferenceFormatter.h 2021-08-03 15:43:17 +02:00
Christian Parpart
6294aa871a Simplify AsmParser::parse(.) usage 2021-08-03 15:43:17 +02:00
chriseth
ffc5cfd9a5 Remove scanner from compiler stack. 2021-08-03 15:43:17 +02:00
Christian Parpart
81e9225304 Eliminate some unnecessary header inclusions in headers. 2021-08-03 15:43:14 +02:00
Mathias Baumann
2ee6c7be64 Print @src and @use-src locations in AsmPrinter 2021-08-03 15:29:52 +02:00
Christian Parpart
3755210b7b [libyul] ObjectParser: Enables the use of custom source mapping via @use-src. 2021-07-27 16:46:47 +02:00
Daniel Kirchner
f3707f2ab0 Control flow graph for Yul. 2021-07-15 15:24:12 +02:00
Kamil Śliwak
6753c8f624 Rename escapeAndQuoteYulString() back to escapeAndQuoteString() 2021-07-14 21:29:01 +02:00
chriseth
01dc77e5a2 Properly assign source names for AST import. 2021-07-14 15:12:10 +02:00
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
chriseth
e5ab68ed71 Use unknown file for invalid source index. 2021-07-12 17:35:49 +02:00
Christian Parpart
f129a3498c Use shared DebugData for when using source locations from comments. 2021-07-09 11:50:50 +02:00
Christian Parpart
5e4868d5d6 Adapted tests due to more precise Yul source locations.
Also added support for -1 source index, referencing original scanner's source location.
2021-07-09 11:50:48 +02:00
Christian Parpart
132fa46faa Yul: Adds parsing @src comment in AsmParser to customize the AST's sourcer locations. 2021-07-09 11:48:00 +02:00
Christian Parpart
43cde4e175 Adds missing include header (for DebugData). 2021-07-09 11:46:59 +02:00
Christian Parpart
f9f32c910d Fix source location for `if` statements. 2021-07-07 17:37:01 +02:00
chriseth
8d5e82b406 Fix source location of builtin function calls. 2021-07-06 16:54:29 +02:00
Alex Beregszaszi
847e30e6ff Optimise libevmasm in yul 2021-07-05 13:46:53 +02:00
Daniel Kirchner
c341445f8e Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00