Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Stabilize SSAReverser. | Daniel Kirchner | 2019-01-18 | 5 | -5/+49 |
| | |||||
* | Undo second SSA transformation and add more tests. | Daniel Kirchner | 2019-01-18 | 2 | -29/+74 |
| | |||||
* | Add SSAReverser to the yul optimiser. | Daniel Kirchner | 2019-01-18 | 3 | -3/+135 |
| | |||||
* | libyul: changing some AST members from shared_ptr<> to unique_ptr<> | Christian Parpart | 2019-01-16 | 9 | -34/+52 |
| | | | | | * Some spaces look a little more verbose now, but that shouln't be a problem as it also should raise readability, too. * This makes some use of return-value-optimizations also. | ||||
* | Add equivalent function combiner as Yul optimizer step. | Daniel Kirchner | 2019-01-16 | 9 | -48/+437 |
| | |||||
* | Disallow mismatching types in switch cases and detect duplicates by value ↵ | Daniel Kirchner | 2019-01-15 | 9 | -20/+9 |
| | | | | for number literals. | ||||
* | Avoid explicit conversion from Block to Statement in CodeSize visit. | Daniel Kirchner | 2019-01-11 | 1 | -1/+1 |
| | |||||
* | Adjust inlining thresholds. | chriseth | 2019-01-09 | 2 | -6/+10 |
| | |||||
* | Variables are free with regards to code size. | chriseth | 2019-01-09 | 2 | -3/+22 |
| | |||||
* | Use the block flattener. | chriseth | 2019-01-08 | 1 | -0/+8 |
| | |||||
* | Make function grouper idempotent. | chriseth | 2019-01-08 | 2 | -0/+18 |
| | |||||
* | Take special functions that require literals into account. | chriseth | 2019-01-08 | 6 | -6/+28 |
| | |||||
* | Make the dialect available everywhere. | chriseth | 2019-01-07 | 24 | -80/+151 |
| | |||||
* | Use rematerializer if variable is unreferenced or value is "cheap". | chriseth | 2019-01-07 | 5 | -4/+124 |
| | |||||
* | make use of C++ `= default` constructor declarations as well as more ↵ | Christian Parpart | 2018-12-19 | 1 | -1/+1 |
| | | | | non-static member initialization syntax. | ||||
* | Merge pull request #5613 from ethereum/yulStringLiterals | chriseth | 2018-12-17 | 1 | -2/+2 |
|\ | | | | | [Yul] Use C++ user-defined literals for creating YulString constants. | ||||
| * | Use C++ user-defined literals for creating YulString constants. | Daniel Kirchner | 2018-12-13 | 1 | -2/+2 |
| | | |||||
* | | Remove VarDeclPropagator. | chriseth | 2018-12-13 | 3 | -193/+0 |
| | | |||||
* | | Do not create unassigned variables. | chriseth | 2018-12-13 | 1 | -0/+4 |
| | | |||||
* | | Add variable declaration initializer. | chriseth | 2018-12-13 | 3 | -0/+96 |
| | | |||||
* | | Consider return variables to be zero initially. | chriseth | 2018-12-13 | 3 | -2/+15 |
| | | |||||
* | | Do not inline into already big functions. | chriseth | 2018-12-13 | 4 | -10/+31 |
| | | |||||
* | | Support unassigned variables in the SSA value tracker and the data flow ↵ | chriseth | 2018-12-13 | 4 | -7/+15 |
|/ | | | | analyzer. | ||||
* | Fix compilation for certain combinations of boost and gcc. | Daniel Kirchner | 2018-12-12 | 1 | -1/+1 |
| | |||||
* | Reuse stack slots in Yul to EVM code generation. | liangdzou | 2018-12-10 | 2 | -16/+24 |
| | |||||
* | Add structural simplifier as optimization step for Yul. | Daniel Kirchner | 2018-12-07 | 6 | -4/+204 |
| | |||||
* | SSAValueTracker should only use nullptr for default values | Mathias Baumann | 2018-12-06 | 2 | -1/+3 |
| | |||||
* | Merge pull request #5593 from ethereum/issue-5384 | chriseth | 2018-12-06 | 1 | -1/+2 |
|\ | | | | | Fix expression simplifier asserting on default values | ||||
| * | Fix expression simplifier asserting on default values | Mathias Baumann | 2018-12-05 | 1 | -1/+2 |
| | | |||||
* | | Relax dependency of FullInliner on FunctionHoister. | Daniel Kirchner | 2018-12-05 | 2 | -13/+23 |
|/ | |||||
* | Properly recurse in ForLoopInitRewriter | Daniel Kirchner | 2018-12-04 | 1 | -2/+9 |
| | |||||
* | Remove superfluous libyul/ASTDataForward.h and include libyul/AsmDataForward ↵ | Christian Parpart | 2018-11-23 | 20 | -20/+20 |
| | | | | directly instead. | ||||
* | Isolating libyul library API into its own namespace `yul`. | Christian Parpart | 2018-11-23 | 62 | -154/+51 |
| | |||||
* | Reorder some include files and group <libyul/>'s together (as much as possible) | Christian Parpart | 2018-11-23 | 27 | -30/+1 |
| | |||||
* | Rewrite header paths to adapt to recent `git mv` of libsolidity/inlineasm to ↵ | Christian Parpart | 2018-11-23 | 34 | -37/+37 |
| | | | | libyul | ||||
* | Introduce namespace `langutil` in liblangutil directory. | Christian Parpart | 2018-11-22 | 4 | -1/+4 |
| | | | | | | | 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 | ||||
* | Isolating files shared between Yul- and Solidity language frontend. | Christian Parpart | 2018-11-22 | 1 | -1/+1 |
| | |||||
* | Merge pull request #5444 from Mordax/issue-5168-rmvirtual | Alex Beregszaszi | 2018-11-21 | 15 | -57/+57 |
|\ | | | | | Removing redundant virtual from override function declaration | ||||
| * | Removing redundant virtual from override function declaration | mordax | 2018-11-21 | 15 | -57/+57 |
| | | | | | | | | | | | | Remove trailing whitespace Remove changelog change | ||||
* | | [Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block. | Christian Parpart | 2018-11-16 | 3 | -0/+84 |
|/ | |||||
* | Remove variables that go out of scope from data structure. | chriseth | 2018-11-13 | 2 | -10/+29 |
| | |||||
* | Use map join algorithm for performance. | chriseth | 2018-11-13 | 2 | -10/+35 |
| | |||||
* | Remove side-effect-free statements. | chriseth | 2018-11-09 | 3 | -4/+14 |
| | |||||
* | Merge pull request #5325 from ethereum/fixDataFlow | chriseth | 2018-11-08 | 1 | -0/+13 |
|\ | | | | | [Yul] Fix data flow analyzer for function definitions. | ||||
| * | Fix data flow analyzer for function definitions. | chriseth | 2018-11-08 | 1 | -0/+13 |
| | | |||||
* | | Merge pull request #5365 from ethereum/improveNameDispenser | chriseth | 2018-11-08 | 2 | -3/+3 |
|\ \ | | | | | | | [Yul] Use single counter for name dispenser for performance reasons. | ||||
| * | | Use single counter for name dispenser for performance reasons. | chriseth | 2018-11-08 | 2 | -3/+3 |
| |/ | |||||
* / | Add VarDeclPropagator to full suite and interactive optimizer. | chriseth | 2018-11-08 | 1 | -0/+7 |
|/ | |||||
* | Performance: Replace string by special single-copy YulString class. | chriseth | 2018-11-08 | 43 | -168/+167 |
| | |||||
* | Eliminate `byte`-typedef and use `uint8_t` in all their places instead. | Christian Parpart | 2018-11-07 | 1 | -3/+3 |
| | | | | | | | | | | | This change is made to (easily) be forward compatible with future C++ standards, in order to allow compiling the code with newer standards at some point in the future. * Removed the `using byte = uint8_t;` line from Common.h * Mechanically change all uses of `byte` to `uint8_t`. Tested with GCC 7.3 in C++11/14/17 modes :-) | ||||
* | Merge pull request #5247 from ethereum/yul-vardecl-propagation | chriseth | 2018-10-29 | 2 | -0/+192 |
|\ | | | | | Yul: Implements empty-var-decl-propagation | ||||
| * | Yul: Implements empty-var-decl-propagation | Christian Parpart | 2018-10-26 | 2 | -0/+192 |
| | | |||||
* | | [Yul] ExpressionJoiner: code cleanup | Christian Parpart | 2018-10-26 | 2 | -36/+20 |
|/ | | | | | | | | | * ensure public API is only containing `run(Block&)`, all the rest is private API / implementation details * adding some comments to class data members to quicker understand their meaning * eliminate unnecessary `operator()(If&)` as it's not changing default behaviour of `ASTModifier` * simplify readability of `visit(Expression&)`'s impl, also moving assert's into "isLatestStatementVarDeclOf", as this one is already ensuring exactly that. * ctor impl's use of ReferenceCounter use shortened. * renamed and improved `isLatestStatementVarDeclOf` to better match its meaning (especially since it's only used once) | ||||
* | Merge pull request #5242 from ethereum/someChecks | chriseth | 2018-10-25 | 1 | -0/+1 |
|\ | | | | | Some well-formedness checks for the Yul AST. | ||||
| * | Some well-formedness checks for the Yul AST. | chriseth | 2018-10-22 | 1 | -0/+1 |
| | | |||||
* | | Full suite tests. | chriseth | 2018-10-25 | 2 | -0/+168 |
| | | |||||
* | | Redundant assign eliminator. | chriseth | 2018-10-24 | 2 | -0/+378 |
|/ | |||||
* | Merge pull request #5267 from ethereum/ssatransform | chriseth | 2018-10-19 | 2 | -0/+228 |
|\ | | | | | SSA transform - first step. | ||||
| * | SSA transform - first step. | chriseth | 2018-10-19 | 2 | -0/+228 |
| | | |||||
* | | Merge pull request #5270 from ethereum/inlineFlexible | chriseth | 2018-10-19 | 2 | -12/+11 |
|\ \ | | | | | | | Make full inliner more flexible. | ||||
| * | | Make full inliner more flexible. | chriseth | 2018-10-18 | 2 | -12/+11 |
| |/ | |||||
* / | Fix a bug in CSE where a variable that was already out of scope was used. | chriseth | 2018-10-18 | 4 | -23/+34 |
|/ | |||||
* | Merge pull request #5240 from ethereum/limitDispenserSize | chriseth | 2018-10-18 | 5 | -19/+57 |
|\ | | | | | [Yul] Limit name length created by dispenser | ||||
| * | Limit size of generated names and add convenience constructors. | chriseth | 2018-10-17 | 5 | -19/+57 |
| | | |||||
* | | Merge pull request #5232 from ethereum/inlineHeuristic | chriseth | 2018-10-17 | 4 | -8/+73 |
|\ \ | |/ |/| | [Yul] Add simple inlining heuristic | ||||
| * | Use metrics in the full inliner. | chriseth | 2018-10-17 | 4 | -8/+73 |
| | | |||||
* | | Handle externally supplied variables correctly in disambiguator. | chriseth | 2018-10-17 | 2 | -3/+12 |
| | | |||||
* | | Prevent externally used functions from being removed. | chriseth | 2018-10-17 | 2 | -5/+7 |
|/ | |||||
* | Inline each function separately. | chriseth | 2018-10-16 | 2 | -28/+13 |
| | |||||
* | New full inliner. | chriseth | 2018-10-16 | 2 | -197/+102 |
| | |||||
* | New simplifier via broken expressions. | chriseth | 2018-10-16 | 4 | -15/+73 |
| | |||||
* | SSA value tracker. | chriseth | 2018-10-16 | 2 | -0/+111 |
| | |||||
* | Yul: Introduces a block flattening pass + tests | Christian Parpart | 2018-10-16 | 2 | -0/+75 |
| | |||||
* | Some renaming leftovers. | chriseth | 2018-10-15 | 2 | -3/+3 |
| | |||||
* | Renaming namespace dev::julia to dev::yul. | Christian Parpart | 2018-10-15 | 48 | -49/+49 |
| | |||||
* | Renaming libjulia to libyul | Christian Parpart | 2018-10-15 | 49 | -0/+4196 |