Commit Graph
3055 Commits
Author SHA1 Message Date
chriseth f58bd5551e Test for sign bit chopping. 2019-06-25 13:00:02 +02:00
Mathias Baumann 5f072d30df Enable yul for more end to end tests 2019-06-24 16:06:22 +02:00
chriseth a3e816e198 Merge pull request #6807 from ethereum/storageKnowledge
Knowledge about storage and memory.
2019-06-24 14:09:21 +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
chriseth 5329a84912 Merge pull request #6982 from rocky/error-recovery-spacing-typo
Add missing space in error recovery message.
2019-06-24 12:32:32 +02:00
rocky 8b461be2b0 Add missing space in error recovery message.
Also add a space in the Test Title
2019-06-24 06:28:18 -04:00
Christian Parpart b58170f890 Refactor & Speedups on CircleCI; split out out codecov into dedicated tests. 2019-06-21 20:26:10 +02:00
chriseth 2b979cba38 Also optimize memory. 2019-06-20 18:43:37 +02:00
chriseth 8572600401 Implement knowledge base. 2019-06-20 18:43:37 +02:00
chriseth 1f9d11c644 Knowledge about storage. 2019-06-20 18:43:37 +02:00
Mathias Baumann 1dd63f416e [Sol->Yul] Implement index access for storage arrays 2019-06-20 16:14:51 +02:00
Daniel Kirchner c71fb76bb2 Proofs for the overflow and underflow conditions in checked arithmetic for Sol->Yul code generation. 2019-06-20 15:58:10 +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
chriseth 848959fff0 Merge pull request #6929 from ethereum/solYulBinaryOps
[Sol -> Yul] Checked signed arithmetic and modulo.
2019-06-20 13:02:30 +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 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
chriseth dcb430c09f Merge pull request #6968 from ethereum/completeWordSizeTransform
[Yul] More work on word size transform
2019-06-20 11:38:57 +02:00
chriseth 5b92640ab5 Merge pull request #6972 from ethereum/restrictWhiskersTemplateParams
Restrict whiskers parameters to regular characters.
2019-06-20 11:23:02 +02:00
chriseth ecab46c707 Finish word size transform. 2019-06-20 10:42:56 +02:00
Leonardo Alt 51ba7f5f17 Add CI job for optimization proofs 2019-06-19 22:29:23 +02:00
chriseth fc64de6d90 Merge pull request #6923 from ethereum/sol-yul-storage-array
[Sol->Yul] Implement .length for storage arrays
2019-06-19 19:13:06 +02:00
chriseth d9d1c4a312 Merge pull request #6967 from ethereum/nameDisplacer
[Yul] Name displacer.
2019-06-19 18:56:54 +02:00
chriseth fc6f47e453 Restrict whiskers parameters to regular characters. 2019-06-19 18:46:16 +02:00
Mathias Baumann 910cb8d329 [Sol->Yul] Implement .length for storage arrays 2019-06-19 18:09:23 +02:00
chriseth 8edf9e4baf Merge pull request #6666 from vedant1811/issue-5405
Group function definitions
2019-06-19 18:03:40 +02:00
chriseth d7b366ff46 Name displacer. 2019-06-19 14:55:38 +02:00
chriseth 53f26d9719 Merge pull request #6963 from ethereum/runOptimizerOnAllDialects
[Yul] Run optimizer on all dialects.
2019-06-19 10:51:24 +02:00
chriseth cc5045a56e [Yul] Run optimizer on all dialects. 2019-06-19 10:01:16 +02:00
Vedant Agarwala 5d6cbd97df [Yul] Directly jump over a series of function definitions
Implement a AbstractAssembly::setStackHeight function
Update the tests
Update Changelog
2019-06-19 12:40:11 +08:00
mingchuan 13c1409669 Add test case that abi.encode nested storage arrays 2019-06-19 10:46:47 +08:00
chriseth 56db792ad9 Merge pull request #6876 from rocky/recoveringParser1-StandardCompiler
Add parser errorRecovery (including StandardCompiler)
2019-06-18 22:40:35 +02:00
rocky 1a7e09ab7a Add errorRecovery boolean to StandardCompiler 2019-06-18 15:54:05 -04:00
chriseth 05a67c486e Use "what" in exception reports. 2019-06-18 17:34:10 +02:00
chriseth 6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
rockyandchriseth ca3afea1d7 Add Steve Johnson-style parser recovery rules:
SourceUnit = Error $
    Block = '{' Error '}'
    ContractDefinition = '{' Error '}'
    Statement = Error ';'

Co-Authored-By: chriseth <chris@ethereum.org>
2019-06-17 14:47:07 +02:00
chriseth 633510eb04 Merge pull request #6935 from ethereum/subMaxValueXNotXRule
Add optimization rule SUB(~0, X) -> NOT(X).
2019-06-17 14:42:49 +02:00
chriseth 452a1d6aff Merge pull request #6730 from ethereum/generic-for-loop
For loop with generalized init-cond-post
2019-06-17 10:50:50 +02:00
Daniel Kirchner 5718072e10 Fix comparison opcodes and minor errors in proof scripts. 2019-06-14 17:04:50 +02:00
Daniel Kirchner d3293cf0d0 Correctness proof for SUB(NOT(0),X)->NOT(X). 2019-06-14 14:08:21 +02:00
Daniel Kirchner 4aa0c9e079 Merge pull request #6939 from ethereum/opt_proofs
Move optimization proofs repo to Solidity repo
2019-06-14 14:06:59 +02:00
Bhargava Shastry b5cbb1a3e9 For loop with custom init and post blocks and potentially unbounded conditional expression 2019-06-14 08:46:28 +02:00
Daniel Kirchner 4d38df6920 Set state mutability of function type members `gas and value` to pure. 2019-06-13 18:27:53 +02:00
Leonardo Alt 5089d4ac28 Move optimization proofs repo to Solidity repo 2019-06-13 17:11:48 +02:00
Alex Beregszaszi 668972bb4e Merge pull request #6930 from ethereum/msvc-SolidityEnd2EndTest-BigObj
Fixes compilation on Visual Studio 2019
2019-06-13 01:17:15 +02:00
Christian Parpart 98d852c832 Fixes compilation on Visual Studio 2019 (SolidityEndToEndTest.cpp's object file is too large, so we need a special flag to get it still compiling) 2019-06-12 23:46:32 +02:00
Leonardo d2019f49ea Merge pull request #6906 from ethereum/delegatecall_value_msg
Improve error message for delegatecall.value
2019-06-12 21:14:54 +02:00