56 Commits
Author SHA1 Message Date
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 be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
chriseth 02d5b7c18a Run literal rematerializer before for loop condition out of body. 2019-11-01 14:01:56 +01:00
chriseth 61a2d44f38 Conditional unsimplifier 2019-11-01 14:01:56 +01:00
chriseth 5d6e983be3 Conditional simplifier. 2019-11-01 14:01:56 +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
chriseth 7a79742f3d Out of body again. 2019-09-17 12:30:15 +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
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 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 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 6cb6fe35ef Make Yul optimizer not fail for wasm. 2019-06-17 18:42:47 +02:00
chriseth 1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth 1dc15d5864 Modify parser and optimizer. 2019-05-20 17:32:56 +02:00
chriseth 4bdb981224 Make dialect const& and allocate single instances statically. 2019-05-17 12:54:24 +02:00
chriseth 570db164c9 Make Dialect const. 2019-05-16 21:51:54 +02:00
chriseth d9831c8b96 Split structural simplifier. 2019-05-13 10:26:57 +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
chriseth d20b3c9f9f Function grouper is a requirement for the VarNameCleaner. 2019-04-05 13:41:38 +02:00
Mathias Baumann e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02: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
chriseth f35694f655 Run yul optimizer until it has no effect anymore. 2019-03-05 20:30:13 +01:00
Christian Parpart 609855546e Yul: Adds optimizer pass to make variable names suffix-canonical. 2019-03-04 17:26:56 +01:00
chriseth 83083d2208 Stack compressor. 2019-02-11 15:48:29 +01:00
chriseth 5a34743d88 Allow optimizer steps to run on FunctionDefinition and group suite. 2019-02-11 15:48:29 +01:00
chriseth b34e104173 Make dialect a shared pointer. 2019-02-11 15:48:29 +01:00
Alex Beregszaszi 2fc7928697 Merge pull request #5864 from ethereum/tuneOptOrder
Some optimizer tuning.
2019-01-28 13:50:09 +00:00
chriseth 12e2187661 Some tuning. 2019-01-24 23:06:01 +01:00
chriseth 1fc98b8133 Fix optimizer suite. 2019-01-24 20:42:32 +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 5b8b016fae Use the block flattener. 2019-01-08 16:02:14 +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
Daniel Kirchner 1eb60cbb39 Add structural simplifier as optimization step for Yul. 2018-12-06 18:37:35 +01:00
Christian Parpart ec47c8946b Isolating libyul library API into its own namespace yul. 2018-11-23 14:29:00 +01:00