Commit Graph
76 Commits
Author SHA1 Message Date
chriseth bf7d71d6b3 Merge pull request #5613 from ethereum/yulStringLiterals
[Yul] Use C++ user-defined literals for creating YulString constants.
2018-12-17 14:07:24 +01:00
chriseth bc22a25a60 Remove VarDeclPropagator. 2018-12-13 16:51:10 +01:00
chriseth 6c6a53a439 Do not create unassigned variables. 2018-12-13 16:51:10 +01:00
chriseth 11209ec48a Add variable declaration initializer. 2018-12-13 16:49:04 +01:00
chriseth b11d413720 Consider return variables to be zero initially. 2018-12-13 16:02:30 +01:00
chriseth 60a368244a Do not inline into already big functions. 2018-12-13 12:12:54 +01:00
Daniel Kirchner 5ac7620045 Use C++ user-defined literals for creating YulString constants. 2018-12-12 18:45:43 +01:00
chriseth 9557dd7e74 Support unassigned variables in the SSA value tracker and the data flow analyzer. 2018-12-12 18:06:28 +01:00
chriseth fb3a0ac1c7 Codegen for object access. 2018-12-11 19:24:44 +01:00
chriseth b05d33d771 Tests for stack reusing code generator. 2018-12-10 14:28:56 +01:00
Daniel Kirchner 1eb60cbb39 Add structural simplifier as optimization step for Yul. 2018-12-06 18:37:35 +01:00
chriseth b7cfa499b0 Add tests. 2018-12-06 14:43:14 +01:00
chriseth 0e8841005c Merge pull request #5554 from ethereum/cp-SourceReferenceFormatter-refactor
[2/3] Refactor SourceReferenceFormatter (split-out data extraction & make use of new SourceLocation knowledge)
2018-12-06 14:01:39 +01:00
Christian Parpart 073b03d90c liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge 2018-12-06 14:01:01 +01:00
Mathias Baumann f4e9c70ecc Tests for SSAValueTracker ignoring function call on rhs 2018-12-05 18:01:41 +01:00
Mathias Baumann 5d31ad2daf Test for unhandled default values in expression simplifier 2018-12-05 11:43:02 +01:00
chriseth 852297fa2f Builtin functions for yul analysis. 2018-12-04 14:50:00 +01:00
chriseth c3fc2da763 Tests for parser for builtins. 2018-12-04 14:49:16 +01:00
chriseth 961026347d Use dialect option in yul parser tests. 2018-12-04 14:49:16 +01:00
chriseth 8654f8f6d4 Merge pull request #5573 from ethereum/builtins
[Yul] Introduce the concept of builtin functions.
2018-12-04 14:11:49 +01:00
Daniel Kirchner 1b8a013d4a Properly recurse in ForLoopInitRewriter 2018-12-04 13:36:25 +01:00
chriseth 99db4e3ff4 Introduce the concept of builtin functions. 2018-12-04 12:06:33 +01:00
chriseth 7698b0b63f Do not stop if there is more than one error. 2018-12-04 11:37:03 +01:00
Christian Parpart 435f7b3b72 liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
2018-11-30 17:07:17 +01:00
Christian Parpart 22eff22492 liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it) 2018-11-29 12:45:27 +01:00
chriseth 105898b81b Tests. 2018-11-27 15:59:57 +01:00
chriseth 0b474d5299 Merge pull request #5497 from ethereum/langutil-SourceReferenceFormatter
Moving SourceReferenceFormatter into langutil namespace.
2018-11-26 12:44:25 +01:00
Lazaridis 56d5dd4668 decouple TestCase class from test/libsolidity 2018-11-25 02:34:59 +02:00
Christian Parpart aeb66905de Moving SourceReferenceFormatter into langutil namespace. 2018-11-24 12:33:36 +01:00
Christian Parpart ec47c8946b Isolating libyul library API into its own namespace yul. 2018-11-23 14:29:00 +01:00
Christian Parpart 713d94476e Reorder some include files and group <libyul/>'s together (as much as possible) 2018-11-23 12:37:19 +01:00
Christian Parpart 0f4ed52a71 Rewrite header paths to adapt to recent git mv of libsolidity/inlineasm to libyul 2018-11-23 11:18:57 +01:00
Christian Parpart d67322a186 Introduce namespace langutil in liblangutil directory.
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart 87821c53c3 Isolating files shared between Yul- and Solidity language frontend. 2018-11-21 18:58:12 +00:00
Christian Parpart f705a45d43 [Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block. 2018-11-16 13:15:41 +01:00
chriseth 2e025cf917 Update tests. 2018-11-13 13:33:33 +01:00
chriseth 9c6048b0b8 Merge pull request #5333 from ethereum/joinPerformance
[Yul] Use map join algorithm for performance.
2018-11-13 12:15:11 +01:00
Daniel Kirchner 74557ceb0e Deterministic YulStringRepository using string hashes. 2018-11-12 23:43:16 +01:00
chriseth b1454433b2 Remove variables that go out of scope from data structure. 2018-11-12 23:00:37 +01:00
chriseth faa7b61d76 Use map join algorithm for performance. 2018-11-12 23:00:37 +01:00
chriseth af65bac737 Remove trailing whitespace. 2018-11-12 09:15:22 +01:00
chriseth 9709dfe046 Merge pull request #5128 from ethereum/breakUnbreak
[Yul] Test case that shows that break / unbreak are more or less inverse
2018-11-09 16:07:20 +01:00
chriseth 0f2ba3522f Reset yul string repository. 2018-11-09 15:40:36 +01:00
chriseth 5ea514213a Test case that shows that break/unbreak are more or less inverse. 2018-11-09 15:36:52 +01:00
chriseth fa44d20721 Remove side-effect-free statements. 2018-11-08 18:14:36 +01:00
chriseth cd11f7cfac Merge pull request #5325 from ethereum/fixDataFlow
[Yul] Fix data flow analyzer for function definitions.
2018-11-08 12:52:51 +01:00
chriseth 845899e305 Use single counter for name dispenser for performance reasons. 2018-11-07 23:09:33 +01:00
chriseth b2b11eaa00 Fix data flow analyzer for function definitions. 2018-11-07 20:32:55 +01:00
chriseth 674e17c2a8 Performance: Replace string by special single-copy YulString class. 2018-11-07 19:30:27 +01:00
Christian Parpart f08ab77249 Yul: Implements empty-var-decl-propagation 2018-10-26 13:13:57 +02:00