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
826ada0b96
Merge pull request #13705 from ethereum/onlyCountVariables
...
Only count variables if only variables are needed.
2022-11-25 14:20:07 +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
chriseth
5ba8c109f4
Use side-effects of user defined functions in evm code transform.
2022-11-14 21:26:36 +01:00
chriseth
f1febf69d0
Only count variables if only variables are needed.
2022-11-14 10:24:28 +01:00
Marenz
9e674ba047
Forward declare Instruction enum in EVMVersion
2022-09-29 13:41:58 +02:00
Nikola Matic
1f6a299062
Add a check for unqualified move
2022-09-05 16:05:14 +02:00
Marenz
f7cc29bec1
Add std:: qualifier to move() calls
2022-08-30 11:12:15 +02:00
Marenz
f508494f52
Fix undefined order of evaluation
2022-08-29 15:33:25 +02:00
hrkrshnn
0b2a670a94
Improved stack too deep message when compiled without --optimize
2022-07-03 14:03:00 +02:00
Kamil Śliwak
539e139555
Add explicit throws after some assertions to work around a spurious warning in GCC 12.1
2022-06-01 20:37:48 +02:00
hrkrshnn
5ae17c8e65
Recommend via-ir
whenever a stack too deep error is encountered.
2022-05-05 19:22:03 +02: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
9410e125da
Change memory-safe assembly annotation suggestion during stack too deep errors.
2022-03-14 11:54:09 +01:00
Daniel Kirchner
ce0a3e93f2
Store whether an evmasm Assembly is creation code.
2022-03-09 17:42:29 +01:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
...
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:23:08 +01:00
chriseth
4f19d68ee9
Merge pull request #12620 from ethereum/assemblyAnnotation
...
Memory-safety annotation for inline assembly.
2022-03-07 12:48:41 +01:00
Daniel Kirchner
dfb7bf2853
Report memoryguard in stack too deep error.
2022-03-02 16:42:28 +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
chriseth
9a0821f2c3
Fix warning about reference.
2021-12-16 00:12:19 +01:00
Marenz
49b4e77d6b
Prevent crash when translating yul->ewasm with @use-src annotations
2021-11-11 13:43:57 +01:00
chriseth
929ed094ce
Register functions earlier.
2021-11-04 13:48:11 +01:00
chriseth
99aa18c4f3
Refactor: Only return output.
2021-11-04 13:42:50 +01:00
Daniel Kirchner
28ae316556
Named function labels.
2021-11-03 12:42:07 +01:00
Daniel Kirchner
b2c9b69de2
Enable for IR code generation with stack optimization > homestead.
2021-11-03 12:39:55 +01:00
chriseth
9f48b7419c
Do not use named function labels if function names are not unique.
2021-10-19 18:33:00 +02:00
chriseth
9417d6775f
Control flow side-effects for user-defined functions.
2021-10-14 17:46:07 +02:00
Kamil Śliwak
2cd1c644b6
Remove unused includes and sort existing includes in a few places
2021-10-11 20:34:48 +02:00
chriseth
1531863835
Split Common.h into Numeric.h.
2021-09-23 15:27:29 +02:00
chriseth
c8e6ef9657
Merge pull request #12004 from ethereum/disambiguateBytesRequired
...
Disambiguate bytesRequired
2021-09-23 15:25:44 +02:00
Kamil Śliwak
ce4420f857
Separate DebugData fields for Solidity and Yul source locations
2021-09-22 13:11:39 +02:00
chriseth
50ce1f5ddd
Disambiguate bytesRequired
2021-09-22 11:22:07 +02:00
chriseth
e6f0fe8ae3
Use source id in yul to evm code transform.
2021-09-22 11:11:51 +02:00
chriseth
a66e6f08c0
Merge pull request #11951 from ethereum/scopeFillerNullptr
...
Use locationOf helper instead of accessing debugData directly.
2021-09-14 15:43:01 +02:00
Daniel Kirchner
854b8b65b5
Better source locations in Yul ControlFlowGraph and OptimizedEVMCodeTransform.
2021-09-14 13:43:16 +02:00
Daniel Kirchner
75c3286311
Optimized EVM Code Transform.
2021-09-14 13:37:04 +02:00
Daniel Kirchner
7abc55d89a
Use locationOf helper instead of accessing debugData directly.
2021-09-14 10:04:09 +02:00
Daniel Kirchner
d512f7a4fd
Merge pull request #11890 from ethereum/stackLayoutGeneratorReportTooDeep
...
Report stack too deep and conditional stack compression in StackLayoutGenerator.
2021-09-08 10:28:30 +02:00
Daniel Kirchner
a683ea7646
Remove the expression callback from the code generator functions of Yul builtins.
2021-09-06 17:07:53 +02:00
Daniel Kirchner
e022ba1bfb
Report stack too deep and conditionally aggressively compress stack in StackLayoutGenerator.
2021-09-06 09:08:04 +02:00
Daniel Kirchner
d384664dcb
Merge pull request #11615 from ethereum/yulStackLayoutGenerator
...
Yul Stack Layout Generator (New Code Transform Step 2)
2021-09-03 13:13:18 +02:00
chriseth
7f137d352a
Merge pull request #11869 from ethereum/remodelUseSrc
...
Allow and require use-src to be repeated for each object.
2021-09-02 18:34:07 +02:00
Daniel Kirchner
f881409ea4
Stack layout generator for new code generation.
2021-09-02 17:47:19 +02:00
chriseth
5caa15879b
Allow and require use-src to be repeated for each object.
2021-09-02 11:29:42 +02:00
Daniel Kirchner
c82f9b9fab
Mark recursive calls in yul control flow graph.
2021-08-19 16:54:43 +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