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
Alexander Arlt
b7abcb25ae
[libevmasm] Add Assembly::OptimiserSettings::translateSettings.
2022-10-26 14:11:59 +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
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
Daniel Kirchner
06820e1b1e
Remove unused entry point to evmasm Assembly.
2022-03-07 12:14:08 +01:00
Christian Parpart
b1dd0d0d02
Properly compute source mappings for immutables.
2021-10-12 17:56:17 +02:00
Kamil Śliwak
f7c4ed849d
Handle DebugInfoSelection in the code printing Yul and EVM assembly
2021-10-11 20:34:48 +02:00
chriseth
50ce1f5ddd
Disambiguate bytesRequired
2021-09-22 11:22:07 +02:00
chriseth
3fe52d9869
Run the optimizer only once.
2021-09-07 15:06:31 +02:00
Kamil Śliwak
6ad6fa2382
Do not hard-code the default 'runs' value as 200 in code that fills out optimizer settings
2021-06-28 14:12:28 +02:00
chriseth
0df8a38e55
Support metadata via IR.
2021-06-21 18:20:31 +02:00
chriseth
f9c94d7c42
Note function entry points.
2021-05-04 17:15:13 +02:00
chriseth
cb1af8b88a
Make verbatim compatible with KnownState.
2021-04-26 19:56:44 +02:00
chriseth
e2d8005737
Add verbatim builtin.
2021-04-26 19:56:44 +02:00
chriseth
9b20c9840a
Merge pull request #10885 from ethereum/heuristic-revamp
...
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-10 00:49:56 +01:00
Daniel Kirchner
cb74a45fd6
Add inlining for old optimizer.
2021-02-09 19:08:58 +01:00
Mathias Baumann
e4f1257c83
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-09 14:50:25 +01:00
Djordje Mijovic
6f97e6153c
[yul] Adding support for accessing subobjects via .
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
chriseth
1c9179683e
Merge pull request #9433 from ethereum/reportAllStackErrors
...
Report all stack errors
2020-07-20 15:44:51 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
Daniel Kirchner
92cd1ddb7d
Add markAsInvalid to the various assemblies.
2020-07-16 17:38:13 +02:00
chriseth
eb923af09c
Do not set source locations for small internal assembly routines.
2020-05-27 18:26:46 +02:00
chriseth
f92a4f1965
Provide runtime object in Yul mode.
2020-05-18 13:48:23 +02:00
Daniel Kirchner
04d8ad2ae1
Legacy codegeneration for immutable state variables.
2020-03-24 16:45:25 +01:00
Djordje Mijovic
18dea6b69c
Assembly: Added missing source field to legacy assembly json output to complete the source reference
2020-02-18 10:22:34 +01:00
Alex Beregszaszi
9c19b93c37
Remove LLL specific features from libevmasm
2020-01-15 13:27:51 +00:00
Christian Parpart
345f9928ab
Library libdevcore renamed to libsolutil.
2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae
C++ namespace cleanup (except tests).
2020-01-07 15:51:50 +01:00
chriseth
cb2096c82a
Add modifier depth to source mappings.
2019-11-05 16:50:38 +01:00
chriseth
2308904f68
Remove "using namespace" from header and move Instruction to dev::eth.
2019-03-28 13:48:11 +01:00
chriseth
851dd635eb
Remove defaults in constructor arguments.
2019-03-04 11:41:52 +01:00
Alex Beregszaszi
cf5c13f9c7
Introduce global optimiser settings.
2019-03-04 11:40:28 +01:00
Leonardo Alt
2405b2151a
EVMVersion in langutil namespace instead of solidity
2019-02-25 15:29:57 +01:00
chriseth
7f6f958246
Fix: Also replace tags in the list of tags referenced from outside.
2019-02-20 15:06:23 +01:00
Alex Beregszaszi
ae1cd252b0
Take only Assembly instance as an input to ConstantOptimiser
2019-01-31 16:02:29 +00:00
Christian Parpart
62fe57479e
make use of C++ = default
constructor declarations as well as more non-static member initialization syntax.
2018-12-19 11:26:42 +01:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
chriseth
e78b95d9d4
Renamed SHA3.{h,cpp} files.
2018-10-18 14:31:36 +02:00
Alex Beregszaszi
913ddf158f
Group LLL only assembly features in libevmasm
2018-09-26 12:46:03 +01:00
Alex Beregszaszi
535026b492
Group append() functions in libevmasm
2018-09-26 11:14:40 +01:00
Alex Beregszaszi
d569ad91e4
Restrict assembly tags to 32-bit
2018-04-30 18:47:57 +01:00
chriseth
6ec4517929
Use EVM version in gas meter and optimizer.
2018-03-05 11:36:33 +01:00
chriseth
73771f5bb2
Named assembly labels.
2017-09-15 20:44:49 +01:00
Alex Beregszaszi
bbfb16cf5c
Introduce assemblyString
2017-09-11 15:53:20 +01:00
Alex Beregszaszi
50570c6c79
Do not return the stream in asssemblyStream
2017-09-11 15:48:58 +01:00
Alex Beregszaszi
a535a8b06e
Split out the JSON functionality from assembly.stream()
2017-09-11 15:48:52 +01:00
Alex Beregszaszi
55d2a459a9
Mark functions static in libevmasm
2017-09-11 15:15:02 +01:00
Alex Beregszaszi
70e89a5dac
Introduce JumpdestRemover optimisation step
2017-08-25 10:42:36 +01:00