Commit Graph
1255 Commits
Author SHA1 Message Date
Djordje Mijovic 49fcda7048 Adding additional interface to yul function collector. 2021-03-15 20:27:16 +01:00
chriseth 5e94fce7df Provide selector for some internal functions. 2021-03-01 16:19:59 +01:00
chriseth 16db3a84f1 Fix call graph with respect to constants. 2021-02-25 16:00:53 +01:00
chriseth 5e9637bc39 Mapping access with multi-slot keys. 2021-02-24 13:44:23 +01:00
chriseth 2d48052ae5 Merge pull request #11003 from ethereum/ir-bug-incorrect-return-variable-count
Fix IR bug on deleting storage variables of function type.
2021-02-24 13:24:31 +01:00
hrkrshnn 2c2c7a4473 Fix IR bug on deleting storage variables of function type.
Calling the zeroing function assumed that the stack slots needed for the type was always 1. This is
false for function types.
2021-02-24 12:43:33 +01:00
chriseth e33c058a60 Merge pull request #10896 from ethereum/issue-10870
Fix issue with pop on storage array.
2021-02-23 17:49:17 +01:00
chriseth 596e8dd9b6 Merge pull request #10959 from ethereum/assert-too-strict
Loosened up a really strict assert from ABIFunctions.cpp
2021-02-23 14:59:14 +01:00
Alexander Arlt ae6996efc1 Fix issue with pop on storage array. 2021-02-23 14:26:55 +01:00
chriseth 7d0ecd9406 Merge pull request #10535 from ethereum/removeNumbers
Improve generated names.
2021-02-23 13:29:18 +01:00
chriseth d586b7b57a Merge pull request #10991 from ethereum/bareCallNoReturndatacopy
[Sol->Yul] Fix bare call wihout returndatacopy.
2021-02-23 13:24:50 +01:00
Kamil Śliwak 781f00771c Remove IRGenerator::verifyCallGraphs and make generate() verify the graphs automatically 2021-02-23 10:47:02 +01:00
Kamil Śliwak 6c28120f19 Move CallGraph structure to a separate module 2021-02-23 10:47:02 +01:00
Mathias Baumann 4c283f00c1 Add IRGenerator::verifyCallGraphs() 2021-02-23 10:46:28 +01:00
chriseth e9b3dd21d0 Fix bare call wihout returndatacopy. 2021-02-23 10:45:01 +01:00
Mathias Baumann 64d14b4cc4 IRNames::function(): Return correct name if the function is a constructor 2021-02-23 10:29:12 +01:00
Mathias Baumann 8bacf03ffe MultiUseYulFunctionCollector::requestedFunctions(): Refactor the loop to use destructuring 2021-02-23 10:29:12 +01:00
Alexander Arlt c44bb7e7ef Replace raw throw with BOOST_THROW_EXCEPTION. 2021-02-18 20:23:59 -05:00
hrkrshnn 2608c56d32 Make an assert less strict
Even though one can convert from, say, a pure function to a function without a state mutability
specified, in ABIFunctions.cpp, there was an assert that checked if the types were exactly equal.
This assert had to be loosened up.
2021-02-17 17:12:02 +01:00
chriseth 54cf56b3a5 Simplify generated names. 2021-02-16 14:20:27 +01:00
hrkrshnn 0135cae222 Fix IR bug: constructor parameter that needs multiple stack slots
When an argument had multiple stack slots, like `function() external`, there wasn't enough variables
assigned for the constructor. This lead to some mismatch between return values and arguments between
some functions.
2021-02-12 17:42:02 +01:00
hrkrshnn 7786e6d561 Fix IR bug when modifier parameter was function return variable
The bug was that function return variables were not part of the m_context.localVariable during
the modifier generation and a looking up them was throwing.
2021-02-11 14:44:55 +01:00
chriseth 1716dcfb57 Merge pull request #10950 from ethereum/removeChecks
[SolYul] Remove (hopefully) unnecessary checks.
2021-02-11 14:10:05 +01:00
chriseth 45dc705683 Remove unnecessary checks. 2021-02-11 13:08:03 +01:00
Harikrishnan Mulackal 215233d5c8 Merge pull request #10945 from ethereum/constructor-modifier-bugfix
Fix IR bug about calling the wrong modifier during construction
2021-02-10 21:42:45 +01:00
hrkrshnn 2f30fdaa21 Fix IR bug about calling the wrong modifier during construction 2021-02-10 20:53:11 +01:00
chriseth a72ab1c9c1 Replace "runtime" by "deployed" naming. 2021-02-10 00:56:16 +01:00
chriseth 9a621e91e3 Merge pull request #10761 from ethereum/oldOptimizerInlining
Simple inlining for old optimizer.
2021-02-09 19:35:12 +01:00
Daniel Kirchner cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
Djordje Mijovic 9438706daf [Sol->Yul] Adding assertion for shift amount not being of FixedPointType. 2021-02-09 17:58:49 +01:00
Djordje Mijovic 993c8c0734 [Sol->Yul] Adding unimplemented assert for fixed point types on right shift. 2021-02-09 16:17:56 +01:00
Đorđe Mijović 4fd5643970 Merge pull request #10912 from ethereum/calldataLValueSol2Yul
[Sol->Yul] Check lvalue kind is stack in case of calldata.
2021-02-08 14:19:24 +01:00
Djordje Mijovic e53feaedc4 [Sol->Yul] Check lvalue kind is stack in case of calldata. 2021-02-08 13:27:51 +01:00
chriseth 8a876c8f79 Merge pull request #10911 from ethereum/fixedPointAssertionSol2Yul
[Sol->Yul] Adding unimplemented assert for fixed point type shifting.
2021-02-08 13:20:57 +01:00
Djordje Mijovic 97e9829988 [Sol->Yul] Adding unimplemented assert for fixed point type shifting. 2021-02-08 13:13:19 +01:00
Djordje Mijovic 706f5d9874 [Sol2Yul] Fixing setLValue for calldata types. 2021-02-08 12:42:10 +01:00
Djordje Mijovic 530435439d [Sol->Yul] Fixing string calldata to bytes calldata conversion. 2021-02-04 09:30:19 +01:00
chriseth e9dc9c5baf Fix merge conflict. 2021-01-26 13:53:22 +01:00
chriseth 4697beeab2 Merge pull request #10769 from ethereum/allocationCleanup
Cleanup allocation.
2021-01-26 11:58:11 +01:00
hrkrshnn 526ceec152 Implement IR shortcut for <address>.code.length 2021-01-26 11:07:04 +01:00
hrkrshnn d6d880dc53 Old codegen: implemented shortcut for <address>.code.length 2021-01-26 11:07:04 +01:00
Alexander Arlt 061fecbc90 [whiskers] Add check that template contain tags. 2021-01-20 15:26:34 -05:00
chriseth 3cc07694ed Cleanup allocation. 2021-01-20 18:25:27 +01:00
chriseth 1fcc76a562 Fix empty packed encoder. 2021-01-19 15:50:04 +01:00
Leonardo 9bde92ca20 Merge pull request #10807 from ethereum/fixIRReasonStrings
Properly omit require revert strings in IR code generator if requested.
2021-01-19 10:31:15 +01:00
chriseth a3ee334b42 Omit require revert strings in IR code generator. 2021-01-18 18:47:55 +01:00
chriseth 4f3839e4ba Fix abi encode with signature shortcut. 2021-01-18 13:44:52 +01:00
Djordje Mijovic a0c80c2bdb [Sol->Yul] Enabling copying_bytes_multiassign test via ir. 2021-01-18 12:40:51 +01:00
chriseth db4b39e09e Round up allocations to multiples of 32. 2021-01-14 21:52:17 +00:00
chriseth 7d6331e26f Use round up function. 2021-01-14 21:01:43 +00:00