Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #5644 from ethereum/noInlineIntoLarge | chriseth | 2018-12-13 | 4 | -10/+31 |
|\ | | | | | [Yul] Do not inline into already big functions. | ||||
| * | Do not inline into already big functions. | chriseth | 2018-12-13 | 4 | -10/+31 |
| | | |||||
* | | AsmPrinter functions should be const. | chriseth | 2018-12-13 | 2 | -30/+30 |
|/ | |||||
* | Merge pull request #5641 from ethereum/supportUnassigned | chriseth | 2018-12-13 | 4 | -7/+15 |
|\ | | | | | [Yul] Support unassigned variables in the SSA value tracker and the data flow analyzer. | ||||
| * | Support unassigned variables in the SSA value tracker and the data flow ↵ | chriseth | 2018-12-13 | 4 | -7/+15 |
| | | | | | | | | analyzer. | ||||
* | | Add missing header guards | Alex Beregszaszi | 2018-12-12 | 2 | -0/+3 |
|/ | |||||
* | Fix compilation for certain combinations of boost and gcc. | Daniel Kirchner | 2018-12-12 | 1 | -1/+1 |
| | |||||
* | Codegen for object access. | chriseth | 2018-12-12 | 14 | -146/+328 |
| | |||||
* | Provide Dialect to EVMCodeTransform. | chriseth | 2018-12-12 | 4 | -14/+15 |
| | |||||
* | Reuse stack slots in Yul to EVM code generation. | liangdzou | 2018-12-10 | 7 | -48/+302 |
| | |||||
* | Merge pull request #5607 from enumatech/fix-makefiles | chriseth | 2018-12-07 | 1 | -1/+1 |
|\ | | | | | WIP: Fix makefiles to silence linker errors | ||||
| * | Fix makefiles | Lionello Lunesu | 2018-12-07 | 1 | -1/+1 |
| | | |||||
* | | Add structural simplifier as optimization step for Yul. | Daniel Kirchner | 2018-12-07 | 7 | -4/+205 |
| | | |||||
* | | Merge pull request #5587 from ethereum/yulCodeBuiltins | chriseth | 2018-12-06 | 3 | -0/+78 |
|\ \ | | | | | | | Builtin functions to access Yul objects. | ||||
| * | | Provide Yul Object builtins. | chriseth | 2018-12-04 | 3 | -0/+78 |
| | | | |||||
* | | | Analyze and compile sub-objects. | chriseth | 2018-12-06 | 3 | -0/+99 |
| | | | |||||
* | | | Extend abstract assembly to be able to handle sub-objects. | chriseth | 2018-12-06 | 3 | -0/+35 |
| | | | |||||
* | | | 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 |
| | | | | |||||
* | | | | Merge pull request #5594 from ethereum/fullInlinerNoHoister | chriseth | 2018-12-05 | 2 | -13/+23 |
|\ \ \ \ | | | | | | | | | | | [Yul] Relax dependency of FullInliner on FunctionHoister. | ||||
| * | | | | Relax dependency of FullInliner on FunctionHoister. | Daniel Kirchner | 2018-12-05 | 2 | -13/+23 |
| |/ / / | |||||
* / / / | Relax assertion about jumps in loose mode | Mathias Baumann | 2018-12-05 | 1 | -1/+3 |
|/ / / | |||||
* | | | Merge pull request #5586 from ethereum/refactorEVMAssembly | chriseth | 2018-12-04 | 3 | -218/+0 |
|\ \ \ | |/ / |/| | | Refactor evm assembly | ||||
| * | | Move AsmCodeGen. | chriseth | 2018-12-04 | 3 | -218/+0 |
| | | | |||||
* | | | Builtin functions for yul analysis. | chriseth | 2018-12-04 | 1 | -1/+7 |
| | | | |||||
* | | | Use builtin functions in the yul parser. | chriseth | 2018-12-04 | 1 | -4/+12 |
|/ / | |||||
* | | Merge pull request #5573 from ethereum/builtins | chriseth | 2018-12-04 | 8 | -41/+120 |
|\ \ | | | | | | | [Yul] Introduce the concept of builtin functions. | ||||
| * | | Introduce the concept of builtin functions. | chriseth | 2018-12-04 | 8 | -41/+120 |
| | | | |||||
* | | | Properly recurse in ForLoopInitRewriter | Daniel Kirchner | 2018-12-04 | 1 | -2/+9 |
|/ / | |||||
* | | Improve yul error messages around number of arguments and variables. | chriseth | 2018-12-04 | 1 | -9/+20 |
| | | |||||
* | | Use YulString also in expectAsmIdentifier. | chriseth | 2018-12-04 | 2 | -16/+16 |
|/ | |||||
* | liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream ↵ | Christian Parpart | 2018-12-01 | 1 | -3/+3 |
| | | | | | | source, eliminating sourceName Also, adapted affecting code to those changes. | ||||
* | Yul objects. | chriseth | 2018-11-27 | 5 | -0/+353 |
| | |||||
* | Remove superfluous libyul/ASTDataForward.h and include libyul/AsmDataForward ↵ | Christian Parpart | 2018-11-23 | 22 | -46/+21 |
| | | | | directly instead. | ||||
* | Isolating libyul library API into its own namespace `yul`. | Christian Parpart | 2018-11-23 | 85 | -452/+248 |
| | |||||
* | CMake: Isolate libyul into its own static library | Christian Parpart | 2018-11-23 | 1 | -0/+43 |
| | |||||
* | Reorder some include files and group <libyul/>'s together (as much as possible) | Christian Parpart | 2018-11-23 | 29 | -35/+7 |
| | |||||
* | Rewrite header paths to adapt to recent `git mv` of libsolidity/inlineasm to ↵ | Christian Parpart | 2018-11-23 | 51 | -70/+70 |
| | | | | libyul | ||||
* | Moving files from libsolidity/inlineasm/*.{cpp,h} to libyul/. | Christian Parpart | 2018-11-23 | 16 | -0/+2726 |
| | |||||
* | Introduce namespace `langutil` in liblangutil directory. | Christian Parpart | 2018-11-22 | 7 | -4/+17 |
| | | | | | | | 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 | 3 | -3/+3 |
| | |||||
* | Merge pull request #5444 from Mordax/issue-5168-rmvirtual | Alex Beregszaszi | 2018-11-21 | 16 | -73/+73 |
|\ | | | | | Removing redundant virtual from override function declaration | ||||
| * | Removing redundant virtual from override function declaration | mordax | 2018-11-21 | 16 | -73/+73 |
| | | | | | | | | | | | | 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 |
|/ | |||||
* | Merge pull request #5333 from ethereum/joinPerformance | chriseth | 2018-11-13 | 2 | -20/+64 |
|\ | | | | | [Yul] Use map join algorithm for performance. | ||||
| * | 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 |
| | | |||||
* | | Deterministic YulStringRepository using string hashes. | Daniel Kirchner | 2018-11-13 | 1 | -32/+61 |
|/ | |||||
* | Reset yul string repository. | chriseth | 2018-11-09 | 1 | -2/+10 |
| | |||||
* | 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 | 47 | -175/+271 |
| | |||||
* | Eliminate `byte`-typedef and use `uint8_t` in all their places instead. | Christian Parpart | 2018-11-07 | 2 | -10/+10 |
| | | | | | | | | | | | 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 | 3 | -0/+197 |
|\ | | | | | Yul: Implements empty-var-decl-propagation | ||||
| * | Yul: Implements empty-var-decl-propagation | Christian Parpart | 2018-10-26 | 3 | -0/+197 |
| | | |||||
* | | [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 | 55 | -60/+60 |
| | |||||
* | Renaming libjulia to libyul | Christian Parpart | 2018-10-15 | 56 | -0/+5418 |