Commit Graph
348 Commits
Author SHA1 Message Date
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
chriseth 0df8a38e55 Support metadata via IR. 2021-06-21 18:20:31 +02:00
chriseth fe35512feb Remove EVMAssembly. 2021-06-08 18:41:22 +02:00
TerranCivilian c15501eea9 Remove unneeded include files 2021-06-07 12:53:18 -04:00
chriseth f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00
Djordje Mijovic e404b6e7a6 Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
Alex Beregszaszi 176ce4edf7 Split EthAssemblyAdapter from AsmCodeGen 2021-04-27 11:31:15 +01:00
chriseth cb1af8b88a Make verbatim compatible with KnownState. 2021-04-26 19:56:44 +02:00
chriseth e2d8005737 Add verbatim builtin. 2021-04-26 19:56:44 +02:00
Alexander Arlt fc7fb3cb7d [ewasm] Polyfill: callvalue, gasprice & difficulty. 2021-04-23 15:54:10 +01:00
hrkrshnn 011f8d3ff7 Changed the type of gas calculation to bigint instead of size_t
Since the gas calculation can involve multiplication by ``--optimize-runs``, it is possible that
`size_t` is not enough to represent the total gas.
2021-04-22 18:19:47 +02:00
hrkrshnn 94f9410abe Added hashFunction to Dialect. For EVMDialect, it is keccak256
In a later PR, the functions `storageLoadFunction`, `storageStoreFunctions`, etc will be refactored
to return a YulString instead of a pointer to a BuiltinFunction.
2021-04-22 17:27:57 +02:00
hrkrshnn dd6300a53e GasMeter can now account for gas of Keccak-256 2021-04-22 17:27:57 +02:00
hrkrshnn 1f5b874eaf Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
Daniel Kirchner 5bebbca273 Extract VariableReferenceCounter and StackTooDeep error from EVMCodeTransform. 2021-04-13 10:41:16 +02:00
chriseth 2856f56525 Merge pull request #10942 from ethereum/returnSlotAllocation
Delayed return slot allocation.
2021-04-08 16:42:07 +02:00
anurag4u80 b2ca7916aa Replaced boost::adaptors::transformed 2021-04-08 17:38:14 +05:30
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
anurag4u80 bbcdddeed9 Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
hrkrshnn 6d9e9e1b1e Fix small bug in GasMeter calculation in creation context
Old calculation did not ignore `optimize-runs` parameter, when creation code gas computations were
done. This would lead to expanding values such as `shl(180, 1)` inside constructor code, even for
the default value for `--optimize-runs`, i.e., 200.
2021-03-17 12:33:10 +01:00
Daniel Kirchner a75424eec4 Drop support for evm15 and eip-615. 2021-03-09 15:56:03 +01:00
Mathias Baumann e4f1257c83 Yul Backend: Get rid of heuristics for finding the matching runtime 2021-02-09 14:50:25 +01:00
Alexander Arlt 87e3fbee6c [ewasm] Polyfill: balance & address. 2021-01-19 13:03:40 -05:00
Alexander Arlt 321e971eb3 [ewasm] Add support for hera debugging module. 2021-01-18 20:06:12 -05:00
Alex Beregszaszi 0425936c8a Rename AsmScope* to Scope* 2020-12-18 11:55:17 +00:00
Alex Beregszaszi 9230faf9a3 Simplify StackTooDeepError in Yul 2020-12-16 20:35:11 +00:00
Alex Beregszaszi 3a687c34e4 Add reservedIdentifier to dialect 2020-12-10 17:10:38 +01:00
chriseth 806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi 7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth 329b8f2a60 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 13:04:14 +01:00
Daniel Kirchner 96a50b52e2 Add storage load/store functions to Yul dialect. 2020-12-03 19:10:05 +01:00
chriseth 9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
chriseth e10712c173 Merge pull request #10454 from ethereum/ewasm-cleanup
[ewasm] Clean up some builtins and fix text representation of `select`
2020-12-01 17:34:48 +01:00
chriseth 8279d90ba2 Merge pull request #10403 from ethereum/rename-asmdata
Rename AsmData* to AST*
2020-12-01 14:33:11 +01:00
Alex Beregszaszi 04cf4867fe [ewasm] Clean up opcodes/builtins in the binary encoder
Also make sure that `i32.drop/i64.drop` won't silently drop its arguments, as they may have side-effects.
2020-12-01 12:50:54 +00:00
Alex Beregszaszi a29a7ad680 [ewasm] Properly encode i32/i64.select in the text format 2020-12-01 11:22:38 +00:00
chriseth 6de7eaba95 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-01 10:50:13 +01:00
Alex Beregszaszi a7ee1355bd [ewasm] Use select instruction where appropriate 2020-11-30 12:10:32 +00:00
Alex Beregszaszi 9640cfd77e [ewasm] Add i32.select/i64.select 2020-11-30 11:58:33 +00:00
Alex Beregszaszi 06af2fb38a [ewasm] Change eq() in polyfill to branch-less version 2020-11-27 22:47:55 +00:00
Alex Beregszaszi a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
chriseth a0a02f2307 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-23 19:28:08 +01:00
Alex Beregszaszi f76ac0a753 [wasm] Document what StringLiteral is 2020-11-20 21:16:56 +00:00
Alexander Arlt 9d6296eca4 [ewasm] Polyfill: calldataload & calldatacopy. 2020-11-20 13:46:04 -05:00
chriseth a7db4fa4a5 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-18 20:05:02 +01:00
Alexander Arlt c0d28492c3 [ewasm] Polyfill: Rename endian_swap -> bswap. 2020-11-17 21:30:06 -05:00
Alexander Arlt 19f764bf65 Split ewasm polyfill functions into different files. 2020-11-17 19:27:44 -05:00
chriseth 0a31a6bc36 Merge pull request #10258 from ethereum/develop
Merge develop into breaking.
2020-11-11 13:36:17 +01:00
Alex Beregszaszi 6f6bcdd526 [ewasm] Display custom sections as hex string in the text output 2020-11-10 23:48:24 +01:00