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
Daniel Kirchner
54ab09fee8
Additional peephole optimizer rules for removing side-effect free instructions before simple terminations.
2022-03-16 15:34:37 +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
b3fe042884
Optimize eq iszero jumpi to xor jumpi and remove double jump.
2022-03-10 14:41:41 +01:00
chriseth
859869c4dd
Simplify peephole optimizer template.
2022-03-09 16:03:57 +01:00
Christian Parpart
b1dd0d0d02
Properly compute source mappings for immutables.
2021-10-12 17:56:17 +02:00
Alexander Arlt
7fcf888fbf
Remove unused AssemblyItemType::PushString.
2021-09-13 18:59:18 +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
chriseth
a783449195
Merge pull request #9362 from ethereum/swappedTagConjunctions
...
Remove unneccessary masking of tags.
2020-07-13 17:35:06 +02:00
chriseth
080f33a72c
Remove swap after dup.
2020-07-13 15:05:01 +02:00
chriseth
d3abbd5610
Remove unneccessary masking of tags.
2020-07-08 20:16:39 +02:00
Djordje Mijovic
e4e3f49844
Fixing signedness conversion warnings in libevmasm
...
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-06-03 13:25:43 +02:00
Christian Parpart
6b23412fae
C++ namespace cleanup (except tests).
2020-01-07 15:51:50 +01:00
chriseth
f2cee9ec0c
Include cleanup.
2019-03-28 14:32:48 +01:00
chriseth
e0d1b2f5b3
Peephole optimizer for "iszero iszero <tag> jumpi".
2019-03-07 15:52:02 +01:00
chriseth
27e4e25a99
Optimize some instruction comparisons.
2018-12-18 17:25:49 +01:00
chriseth
68ad015714
Make swappable instructions static.
2018-12-18 12:39:24 +01:00
Nicolás Venturo
172e208c6a
Add TruthyAnd Peephole optimization
2018-06-15 11:27:39 -03:00
Alex Beregszaszi
02ea0e547f
Replace comparison operators with opposites if preceded by SWAP1
2018-04-04 17:47:58 +02:00
Alex Beregszaszi
17bcabb6cf
Remove useless SWAP1 in front of commutative operations
2018-04-03 18:57:07 +02:00
chriseth
7c94e5462a
Assume peephole optimizer was successful if number of pops increased.
2017-10-13 19:00:56 +02:00
Alex Beregszaszi
7fb4a64136
Move all file specific globals to anonymous namespace
2017-08-29 11:09:18 +01:00
chriseth
e5b0ad562e
Peephole optimizer for double push.
2017-06-14 20:02:45 +02:00
Alex Beregszaszi
148f923351
Add REVERT to libevmasm
2017-02-10 22:40:12 +00:00
Alex Beregszaszi
693226b1ab
Rename SUICIDE opcode to SELFDESTRUCT in libevmasm
2017-02-06 20:17:52 +00:00
chriseth
ae2b59d18a
Fix optimizer with regards to INVALID instruction.
2017-01-26 16:39:07 +01:00
Yoichi Hirai
2d60990238
libevmasm: OpPop() optimization keeps the source location
...
fixes #1521
2016-12-30 13:52:38 +01:00
chriseth
f521624952
Integrate AddPop.
2016-11-25 16:10:57 +01:00
chriseth
612c1726d9
Templatize.
2016-11-25 16:10:02 +01:00
chriseth
f2872bfa99
Peephole optimizer for unreacheable code.
2016-11-25 16:10:02 +01:00
Yoichi Hirai
b6ffb6c8b7
libevmasm: generalize ADDPOP optimization into ADDMODPOP etc
2016-11-24 18:22:22 +01:00
Yoichi Hirai
c0fe5fbe9b
libevmasm: Add another peephole optimization
2016-11-24 18:22:22 +01:00
VoR0220
3f9f725737
Fix licensing headers
...
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
chriseth
390ba085b6
fixup! Simple peephole optimizer that is activated even if not requested.
2016-11-16 14:37:19 +01:00
chriseth
0335ed4cb4
Simple peephole optimizer that is activated even if not requested.
2016-11-16 14:37:19 +01:00