Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Kirchner 0e5f7efdf1 Force disable stack-to-memory in old code generation ABIv2 code. 2021-09-14 19:06:32 +02:00
Daniel Kirchner 48ba4e33c6 Add optimizer setting for fuzzing. 2021-09-14 19:01:12 +02:00
Daniel Kirchner 7e061db811 Update tests. 2021-09-14 15:54:24 +02:00
Daniel Kirchner c39e650f35 Use index into m_asm->items() to modify free memory push. 2021-09-14 15:54:24 +02:00
Daniel Kirchner 6993a89c8b Allow stack limit evasion in system yul routines during old code generation. 2021-09-14 15:54:24 +02:00
Daniel Kirchner 1f35d8cc98 Compatibility with StackCompressor and StackLimitEvader. 2021-09-14 15:53:01 +02:00
Daniel Kirchner 1286e4aae7 Enable the new code generator for "system" inline assembly routines. 2021-09-14 15:53:01 +02:00
Daniel Kirchner 76f1416d61 A first stack shuffling unit test. 2021-09-14 15:53:01 +02:00
Daniel Kirchner c006f15507 Enable for IR code generation with stack optimization > homestead. 2021-09-14 15:53:01 +02:00
Daniel Kirchner 854b8b65b5 Better source locations in Yul ControlFlowGraph and OptimizedEVMCodeTransform. 2021-09-14 13:43:16 +02:00
Daniel Kirchner 75c3286311 Optimized EVM Code Transform. 2021-09-14 13:37:04 +02:00
Daniel Kirchner dea1b9ec79 Merge pull request #11920 from ethereum/update-comment-fixedpoint-example
User defined value type: changes in documentation and test case
2021-09-09 17:38:37 +02:00
Daniel Kirchner 8e0ce2d9ba Merge pull request #11911 from ethereum/rematSelectorVariableOrder
Change RematCandidateSelector to not depend on variable name sorting.
2021-09-08 19:09:59 +02:00
Daniel Kirchner c499f27a63 Change RematCandidateSelector to not depend on variable name sorting. 2021-09-08 15:41:40 +02:00
Daniel Kirchner d512f7a4fd Merge pull request #11890 from ethereum/stackLayoutGeneratorReportTooDeep
Report stack too deep and conditional stack compression in StackLayoutGenerator.
2021-09-08 10:28:30 +02:00
Daniel Kirchner d0ce6433d9 Merge pull request #11894 from ethereum/builtinExpressionVisit
Remove expression visit function from Yul Builtins.
2021-09-06 17:49:40 +02:00
Daniel Kirchner a683ea7646 Remove the expression callback from the code generator functions of Yul builtins. 2021-09-06 17:07:53 +02:00
Daniel Kirchner e022ba1bfb Report stack too deep and conditionally aggressively compress stack in StackLayoutGenerator. 2021-09-06 09:08:04 +02:00
Daniel Kirchner 646421fee1 Allow the Rematerializer to be restricted to an exact set of variables. 2021-09-03 15:29:51 +02:00
Daniel Kirchner 8447b32d52 Merge pull request #11861 from ethereum/smt_value
[SMTChecker] Support `value` in CHC for external function calls
2021-09-03 14:00:21 +02:00
Daniel Kirchner d384664dcb Merge pull request #11615 from ethereum/yulStackLayoutGenerator
Yul Stack Layout Generator (New Code Transform Step 2)
2021-09-03 13:13:18 +02:00
Daniel Kirchner f881409ea4 Stack layout generator for new code generation. 2021-09-02 17:47:19 +02:00
Daniel Kirchner f4effe966e Merge pull request #11824 from ethereum/yulControlFlowGraphRecursiveCalls
Mark recursive calls in yul control flow graph.
2021-09-01 15:18:04 +02:00
Daniel Kirchner c82f9b9fab Mark recursive calls in yul control flow graph. 2021-08-19 16:54:43 +02:00
Daniel Kirchner 729db521a9 Merge pull request #11812 from ethereum/addMissingHeader
Add missing header.
2021-08-17 16:45:33 +02:00
Daniel Kirchner f609288cba Add missing header. 2021-08-17 16:04:38 +02:00
Daniel Kirchner 9f2885e173 Disabling of prepublish hook is no longer needed in setup_solcjs
See https://github.com/ethereum/solc-js/pull/542
2021-08-16 16:50:31 +02:00
Daniel Kirchner 4fdf7db02e Merge pull request #11796 from ethereum/smt_fix_develop
Fix SMT test develop
2021-08-12 23:15:21 +02:00
Daniel Kirchner 13b4e15e1c Merge pull request #11789 from ethereum/updateReleasePPAScript
Add hirsute to release_ppa script.
2021-08-12 13:15:02 +02:00
Daniel Kirchner f7e9263cea Add hirsute and impish to and remove groovy from release_ppa script. 2021-08-11 17:00:02 +02:00
Daniel Kirchner e28d00a76d Merge pull request #11763 from ethereum/basefee-hasOpcode
Allow basefee as Yul identifier for EVMVersion < london
2021-08-11 14:14:21 +02:00
Daniel Kirchner 7b5595b0ad Merge pull request #11775 from ethereum/docs-resources
[DOCS] Update resources.rst
2021-08-11 11:43:10 +02:00
Daniel Kirchner 990a072fe5 Merge pull request #11782 from ethereum/smt_show_unproved_flag
[SMTChecker] Make show unproved CLI a flag
2021-08-11 11:35:24 +02:00
Daniel Kirchner 6ec711b2f0 Merge pull request #11667 from ethereum/z3PPAScriptUpdate
Update Z3 version to 4.8.12 in PPA script and add static binary package.
2021-08-09 12:06:57 +02:00
Daniel Kirchner 88b5be4224 Update Z3 version to 4.8.12 in PPA script and add static binary package. 2021-08-09 11:14:03 +02:00
Daniel Kirchner 3d26d47d46 Merge pull request #11525 from ethereum/yulControlFlowGraph
Yul control flow graph (OptimizedEVMCodeTransform Step 1)
2021-07-15 16:03:39 +02:00
Daniel Kirchner f3707f2ab0 Control flow graph for Yul. 2021-07-15 15:24:12 +02:00
Daniel Kirchner 0a6fc89da2 Fix negation function name collision. 2021-07-08 10:47:29 +02:00
Daniel Kirchner c341445f8e Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00
Daniel Kirchner 17d69e2b99 Changelog entries. 2021-06-28 18:11:57 +02:00
Daniel Kirchner bc288aacf5 Have the stack optimization in the code transform only reuse slots that are reachable and fix argument slot reuse on functions without return variables. 2021-06-28 18:11:57 +02:00
Daniel Kirchner dfce7b667d Move function arguments and return values. 2021-06-28 18:11:57 +02:00
Daniel Kirchner cc0169ad68 Function definition collector. 2021-06-28 18:11:57 +02:00
Daniel Kirchner 98e7b61a37 Merge pull request #11510 from ethereum/removeNondeterministicTest
Remove potentially non-deterministic test case.
2021-06-09 15:42:08 +02:00
Daniel Kirchner 284e8a103f Remove potentially non-deterministic test case. 2021-06-09 14:42:16 +02:00
Daniel Kirchner 1638b21072 Merge pull request #11485 from ethereum/changelogForMod
Changelog entry for modifier fix.
2021-06-03 23:25:56 +02:00
Daniel Kirchner 9be57546db Merge pull request #11470 from ethereum/cacheVirtualLookup
Cache functions by name.
2021-06-03 11:51:08 +02:00
Daniel Kirchner 324caef53c Merge pull request #11286 from ethereum/evmc8
Upgrade to EVMC 8.0.0 + evmone 0.7.0
2021-05-13 18:32:01 +02:00
Daniel Kirchner 3494476abd Merge pull request #11372 from ethereum/evmc8DockerImages
Update evmone and boost download links in docker images.
2021-05-13 18:31:52 +02:00
Daniel Kirchner 7073198adb Update docker image hashes in CircleCI config. 2021-05-12 16:56:23 +02:00
Daniel Kirchner 98e2b4e5ed Merge pull request #11374 from ethereum/semanticTestVMLoadingAndFailures
Change loading of VMs and error messages during test.
2021-05-12 16:47:16 +02:00
Daniel Kirchner 06a9199967 Change loading of VMs and error messages during test. 2021-05-12 14:48:37 +02:00
Daniel Kirchner c7f321c12d Update evmone and boost download links in docker images. 2021-05-10 13:25:39 +02:00
Daniel Kirchner 5e8abec3e9 Merge pull request #11370 from ethereum/fixWindowsBuilds
Change windows boost binary download URL.
2021-05-10 12:20:40 +02:00
Daniel Kirchner 452c17c15e Change windows boost binary download URL. 2021-05-10 11:30:11 +02:00
Daniel Kirchner 5d070c5bc2 Merge pull request #11357 from ethereum/rangesImport
Remove more imports of ranges namespace.
2021-05-07 16:21:20 +02:00
Daniel Kirchner 6104ac1cdf Remove more imports of ranges namespace. 2021-05-07 15:42:17 +02:00
Daniel Kirchner c69add1682 Remove import of ranges namespace. 2021-05-07 13:44:14 +02:00
Daniel Kirchner f9b23ca845 Merge pull request #11247 from ethereum/setValueForCurrentScopeHelper
Add SetValueForCurrentScope helper.
2021-04-16 12:42:25 +02:00
Daniel Kirchner afae46dcb5 Add ScopedSaveAndRestore helper. 2021-04-16 10:56:56 +02:00
Daniel Kirchner cb85285ac6 Merge pull request #11258 from ethereum/less-verbose-bytecode-comparison-output-in-ci
Less verbose bytecode comparison output in CI
2021-04-16 10:22:51 +02:00
Daniel Kirchner 5bebbca273 Extract VariableReferenceCounter and StackTooDeep error from EVMCodeTransform. 2021-04-13 10:41:16 +02:00
Daniel Kirchner 6fdfd8b62b Fix import path grammar and grammar testing details. 2021-04-12 14:54:36 +02:00
Daniel Kirchner 96c8123b6b Use unbounded allocation before returning. 2021-04-08 18:37:24 +02:00
Daniel Kirchner 6fc4b04d1d Update test expectations. 2021-04-06 13:41:26 +02:00
Daniel Kirchner 35c2eeab68 Restrict to only popping, but not reusing argument slots, as well as only freeing up until the return slots are allocated. 2021-04-06 13:38:06 +02:00
Daniel Kirchner 4b0f8383a6 Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform. 2021-04-06 13:38:05 +02:00
Daniel Kirchner 04a051d380 Add test cases for return slot allocation. 2021-04-06 13:31:22 +02:00
Daniel Kirchner 8b3095920a Inline ordinary jumps to small blocks and jumps to terminating control flow. 2021-03-24 13:50:24 +01:00
Daniel Kirchner 7170c8ac60 Merge pull request #11109 from ethereum/inlinerHeuristicsFix
Fix small bug in inliner heuristics.
2021-03-16 14:09:26 +01:00
Daniel Kirchner d5281877cc Fix inliner heuristics. 2021-03-15 20:31:56 +01:00
Daniel Kirchner 8f56c6ad5c Add missing header to Algorithms.h. 2021-03-15 13:50:24 +01:00
Daniel Kirchner 1265b39904 Merge pull request #11095 from ethereum/fixGcc8
Fix compilation error with GCC 8.
2021-03-12 13:25:25 +01:00
Daniel Kirchner 6d19a25705 Fix compilation error with GCC 8. 2021-03-12 12:28:18 +01:00
Daniel Kirchner a75424eec4 Drop support for evm15 and eip-615. 2021-03-09 15:56:03 +01:00
Daniel Kirchner e99da7e015 Extract StackReuseCodegen tests. 2021-03-09 15:47:24 +01:00
Daniel Kirchner acd3084076 Fuzzer for stack optimiser/code generator. 2021-03-04 17:35:56 +01:00
Daniel Kirchner 5a59fde073 Documentation of the inliner in the old optimizer. 2021-02-10 09:14:05 +01:00
Daniel Kirchner cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
Daniel Kirchner 8a414d3fab Merge pull request #10838 from ethereum/solc-bin-bytecode-comparison-pr-check-scripts
Bytecode comparison PR scripts for solc-bin
2021-02-04 11:40:56 +01:00
Daniel Kirchner 5faefdea65 Merge pull request #10893 from ethereum/string2BytesSol2Yul
[Sol->Yul] Fixing string calldata to bytes calldata conversion.
2021-02-04 10:33:40 +01:00
Daniel Kirchner 9bf88d5459 Merge pull request #10791 from ethereum/committer-date-in-prerelease-txt-on-windows
Use committer date in CI build version strings on Windows
2021-01-15 20:12:04 +01:00
Daniel Kirchner cee8ae75c8 Set default build type, if none was specified. 2021-01-14 10:22:50 +01:00
Daniel Kirchner f34d7120a2 Add and use mapTuple helper. 2021-01-13 17:23:27 +01:00
Daniel Kirchner b5bb802a93 Fix undefined behaviour on 32-bit platforms in swarm hash. 2021-01-13 15:52:58 +01:00
Daniel Kirchner 91cdb606a5 Some style review suggestions. 2021-01-13 12:43:38 +01:00
Daniel Kirchner 804bd8f6dd Switch to new emscripten docker image. 2021-01-13 02:22:09 +01:00
Daniel Kirchner 10c742ed0a Update emscripten build to be compatible with new docker image. 2021-01-13 01:09:34 +01:00
Daniel Kirchner d0c8c79888 Update emscripten docker image to be based on emscripten 2.0.12 and boost 1.75.0. 2021-01-13 00:33:03 +01:00
Daniel Kirchner 4505889481 Replace ranges::all_of wrapper by range-v3. 2021-01-12 21:44:42 +01:00
Daniel Kirchner 75bed10be5 Check for scopes in LoadResolver. 2021-01-12 21:41:51 +01:00
Daniel Kirchner eb035147d2 Rephrase erasure condition in DataFlowAnalyzer. 2021-01-12 21:40:52 +01:00
Daniel Kirchner 3ed55613ba Add and use cxx20::ranges::all_of. 2021-01-12 21:40:52 +01:00
Daniel Kirchner 970e8064bb Clear variables, but not backreferences in popScope. 2021-01-12 21:40:52 +01:00
Daniel Kirchner 7fe03cbab0 Implement cxx20 polyfill and replace InvertibleMap entirely. 2021-01-12 21:40:40 +01:00
Daniel Kirchner 625d402dbb Various optimizations for the DataFlowAnalyzer. 2021-01-12 21:39:20 +01:00
Daniel Kirchner 162b1508da Merge pull request #10744 from ethereum/useDropEx
Use drop_exactly.
2021-01-12 17:11:54 +01:00
Daniel Kirchner f5adaa8bbb Add valueOrNullptr and valueOrDefault utilities. 2021-01-12 13:13:03 +01:00
Daniel Kirchner eac2bcf72f Add range-v3. 2021-01-11 18:44:55 +01:00
Daniel Kirchner 308549f950 Simplify test and add Changelog entry. 2021-01-06 11:33:08 +01:00