aboutsummaryrefslogtreecommitdiffstats
path: root/libyul/optimiser
Commit message (Expand)AuthorAgeFilesLines
* Add equivalent function combiner as Yul optimizer step.Daniel Kirchner2019-01-169-48/+437
* Disallow mismatching types in switch cases and detect duplicates by value for...Daniel Kirchner2019-01-159-20/+9
* Avoid explicit conversion from Block to Statement in CodeSize visit.Daniel Kirchner2019-01-111-1/+1
* Adjust inlining thresholds.chriseth2019-01-092-6/+10
* Variables are free with regards to code size.chriseth2019-01-092-3/+22
* Use the block flattener.chriseth2019-01-081-0/+8
* Make function grouper idempotent.chriseth2019-01-082-0/+18
* Take special functions that require literals into account.chriseth2019-01-086-6/+28
* Make the dialect available everywhere.chriseth2019-01-0724-80/+151
* Use rematerializer if variable is unreferenced or value is "cheap".chriseth2019-01-075-4/+124
* make use of C++ `= default` constructor declarations as well as more non-stat...Christian Parpart2018-12-191-1/+1
* Merge pull request #5613 from ethereum/yulStringLiteralschriseth2018-12-171-2/+2
|\
| * Use C++ user-defined literals for creating YulString constants.Daniel Kirchner2018-12-131-2/+2
* | Remove VarDeclPropagator.chriseth2018-12-133-193/+0
* | Do not create unassigned variables.chriseth2018-12-131-0/+4
* | Add variable declaration initializer.chriseth2018-12-133-0/+96
* | Consider return variables to be zero initially.chriseth2018-12-133-2/+15
* | Do not inline into already big functions.chriseth2018-12-134-10/+31
* | Support unassigned variables in the SSA value tracker and the data flow analy...chriseth2018-12-134-7/+15
|/
* Fix compilation for certain combinations of boost and gcc.Daniel Kirchner2018-12-121-1/+1
* Reuse stack slots in Yul to EVM code generation.liangdzou2018-12-102-16/+24
* Add structural simplifier as optimization step for Yul.Daniel Kirchner2018-12-076-4/+204
* SSAValueTracker should only use nullptr for default valuesMathias Baumann2018-12-062-1/+3
* Merge pull request #5593 from ethereum/issue-5384chriseth2018-12-061-1/+2
|\
| * Fix expression simplifier asserting on default valuesMathias Baumann2018-12-051-1/+2
* | Relax dependency of FullInliner on FunctionHoister.Daniel Kirchner2018-12-052-13/+23
|/
* Properly recurse in ForLoopInitRewriterDaniel Kirchner2018-12-041-2/+9
* Remove superfluous libyul/ASTDataForward.h and include libyul/AsmDataForward ...Christian Parpart2018-11-2320-20/+20
* Isolating libyul library API into its own namespace `yul`.Christian Parpart2018-11-2362-154/+51
* Reorder some include files and group <libyul/>'s together (as much as possible)Christian Parpart2018-11-2327-30/+1
* Rewrite header paths to adapt to recent `git mv` of libsolidity/inlineasm to ...Christian Parpart2018-11-2334-37/+37
* Introduce namespace `langutil` in liblangutil directory.Christian Parpart2018-11-224-1/+4
* Isolating files shared between Yul- and Solidity language frontend.Christian Parpart2018-11-221-1/+1
* Merge pull request #5444 from Mordax/issue-5168-rmvirtualAlex Beregszaszi2018-11-2115-57/+57
|\
| * Removing redundant virtual from override function declarationmordax2018-11-2115-57/+57
* | [Yul] Implements a pass to rewrite for-loop's pre block into the parent's Block.Christian Parpart2018-11-163-0/+84
|/
* Remove variables that go out of scope from data structure.chriseth2018-11-132-10/+29
* Use map join algorithm for performance.chriseth2018-11-132-10/+35
* Remove side-effect-free statements.chriseth2018-11-093-4/+14
* Merge pull request #5325 from ethereum/fixDataFlowchriseth2018-11-081-0/+13
|\
| * Fix data flow analyzer for function definitions.chriseth2018-11-081-0/+13
* | Merge pull request #5365 from ethereum/improveNameDispenserchriseth2018-11-082-3/+3
|\ \
| * | Use single counter for name dispenser for performance reasons.chriseth2018-11-082-3/+3
| |/
* / Add VarDeclPropagator to full suite and interactive optimizer.chriseth2018-11-081-0/+7
|/
* Performance: Replace string by special single-copy YulString class.chriseth2018-11-0843-168/+167
* Eliminate `byte`-typedef and use `uint8_t` in all their places instead.Christian Parpart2018-11-071-3/+3
* Merge pull request #5247 from ethereum/yul-vardecl-propagationchriseth2018-10-292-0/+192
|\
| * Yul: Implements empty-var-decl-propagationChristian Parpart2018-10-262-0/+192
* | [Yul] ExpressionJoiner: code cleanupChristian Parpart2018-10-262-36/+20
|/
* Merge pull request #5242 from ethereum/someCheckschriseth2018-10-251-0/+1
|\
| * Some well-formedness checks for the Yul AST.chriseth2018-10-221-0/+1
* | Full suite tests.chriseth2018-10-252-0/+168
* | Redundant assign eliminator.chriseth2018-10-242-0/+378
|/
* Merge pull request #5267 from ethereum/ssatransformchriseth2018-10-192-0/+228
|\
| * SSA transform - first step.chriseth2018-10-192-0/+228
* | Merge pull request #5270 from ethereum/inlineFlexiblechriseth2018-10-192-12/+11
|\ \
| * | Make full inliner more flexible.chriseth2018-10-182-12/+11
| |/
* / Fix a bug in CSE where a variable that was already out of scope was used.chriseth2018-10-184-23/+34
|/
* Merge pull request #5240 from ethereum/limitDispenserSizechriseth2018-10-185-19/+57
|\
| * Limit size of generated names and add convenience constructors.chriseth2018-10-175-19/+57
* | Merge pull request #5232 from ethereum/inlineHeuristicchriseth2018-10-174-8/+73
|\ \ | |/ |/|
| * Use metrics in the full inliner.chriseth2018-10-174-8/+73
* | Handle externally supplied variables correctly in disambiguator.chriseth2018-10-172-3/+12
* | Prevent externally used functions from being removed.chriseth2018-10-172-5/+7
|/
* Inline each function separately.chriseth2018-10-162-28/+13
* New full inliner.chriseth2018-10-162-197/+102
* New simplifier via broken expressions.chriseth2018-10-164-15/+73
* SSA value tracker.chriseth2018-10-162-0/+111
* Yul: Introduces a block flattening pass + testsChristian Parpart2018-10-162-0/+75
* Some renaming leftovers.chriseth2018-10-152-3/+3
* Renaming namespace dev::julia to dev::yul.Christian Parpart2018-10-1548-49/+49
* Renaming libjulia to libyulChristian Parpart2018-10-1549-0/+4196