204 Commits
Author SHA1 Message Date
chriseth 7b84e141dc Descend into for loops when determining call graph. 2019-12-17 13:47:51 +01:00
chriseth bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth 301215f186 Merge pull request #7461 from sifmelcara/licm
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan db60d123d0 [YulOpt] Implement loop-invariant code motion 2019-11-28 11:59:29 +01:00
chriseth 9e9b643b93 Tune the suite. 2019-11-27 11:56:11 +01:00
Leonardo Alt 2bfa3a7c97 Rewrite GenericVisitor 2019-11-26 15:55:06 +01:00
Leonardo Alt be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
chriseth e70ef0b820 Simplify patterns. 2019-11-15 00:34:01 +01:00
chriseth fa02667075 Generalize instructions. 2019-11-07 14:33:34 +01:00
chriseth 02d5b7c18a Run literal rematerializer before for loop condition out of body. 2019-11-01 14:01:56 +01:00
chriseth 1cc5a03e42 Fix bug in unsimplifier. 2019-11-01 14:01:56 +01:00
chriseth 61a2d44f38 Conditional unsimplifier 2019-11-01 14:01:56 +01:00
chriseth 19ccdfb0b3 No into body. 2019-11-01 14:01:56 +01:00
chriseth 5d6e983be3 Conditional simplifier. 2019-11-01 14:01:56 +01:00
Christian Parpart df729b3084 Make use of C++17 std::optional<> instead of boost::optional<>. 2019-10-28 11:39:30 +01:00
chriseth 45705b0e29 Debug optimizer steps. 2019-10-16 14:06:18 +02:00
chriseth 9ce1ca2340 Refactor Optimiser Steps Interface. 2019-09-24 14:52:01 +02:00
mingchuan 520a3ccfff [YulOpt] declare SSA var when control flow joins 2019-09-17 13:22:02 +02:00
chriseth 7a79742f3d Out of body again. 2019-09-17 12:30:15 +02:00
chriseth 2d601a4f23 Merge pull request #7414 from ethereum/refactorSSA
Refactor SSA transform.
2019-09-13 17:55:39 +02:00
chriseth 20bada4c60 Refactor SSA transform. 2019-09-12 20:07:39 +02:00
Daniel Kirchner f86c5da202 Fix SSA reverser in special case of declaration followed by self-assignment. 2019-09-12 18:17:13 +02:00
chriseth 4f80117eef Use builtin iszero for for loop condition rewriting. 2019-09-12 10:26:16 +02:00
chriseth fcfe829534 Introduce LiteralRematerializer and thus simplify StructuralSimplifier. 2019-09-11 19:50:24 +02:00
Bhargava Shastry 09fa31ccc5 yul: Add new optimizer rules for create and create2 builtins 2019-09-09 17:06:56 +02:00
chriseth a8e8eaebcd Fix load resolver and properly take side-effects of user-defined
functions into account.
2019-09-04 19:16:54 +02:00
chriseth edbec012ae Activate load resolver. 2019-09-04 19:16:54 +02:00
chriseth 127bcfc69d Take user function side-effects into account for unused pruner. 2019-09-02 17:41:51 +02:00
chriseth 1c5845e3f2 Side-effects of user-defined functions. 2019-09-02 17:41:51 +02:00
chriseth a2a06d0318 Side effects propagator. 2019-08-15 16:30:05 +02:00
chriseth 7d30fbdef0 Extract side effects into their own struct. 2019-08-14 15:06:10 +02:00
chriseth e396dc7246 Properly set storage and memory after erasing potentially destroyed keys 2019-08-13 18:43:15 +02:00
chriseth 823f06625a Merge pull request #7230 from ethereum/callgraph_generator
Callgraph generator.
2019-08-13 18:04:56 +02:00
chriseth 57125de9ef Remove ContainsMSize from side-effect-collector. 2019-08-13 13:34:33 +02:00
mingchuan 53af4e082e Callgraph generator. 2019-08-13 12:49:32 +02:00
mingchuan 46387eaea2 [Yul] ExpressionInliner: avoid duplicating high cost expressions 2019-08-05 11:48:32 +02:00
dm4 4dc368db3a Fix typo in Yul optimizer 2019-07-22 16:25:47 +08:00
chriseth a0a0a34a21 Do not overwrite allowMSizeOptimization 2019-07-16 10:13:18 +02:00
chriseth 869d69d293 Supply full object to stack compressor and Optimizer Suite. 2019-07-10 18:49:42 +02:00
chriseth 67f11104c1 EVM to eWasm translator. 2019-06-25 19:06:18 +02:00
chriseth 2b979cba38 Also optimize memory. 2019-06-20 18:43:37 +02:00
chriseth 8572600401 Implement knowledge base. 2019-06-20 18:43:37 +02:00
chriseth 1f9d11c644 Knowledge about storage. 2019-06-20 18:43:37 +02:00
chriseth d9d1c4a312 Merge pull request #6967 from ethereum/nameDisplacer
[Yul] Name displacer.
2019-06-19 18:56:54 +02:00
chriseth d7b366ff46 Name displacer. 2019-06-19 14:55:38 +02:00
chriseth cc5045a56e [Yul] Run optimizer on all dialects. 2019-06-19 10:01:16 +02:00
chriseth aed979604c Fix unused pruner. 2019-06-18 17:40:18 +02:00
chriseth 6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
chriseth c9e2d388b5 Merge pull request #6848 from ethereum/invertibleRelation
Implement references using InvertibleRelation as data structure.
2019-05-29 13:34:10 +02:00
chriseth a3f721bbcc Merge pull request #6583 from ethereum/reset_yulstringrepo
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00