Commit Graph
284 Commits
Author SHA1 Message Date
chriseth a3e816e198 Merge pull request #6807 from ethereum/storageKnowledge
Knowledge about storage and memory.
2019-06-24 14:09:21 +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 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
chriseth ecab46c707 Finish word size transform. 2019-06-20 10:42:56 +02:00
chriseth d4a6844e64 Merge pull request #6970 from ethereum/ewasmBoilerplate
Some eWasm boilerplate code.
2019-06-19 19:12:48 +02:00
chriseth d9d1c4a312 Merge pull request #6967 from ethereum/nameDisplacer
[Yul] Name displacer.
2019-06-19 18:56:54 +02:00
chriseth b704abdd75 Some eWasm boilerplate code. 2019-06-19 18:21:58 +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 5675b742ec Merge pull request #6960 from ethereum/fixAsmParser
Asm Parser: Properly consider tokens when checking for clashes with builtins.
2019-06-19 10:57:46 +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
chriseth 211cd2a0b3 Fix Asm parser. 2019-06-18 18:54:34 +02:00
chriseth aed979604c Fix unused pruner. 2019-06-18 17:40:18 +02:00
chriseth 6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
Daniel Kirchner 6368cd4c82 AsmParser: disallow trailing commas in function call arguments. 2019-06-06 13:16:27 +02:00
Christian Parpart b80cc42a7c yul: AsmPrinter fix when appending type name but no type-name is available. 2019-06-05 11:57:16 +02:00
chriseth c9e2d388b5 Merge pull request #6848 from ethereum/invertibleRelation
Implement references using InvertibleRelation as data structure.
2019-05-29 13:34:10 +02:00
chriseth a3f721bbcc Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
chriseth 2276b567b1 Merge pull request #6840 from ethereum/discoverMSize
Only remove msize-modifying instructions if msize is not used.
2019-05-28 13:16:55 +02:00
Bhargava Shastry dbae0fa939 Reset Yul string repository before each compilation. 2019-05-28 13:12:39 +02:00
chriseth d7b5ea6761 Allow msize optimization only if it is not present. 2019-05-28 12:54:32 +02:00
chriseth afe887adc1 Split MovableChecker and introduce SideEffectsUpToMSize. 2019-05-28 12:54:32 +02:00
chriseth cee1340113 Add mini-interpreter to check representation. 2019-05-28 11:35:07 +02:00
chriseth 1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth 4407af53b5 Gas meter for Yul expressions. 2019-05-28 11:34:47 +02:00
chriseth 4061ad0a7b Implement references using InvertibleRelation as data structure. 2019-05-27 22:55:59 +02:00
chriseth e5902c58a4 Merge pull request #6777 from sifmelcara/loop-cond-rewriter
[YulOpt] Implement ForLoopConditionIntoBody
2019-05-23 12:51:51 +02:00
chriseth 8569c2bba7 Merge pull request #6819 from ethereum/noRecursiveRematCompressor
Do not rematerialize recursively.
2019-05-23 12:49:23 +02:00
chriseth 0f146ce55a Do not rematerialize recursively. 2019-05-23 12:03:39 +02:00
chriseth 97fa21841d Use different way to fall back to FunctionalInstruction for loose assembly. 2019-05-23 11:30:12 +02:00
chriseth 9a00729ce7 Provide dialect to Parser and InlineAssembly AST nodes. 2019-05-23 00:24:58 +02:00
chriseth fb2b3bb2b9 Reduce misleading stack height error message. 2019-05-23 00:24:58 +02:00
chriseth 1e3878121a Do not inline recursive functions. 2019-05-22 18:15:21 +02:00
mingchuan a86b00e8d0 [YulOpt] Implement ForLoopConditionIntoBody 2019-05-22 21:32:18 +08:00
chriseth 1dc15d5864 Modify parser and optimizer. 2019-05-20 17:32:56 +02:00
chriseth 46d9df7574 Add EVM opcodes as builtins. 2019-05-20 16:46:31 +02:00
chriseth 003c170989 Add EVM instructions as builtin functions. 2019-05-20 16:46:31 +02:00
chriseth 8daa281d3d Merge pull request #6776 from ethereum/equivalentFunctionHashes
Use block hashes in EquivalentFunctionDetector.
2019-05-20 14:35:39 +02:00
chriseth 0731abd3f6 Merge pull request #6782 from ethereum/makeVectorEWasmCodeTransform
Use make_vector in EWasmCodeTransform.
2019-05-20 13:07:56 +02:00
Daniel Kirchner 39670abe4d Use make_vector in EWasmCodeTransform. 2019-05-17 14:13:43 +02:00
chriseth 4f3b7b232b Merge pull request #6774 from ethereum/dialectRefactor
Dialect refactor
2019-05-17 14:00:09 +02:00
chriseth 4bdb981224 Make dialect const& and allocate single instances statically. 2019-05-17 12:54:24 +02:00
Daniel Kirchner 05c210772a Make use of make_vector where possible. 2019-05-17 10:08:53 +02:00
Daniel Kirchner 3c66a56e60 Use block hashes in EquivalentFunctionDetector. 2019-05-17 08:39:42 +02:00
chriseth 570db164c9 Make Dialect const. 2019-05-16 21:51:54 +02:00
chriseth 9a387380b3 Move generation of builtin functions to helper. 2019-05-16 21:51:54 +02:00
chriseth 7de150924c Extract subIDs from Dialect to allow it being const. 2019-05-16 21:51:54 +02:00