Commit Graph

444 Commits

Author SHA1 Message Date
chriseth
0bb233f1c0 implement inves 2022-12-20 14:58:35 +01:00
chriseth
fff91b676d Merge branch 'new_knowledge_engine' into benchmark 2022-12-19 16:19:31 +01:00
chriseth
c85a1058f6 Pull out the variable query. 2022-12-19 15:00:24 +01:00
chriseth
11e7c5e813 Rename local variable. 2022-12-19 14:34:49 +01:00
chriseth
984258dc64 Remove outdated comments. 2022-12-19 14:34:09 +01:00
chriseth
bc127bcc6d Take non-continuing control-flow into account. 2022-12-19 14:34:08 +01:00
chriseth
90a147d371 Update documentation. 2022-12-19 14:34:08 +01:00
chriseth
c7bb117d50 Fix spelling. 2022-12-19 14:34:08 +01:00
chriseth
f3bc7157df fix 2022-12-19 14:34:08 +01:00
chriseth
ddf1d023bd fix it again 2022-12-19 14:34:08 +01:00
chriseth
d89c5638f0 more work 2022-12-19 14:34:08 +01:00
chriseth
dc584fe2f1 improved loop 2022-12-19 14:34:08 +01:00
chriseth
1013419597 returndatacopy and bugfix. 2022-12-19 14:34:08 +01:00
chriseth
b09a8c62bb unused store 2022-12-19 14:34:08 +01:00
chriseth
ddbcea047b some more work 2022-12-19 14:34:08 +01:00
chriseth
bd7676873e modify unused store 2022-12-19 14:34:08 +01: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
135f965488 Review fixes. 2022-11-30 10:21:02 +01:00
chriseth
f5f3eaacb9
Apply suggestions from code review
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
2022-11-30 10:07:31 +01:00
chriseth
5c85818f50
Update libyul/optimiser/KnowledgeBase.cpp
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
2022-11-30 10:06:44 +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
chriseth
53a44bd5ae Review changes. 2022-11-23 14:01:03 +01:00
chriseth
2d028e3507 Bugfix. 2022-11-23 14:01:03 +01:00
chriseth
94fad23bd0 Optimize in case this is SSA. 2022-11-23 14:01:03 +01:00
chriseth
5efe31cd7c Keep one instance of KnowledgeBase for UnusedStoreEliminator. 2022-11-23 14:01:03 +01:00
chriseth
ec8cd56c4f Re-implement KnowledgeBase using groups of constantly-spaced variables. 2022-11-23 14:01:03 +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