Commit Graph
3827 Commits
Author SHA1 Message Date
Daniel Kirchner 3c9f18b749 Use IRVariable's in IR code generation and implement tuples. 2020-02-12 12:36:14 +01:00
Daniel Kirchner e786650bef Merge pull request #8274 from ethereum/structRecursionMapping
Move mapping key checks to ReferencesResolver and make errors fatal.
2020-02-12 11:19:07 +01:00
chriseth 0e100e7e7e Merge pull request #8267 from ghallak/prune-unnecessary-funcs
[Yul] Prune functions that call each other but are otherwise unreferenced
2020-02-12 11:09:27 +01:00
Gaith Hallak 24d6702986 [Yul] Prune functions that call each other but are otherwise unreferenced 2020-02-11 20:39:32 +03:00
Mathias Baumann 80bd0f47cc Unify optimize yul code in CompilerContext/ContractCompiler 2020-02-11 13:55:47 +01:00
Mathias Baumann 1a3998648c Run yul optimizer on user code without refs 2020-02-11 13:55:47 +01:00
Daniel Kirchner 9c3151748e Move mapping key checks to ReferencesResolver and make them fatal. 2020-02-11 13:35:23 +01:00
Bhargava Shastry 79f1917422 yul proto fuzzer: Refactor dataoffset/size specification 2020-02-11 13:58:36 +05:30
chriseth d033c2f767 Merge pull request #8178 from ethereum/internal_revert_strings
Internal reverts with reason in debug mode
2020-02-10 17:35:41 +01:00
chriseth db2eece7fc Merge pull request #8273 from ethereum/fix-8271
yul proto fuzzer: Support boolean literal generation
2020-02-10 17:35:09 +01:00
Bhargava Shastry 59e7206c8f yul proto fuzzer: Support boolean literal generation 2020-02-10 20:48:29 +05:30
Leonardo Alt 36928c7a35 Add reason string for internal reverts 2020-02-10 11:57:20 -03:00
a3d4 e3d6a3e44e Updated expectations. 2020-02-09 17:29:13 +01:00
chriseth 92c9b078b4 Use correct instance of EVMDialectTyped. 2020-02-06 19:46:37 +01:00
chriseth 4ae97f4563 Make dialect option lowercase. 2020-02-06 19:46:37 +01:00
chriseth f0ebb26f29 Merge pull request #8223 from imapp-pl/yul-phaser-program-reuse
[yul-phaser] Program reuse
2020-02-06 13:29:44 +01:00
Daniel Kirchner e07274a96f Disallow libraries as mapping keys. 2020-02-06 09:09:43 +01:00
cameel e4c7b73897 [yul-phaser] Store already loaded program in Population and make copies when computing fitness
- Until now the source code was being parsed during every fitness computation. Now the parsed program is reused and only the optimisation steps are applied each time.
2020-02-06 09:01:10 +01:00
cameel 57fb64d467 [yul-phaser] Make Program copyable by doing a deep copy of the AST in the copy constructor 2020-02-06 09:01:10 +01:00
cameel 33cf4e4769 [yul-phaser] Tests for Population class 2020-02-05 18:13:30 +01:00
cameel ccaff1b08e [yul-phaser] Tests for random number generators 2020-02-05 18:13:30 +01:00
cameel 24d63a93cf [yul-phaser] Tests for Program class 2020-02-05 18:13:30 +01:00
cameel bee62cdd9e [yul-phaser] Tests for Chromosome class 2020-02-05 18:13:30 +01:00
cameel f8e397b487 [yul-phaser] Create test suite for Chromosome 2020-02-05 18:13:30 +01:00
chriseth 5de3379d82 Merge pull request #8238 from ethereum/yul-syntax-tests
Implement yul syntax tests
2020-02-05 15:15:41 +01:00
Mathias Baumann fc10e701fc Implement yul syntax tests 2020-02-05 14:58:34 +01:00
Mathias Baumann ef07fc3066 Fix formatting 2020-02-05 13:22:15 +01:00
chriseth 0b9c842656 Fix abstract without contract. 2020-02-05 12:14:14 +01:00
chriseth 527c011c2e Update tests. 2020-02-04 22:51:33 +01:00
chriseth 48933df18d Add some missing wasm functions. 2020-02-04 22:44:08 +01:00
chriseth a7624ffc45 Implement i32 builtins for the interpreter. 2020-02-04 22:44:08 +01:00
chriseth 7cca036f4c Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
alex 3416c029cf Relaxed assert in AsmJsonImporter::createAsmNode. 2020-02-04 20:37:51 +01:00
chriseth cafad3770d Update tests. 2020-02-04 18:27:01 +01:00
chriseth 9f0cef97c2 Specify default type for word size transform externally. 2020-02-04 18:13:37 +01:00
Daniel Kirchner d882b6fa83 Allow tests to be marked ABIEncoderV1Only. 2020-02-04 17:22:03 +01:00
Daniel Kirchner af9fc8b634 Mapping getters for Yul IR. 2020-02-04 17:22:03 +01:00
Daniel Kirchner d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
alex 211227f50b Modified SourceLocation::hasText() to allow empty source. 2020-02-04 04:19:28 +01:00
cameel 5fbc4d4afa [yulopti] Automate printing of the usage banner
- This now displays internal step names rather than human-readable ones but the internal ones are readable enough and it's not something worth creating another map.
- Options in the banner are now aligned in columns and thus easier to read.
2020-02-03 12:22:47 +01:00
cameel 4129c27495 [yulopti] Replace hard-coded step list with OptimiserSuite's maps 2020-02-03 12:22:47 +01:00
alex e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
chriseth 2098dbade9 Merge pull request #7834 from ethereum/docstring-ast-node
[natspec] Introduce AST node for structured documentation
2020-01-30 19:04:52 +01:00
Erik Kundt 4a179056ed Adds JSON import / export for structured documentation. 2020-01-30 18:26:01 +01:00
Erik Kundt ec27c2e507 Introduce AST node for structured documentation. 2020-01-30 18:25:56 +01:00
chriseth 2afcfec77b Merge pull request #8220 from ethereum/remove-var-name-cleaner-from-optimiser-suite-step-list
Remove var name cleaner from optimiser suite step list
2020-01-30 17:58:43 +01:00
cameel ed5210490d [yulopti] Run disambiguator after VarNameCleaner
- This is a trivial change and it makes it safe to use in combination with other step.
2020-01-30 17:35:27 +01:00
chriseth d41e1db74a Adjust and add commandline tests for yul. 2020-01-29 19:10:53 +01:00
chriseth d3b53ee394 Make bool type optional for bool literals. 2020-01-29 19:01:28 +01:00
chriseth a66782537a Use old yul dialect only in tests. 2020-01-29 19:01:28 +01:00