Commit Graph
215 Commits
Author SHA1 Message Date
chriseth a0a0a34a21 Do not overwrite allowMSizeOptimization 2019-07-16 10:13:18 +02:00
chriseth 2a5280faa0 Check availability of data objects already in analysis phase. 2019-07-10 18:49:42 +02:00
chriseth e2bfb1a663 Translation of switch statement for wasm backend. 2019-06-27 13:02:35 +02:00
chriseth f5f1b2649c Adding forgotten test for load resolver. 2019-06-25 17:25:53 +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 ecab46c707 Finish word size transform. 2019-06-20 10:42:56 +02:00
chriseth d7b366ff46 Name displacer. 2019-06-19 14:55:38 +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 2276b567b1 Merge pull request #6840 from ethereum/discoverMSize
Only remove msize-modifying instructions if msize is not used.
2019-05-28 13:16:55 +02:00
chriseth df96648b1c Do not allow msize in inline assembly if the Yul optimizer is active. 2019-05-28 12:54:33 +02:00
chriseth d7b5ea6761 Allow msize optimization only if it is not present. 2019-05-28 12:54:32 +02:00
chriseth 1c16124a09 Constant optimiser for Yul. 2019-05-28 11:35:07 +02:00
chriseth 4061ad0a7b Implement references using InvertibleRelation as data structure. 2019-05-27 22:55:59 +02:00
chriseth e5902c58a4 Merge pull request #6777 from sifmelcara/loop-cond-rewriter
[YulOpt] Implement ForLoopConditionIntoBody
2019-05-23 12:51:51 +02:00
chriseth 1e3878121a Do not inline recursive functions. 2019-05-22 18:15:21 +02:00
mingchuan 4ab377eb00 Add tests for ForLoopConditionIntoBody 2019-05-22 21:51:03 +08:00
chriseth 733677690e Update tests. 2019-05-16 12:30:05 +02:00
chriseth f6437a2016 Optimizer rules that combine shifts and masks. 2019-05-15 20:30:53 +02:00
chriseth 246c1c939f Tests. 2019-05-13 18:58:55 +02:00
chriseth dd4f9bf1a6 Really split structural simplifier. 2019-05-13 10:26:57 +02:00
chriseth 6ee9ccf140 Test. 2019-05-09 17:36:40 +02:00
chriseth 3f55b52a88 Unify suffixes. 2019-05-09 17:07:18 +02:00
chriseth 0532a8cef2 Format short blocks and loops on a single line. 2019-05-08 13:28:00 +02:00
mingchuan 57fc4fde85 Add wordSizeTransform yulOptimizerTests 2019-05-03 01:52:01 +08:00
chriseth 578d618065 Merge pull request #6594 from ethereum/adjustCodeMetric
Increase code cost for branching statements.
2019-04-29 09:48:59 +02:00
chriseth 00d81929b1 Merge pull request #6576 from ethereum/isoltest-evmversion-comparator
Allow additional EVMVersion comparators in isoltest
2019-04-25 17:37:46 +02:00
Erik Kundt 15d753a3e0 Allows additional EVMVersion comparators in isoltest. 2019-04-25 17:13:17 +02:00
chriseth bf104f718f Increase code cost for branching statements. 2019-04-25 17:08:11 +02:00
chriseth 6292adbde6 Merge pull request #6580 from ethereum/doNotGenerateInstructionsAsNmes
Prevent instructions to be generated as names.
2019-04-24 22:07:05 +02:00
chriseth 0af8d758a5 Prevent instructions to be generated as names. 2019-04-24 14:35:21 +02:00
chriseth aad4373da4 Disable redundent assign eliminator for deeply nested loops. 2019-04-23 09:50:25 +02:00
fnatic 5b6ed7a97c Removing scope rules for pre block in 'For Loops' 2019-04-17 05:58:40 +05:30
chriseth fb06451f45 Add assertion that DeadCodeEliminator needs ForLoopInitRewriter. 2019-04-15 23:26:56 +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
chriseth 887112b1b0 Fix SSA for multi-assignments. 2019-04-04 12:06:04 +02:00
Mathias Baumann d46f29e128 Add bitshift optimizer tests 2019-04-03 22:38:31 +02:00
chriseth e3d7a34c2c Make yul a setting. 2019-04-03 14:58:20 +02:00
Mathias Baumann e20acf5d0a Yul Optimizer: Remove dead code 2019-04-01 17:16:04 +02:00
chriseth 91f96c299e More logic about control flow with continue and about finalize. Remove BlockScope. 2019-03-27 22:16:31 +01:00
Christian Parpart a1ec49409d Yul] RedundantAssignEliminator: Implements break/continue handling within ForLoop. 2019-03-26 17:36:43 +01:00
chriseth 57f99247c8 Update tests. 2019-03-20 15:07:05 +01:00
Christian Parpart 82ced641e5 [Yul] Adds another test case for multiple continue statements within a for-loop 2019-03-18 12:43:20 +01:00
Christian Parpart 57bcb8ba83 [yul] Ensures DataFlowAnalyzer works fine with break/continue statements just like without. 2019-03-14 16:18:45 +01:00
chriseth 791fde953d First simplify switch with known constant expression. 2019-03-06 21:32:55 +01:00
chriseth 21115f8050 Fix visitation order bug for structural simplifier. 2019-03-06 19:34:07 +01:00
Mathias Baumann 21322dae29 YulOpt: Remove empty cases 2019-03-06 19:02:23 +01:00
Mathias Baumann 3ce7069766 YulOpt: Remove empty cases 2019-03-06 18:39:44 +01:00