Commit Graph
692 Commits
Author SHA1 Message Date
chriseth 76d7ea888b Document differences between legacy Solidity and Solidity via Yul. 2019-07-11 17:48:06 +02:00
chriseth 869d69d293 Supply full object to stack compressor and Optimizer Suite. 2019-07-10 18:49:42 +02:00
Mathias Baumann d264e3e0ba [Sol->Yul] Implement getter functions 2019-07-10 13:42:39 +02:00
Mathias Baumann 37f04976a2 [Sol->Yul] Implement keccak256 2019-07-09 18:25:07 +02:00
chriseth 15eb8fec50 Merge pull request #7015 from ethereum/sol-yul-arrays
[Sol->Yul] Implement uint256[] memory arrays
2019-07-09 17:34:46 +02:00
Mathias Baumann 0f24fcea17 [Sol->Yul] Implement uint256[] memory arrays 2019-07-09 15:36:02 +02:00
djudjuu cafa01cbf6 moved SuffixHelper to StringUtils 2019-07-09 13:50:07 +02:00
Mathias Baumann 3e51d14c6d Fix missing int -> string conversion 2019-07-04 09:31:24 +02:00
chriseth cdd137e3d1 Support constant numbers in inline assembly. 2019-07-02 14:01:05 +02:00
chriseth fe9aa59b8f Fix conversion during storing. 2019-06-25 13:00:02 +02:00
Mathias Baumann 0e812b16c2 Minor indent fix 2019-06-24 14:51:04 +02:00
chriseth 9c129a4087 Merge pull request #6984 from ethereum/yul-reindent
yul: adds reindent() function to reindent yul source code and makes us of it in IRGenerator
2019-06-24 12:54:40 +02:00
Christian Parpart 0fd1db533e yul: adds reindent() function to reindent yul source code and makes use of it in IRGenerator.
This function does count curly and round braces and reindents
accordingly the beginning of each line.

It does consider line-comments (// and ///) but not multiline comments (/* ... */).
2019-06-24 12:53:50 +02:00
chriseth 350631ae0d Merge pull request #6940 from ethereum/sol-yul-storage-array-index
[Sol->Yul] Implement index access for storage arrays
2019-06-24 12:49:19 +02:00
Mathias Baumann 1dd63f416e [Sol->Yul] Implement index access for storage arrays 2019-06-20 16:14:51 +02:00
Mathias Baumann 346c512cd7 [Sol->Yul] Implement _slot/_offset suffix for storage variables 2019-06-20 14:50:52 +02:00
chriseth 9bb7160c4c Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-20 13:08:42 +02:00
Daniel Kirchner fcd3410f26 Implement checked mod for sol->yul code generation. 2019-06-20 12:30:32 +02:00
Daniel Kirchner a5b9f634ef Implement signed multiplication for sol->yul code generation. 2019-06-20 12:30:30 +02:00
Daniel Kirchner e4c884ae13 Unify style of checked integer division for sol->yul code generation. 2019-06-20 12:18:18 +02:00
Daniel Kirchner 5f6af8b374 Implement signed subtraction for sol->yul code generation. 2019-06-20 12:16:56 +02:00
Daniel Kirchner 88988af561 Implement signed addition for sol->yul code generation. 2019-06-20 11:42:50 +02:00
Mathias Baumann b03cb2bce6 YulUtilFuncs: Add missing/adjust existing documentation 2019-06-19 18:09:23 +02:00
Mathias Baumann 910cb8d329 [Sol->Yul] Implement .length for storage arrays 2019-06-19 18:09:23 +02:00
Mathias Baumann c5b50039d2 [Sol->Yul] Report error after Ir code
this way less scrolling is required
2019-06-19 18:09:23 +02:00
mingchuan ae273ff3bd Move code that access calldata array element to separate function 2019-06-19 17:26:35 +08:00
mingchuan 492f945973 Coding style fix 2019-06-19 17:26:34 +08:00
chriseth cc5045a56e [Yul] Run optimizer on all dialects. 2019-06-19 10:01:16 +02:00
mingchuan bfe074b2b1 Fix storage array abi encoding
Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
2019-06-19 10:46:05 +08:00
chriseth 6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
Mathias Baumann 8ca27c2bb0 [Sol->Yul] Style fixes
addresses the points @chriseth mentioned in #6909
2019-06-17 15:26:40 +02:00
Mathias Baumann 6a0976ed5e [Sol->Yul] Refactor shift functions to be consistent 2019-06-11 17:44:36 +02:00
Mathias Baumann 89c435a167 [Sol->Yul] Make IRStorageItem work with dynamic offsets 2019-06-11 17:44:36 +02:00
Daniel Kirchner 2dbdddc7e5 Fix argument count for require with message and string literals. 2019-06-06 13:17:08 +02:00
chriseth c3cdae908d Merge pull request #6767 from ethereum/constantOptimiserForYul
[Yul] Constant optimiser
2019-05-28 11:53:04 +02:00
chriseth b95eebee1c Merge pull request #6822 from ethereum/uninitializedLoadFromStorage
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
2019-05-28 11:48:56 +02:00
chriseth 1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth fbf189151d [SolYul] Division. 2019-05-27 17:53:46 +02:00
chriseth 5b1a984882 Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage. 2019-05-27 17:26:37 +02:00
chriseth a600126703 Merge pull request #6833 from sifmelcara/fix-struct-array-mapping
Fix assignment of struct containing array of mappings
2019-05-27 11:14:28 +02:00
mingchuan bf8af89bba Fix assignment of struct containing array of mappings 2019-05-25 01:33:49 +08:00
chriseth fb40063253 Compound assignment. 2019-05-23 21:32:30 +02:00
Mathias Baumann 981983089c [Sol -> Yul] Implement delete for function pointers 2019-05-23 15:51:59 +02:00
Mathias Baumann 81702717b0 [Sol -> Yul] Enable function pointer comparison 2019-05-23 12:52:50 +02:00
chriseth 97fa21841d Use different way to fall back to FunctionalInstruction for loose assembly. 2019-05-23 11:30:12 +02:00
chriseth e324deabd6 Merge pull request #6740 from ethereum/unary-ops
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
2019-05-20 18:06:01 +02:00
Daniel Kirchner b6f4d4e9bc [Sol - Yul] Implement checked multiplication. 2019-05-20 17:36:53 +02:00
Mathias Baumann 86000fdcce [Sol -> Yul] Implement unary -, + 2019-05-20 16:14:46 +02:00
Mathias Baumann 7dbcb80523 [Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, ! 2019-05-20 11:43:12 +02:00
chriseth f2ae30f620 Fix handling of structs of dynamic size as constructor parameters. 2019-05-16 17:10:54 +02:00