54 Commits
Author SHA1 Message Date
chriseth fb06451f45 Add assertion that DeadCodeEliminator needs ForLoopInitRewriter. 2019-04-15 23:26:56 +02:00
Leonardo dbc9442f9c Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
Add a shortcut for formatting error information
2019-04-12 12:34:08 +02:00
mingchuan d49733dfc3 Fix variable decl scope issue in DeadCodeEliminator
FoorLoopInitRewriter needs to be run before DeadCodeEliminator.
2019-04-10 19:00:29 +08:00
mingchuan f1374066af Add shortcuts for formatting error information 2019-04-10 18:44:45 +08:00
chriseth e3d7a34c2c Make yul a setting. 2019-04-03 14:58:20 +02:00
Mathias Baumann e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
chriseth 3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
chriseth 8514c0bc60 Provide max iterations for stack compressor as parameter. 2019-03-20 15:07:05 +01:00
chriseth 38cbf8d230 Pass "optimize stack allocation" flag down to the stack compressor. 2019-03-20 15:03:27 +01:00
Christian Parpart 609855546e Yul: Adds optimizer pass to make variable names suffix-canonical. 2019-03-04 17:26:56 +01:00
chriseth 7f5b335b47 Make EVM version part of EVM dialect. 2019-02-21 21:59:46 +01:00
chriseth a344381d5e Provide access to AssemblyStack's AST. 2019-02-13 14:19:56 +01:00
chriseth 91d224dfb6 Merge pull request #5966 from ethereum/AnsiColorized
Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR)
2019-02-11 16:41:14 +01:00
Christian Parpart 53f9be8a23 Adapts tests/ to use AnsiColorized (the generalized/moved version of FormattedScope, which in turn is removed in this PR) 2019-02-11 16:00:24 +01:00
chriseth 83083d2208 Stack compressor. 2019-02-11 15:48:29 +01:00
chriseth b34e104173 Make dialect a shared pointer. 2019-02-11 15:48:29 +01:00
Daniel Kirchner 29f66b2674 Stabilize SSAReverser. 2019-01-17 21:05:32 +01:00
Daniel Kirchner 6de2d92f20 Add SSAReverser to the yul optimiser. 2019-01-17 20:37:43 +01:00
Daniel Kirchner 81f24f24e6 Add equivalent function combiner as Yul optimizer step. 2019-01-15 17:21:03 +01:00
chriseth 5b73c2ae3b Take special functions that require literals into account. 2019-01-07 17:23:38 +01:00
chriseth 9222eff08f Make the dialect available everywhere. 2019-01-07 16:41:03 +01:00
chriseth 2e9c70add0 Use rematerializer if variable is unreferenced or value is "cheap". 2019-01-07 14:03:32 +01:00
chriseth bc22a25a60 Remove VarDeclPropagator. 2018-12-13 16:51:10 +01:00
chriseth 11209ec48a Add variable declaration initializer. 2018-12-13 16:49:04 +01:00
chriseth fb3a0ac1c7 Codegen for object access. 2018-12-11 19:24:44 +01:00
Daniel Kirchner 1eb60cbb39 Add structural simplifier as optimization step for Yul. 2018-12-06 18:37:35 +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
chriseth 99db4e3ff4 Introduce the concept of builtin functions. 2018-12-04 12:06:33 +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
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
Daniel Kirchner 74557ceb0e Deterministic YulStringRepository using string hashes. 2018-11-12 23:43:16 +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
Christian Parpart f08ab77249 Yul: Implements empty-var-decl-propagation 2018-10-26 13:13:57 +02:00
chriseth 60f1d52f59 Full suite tests. 2018-10-24 18:02:08 +02:00
chriseth b3911798b3 Redundant assign eliminator. 2018-10-24 13:24:25 +02:00
chriseth c676b009e1 Merge pull request #5267 from ethereum/ssatransform
SSA transform - first step.
2018-10-19 11:10:08 +02:00
chriseth 465845b7a7 SSA transform - first step. 2018-10-18 18:56:22 +02:00
chriseth b2725aa913 Make full inliner more flexible. 2018-10-18 14:57:09 +02:00
chriseth 732d09cef1 Limit size of generated names and add convenience constructors. 2018-10-17 17:21:55 +02:00
chriseth e2e4a9fe81 New full inliner. 2018-10-16 17:16:03 +02:00
chriseth ffe44536fe Add a "full simplify" test that applies multiple elementary transforms. 2018-10-16 16:18:39 +02:00