Commit Graph
972 Commits
Author SHA1 Message Date
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
Daniel a9f8a77817 Merge pull request #13709 from ChrisXXXXXXX/patch-2
Separate node for every `if` and `case` body in the Yul CFG
2022-12-01 17:04:41 +01:00
ChrisXXXXXXX feade14fd6 Update ControlFlowSideEffectsCollector.cpp
There are errors in the function void ControlFlowBuilder::operator()(If const& _if) and function void ControlFlowBuilder::operator()(Switch const& _switch) when calculating CFG.
1. In the function void ControlFlowBuilder::operator()(If const& _if), the if.condion block is not the same block as the if.then block. The original code is calculated as one same block.
2. The switch.expression block are not the same block as all the cases block in cases, the original code is calculated as one same block.
This can cause some potential problems during the optimization phase.
2022-12-01 16:06:02 +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
Daniel eb2f874eac Merge pull request #13733 from ethereum/eofSetting
Add experimental EOF options for CLI and Standard JSON.
2022-11-23 20:37:24 +01:00
Daniel KirchnerandKamil Śliwak 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
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 5ba8c109f4 Use side-effects of user defined functions in evm code transform. 2022-11-14 21:26:36 +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
chriseth c42d577fc0 Cache literal to number conversion. 2022-11-08 12:29:00 +01:00
Alexander Arlt b7abcb25ae [libevmasm] Add Assembly::OptimiserSettings::translateSettings. 2022-10-26 14:11:59 +02: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
Alex Beregszaszi 8230022e18 Remove unused include of boost/variant 2022-09-27 03:27:37 +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 KirchnerandKamil Śliwak a33da17300 Bugfix and tests.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-09-08 11:54:14 +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
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
Kamil Śliwak 4c85cb880e Merge pull request #13238 from ethereum/improve-stack-too-deep-message
Improved stack too deep message when compiled without --optimize
2022-07-06 12:43:36 +02:00
Matheus Aguiar 290bd4fd2d Added a flag to record when a source is reconstructed from JSON so garbage code snippets are not printed after source location. 2022-07-05 11:41:24 -03:00
hrkrshnn 0b2a670a94 Improved stack too deep message when compiled without --optimize 2022-07-03 14:03:00 +02:00
chriseth 51ef6a62da Fix removal of memory stores in inline assembly blocks. 2022-06-10 17:32:28 +02:00
Christian Parpart 4ae43884d0 Apply a better way to annotate unreachability to the C++ compiler. 2022-06-07 16:41:04 +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
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
hrkrshnn 5ae17c8e65 Recommend via-ir whenever a stack too deep error is encountered. 2022-05-05 19:22:03 +02:00
a3d4 048b253a93 Refix MSVC Debug crash 2022-04-26 01:52:56 +02:00
Joshua Quinones e1a59397c6 Renamed AssemblyStack to YulStack
All files, references, variables, comments, etc. were renamed to YulStack.
2022-04-08 20:28:55 +02:00
Kamil Śliwak 3c5930dd8e Put arguments in parantheses in assert macro definitions 2022-04-06 22:26:21 +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