chriseth
fac5666dc9
Re-implement unused assign / unused store eliminator.
2023-03-20 13:49:37 +01:00
chriseth
29e4becd73
Introduce helpers for VariableOffset.
2023-02-09 16:44:36 +01:00
chriseth
3ac6edec5b
Apply suggestions from code review
2023-02-09 10:47:12 +01:00
chriseth
eec258c2d2
Bugfix.
2023-02-09 10:47:12 +01:00
chriseth
6bbef64034
Optimize in case this is SSA.
2023-02-09 10:47:12 +01:00
chriseth
96e2a6d3fe
Keep one instance of KnowledgeBase for UnusedStoreEliminator.
2023-02-09 10:47:12 +01:00
chriseth
47aa1c65ae
Re-implement KnowledgeBase using groups of constantly-spaced variables.
2023-02-09 10:47:11 +01:00
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
79c52b3c9e
Re-use knowledge about keccak calls.
...
Re-use knowledge about keccak calls.
Update gas cost.
More tests.
Fix bug.
Update libyul/optimiser/DataFlowAnalyzer.cpp
Remove util prefixes
fix test
More test cases.
Add Changelog entry
2022-12-07 14:16:13 +01: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
Nikola Matić
be8ecb17d8
Merge pull request #13703 from ethereum/performance_metrics
...
Code to output performance metrics for optimizer steps.
2022-11-22 13:36:16 -05:00
chriseth
5950ec306b
Code to output performance metrics for optimizer steps.
2022-11-22 18:44:01 +01:00
chriseth
62ab78bf70
Refactor join knowledge.
2022-11-14 11:56:32 +01:00
chriseth
f1febf69d0
Only count variables if only variables are needed.
2022-11-14 10:24:28 +01:00
chriseth
40342264c2
Use hash of candidates for CSE.
2022-11-09 16:57:46 +01:00
chriseth
cffacac9de
Hash number literals according to their value instead of their string representation.
2022-11-08 20:34:10 +01:00
Nikola Matić
b205fe8494
Merge pull request #13501 from ethereum/document-unused-store-eliminator
...
Document UnusedStoreEliminator
2022-10-21 07:06:20 -05:00
Nikola Matic
9e505bd128
Document UnusedStoreEliminator
...
Update comment in header file
Address review comments
2022-10-21 13:19:56 +02:00
Marenz
9e674ba047
Forward declare Instruction enum in EVMVersion
2022-09-29 13:41:58 +02:00
Alex Beregszaszi
0f484ec93b
Replace use of boost::algorithm::all_of with ranges::all_of
2022-09-27 03:33:13 +02:00
Nikola Matic
e37dc8e975
Address review comments
2022-09-13 17:23:31 +02:00
Nikola Matic
314a1cc92f
Command line tests and minor touch ups
2022-09-12 11:13:49 +02:00
Nikola Matic
f6f0d6a360
Make hardcoded parts of the optimizer sequence configurable
2022-09-12 10:57:36 +02:00
Daniel Kirchner
a33da17300
Bugfix and tests.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-09-08 11:54:14 +02:00
Marenz
f7cc29bec1
Add std:: qualifier to move() calls
2022-08-30 11:12:15 +02:00
Daniel Kirchner
e996fe6247
Yul Optimizer: Simplify start offset of zero-length operations.
2022-08-15 15:42:51 +02:00
Leonid Pospelov
32aa000378
Update FullInliner.cpp
2022-08-14 03:14:15 +03:00
chriseth
c12d151834
Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step.
2022-07-11 15:51:25 +02:00
chriseth
51ef6a62da
Fix removal of memory stores in inline assembly blocks.
2022-06-10 17:32:28 +02:00
Daniel Kirchner
7168c27f0d
Relax inliner heuristics.
2022-05-23 13:37:50 +02:00
Daniel Kirchner
9fa907aac2
Do not remove potentially reverting returndatacopy cases.
2022-05-23 11:01:03 +02:00
a3d4
048b253a93
Refix MSVC Debug crash
2022-04-26 01:52:56 +02:00
a3d4
44093f2ed6
Fix MSVC Debug crash
2022-04-06 01:34:58 +02:00
chriseth
a054285f31
Simplify rematerialization candidates.
2022-03-16 16:43:21 +01:00
chriseth
75abe92eb2
Refactor stack compressor.
2022-03-15 21:28:47 +01:00
chriseth
5afa2adec2
Merge pull request #12775 from ethereum/refactorDataFlowAnalyzer
...
Refactor data flow analyzer state access.
2022-03-15 15:52:40 +01:00
chriseth
28593839d9
Add helper to see if a switch has a default case.
2022-03-15 14:29:54 +01:00
chriseth
afdf22f5c7
Create a state struct.
2022-03-14 19:32:33 +01:00
chriseth
eab4ca906c
Refactor data flow analyzer state access.
2022-03-14 19:32:33 +01:00
Tyler
1c58b91075
Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations
2022-03-10 17:39:29 -05:00
chriseth
4f02be110c
Unused store eliminator.
2022-03-10 18:25:28 +01:00
chriseth
6ab31420af
Remove unneeded header files.
2022-03-10 09:55:05 +01:00
Tyler
047034544e
Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations
2022-03-09 18:55:22 -05:00
Tyler
519e1c9402
Specify namespaces
...
Fix references into solidity::util
2022-03-08 00:09:17 -05:00
wechman
52dfccca98
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:23:08 +01:00
chriseth
d118f21417
Merge pull request #12729 from ethereum/splitOutDisassemble
...
Split out disassemble to remove numeric from instruction includes.
2022-03-02 16:18:17 +01:00
chriseth
b0dcd7b915
Split out disassemble to remove numeric from instruction includes.
2022-03-02 15:30:41 +01:00
chriseth
63f0a22c5d
Also save and restore the nesting depth.
2022-03-02 13:49:40 +01:00
hrkrshnn
85d1a57e65
Added more tests. Updated chromosome. Remove unused headers.
2022-01-04 13:27:39 +05:30
chriseth
772e100813
Equal store eliminator.
2022-01-03 15:52:05 +01:00