Commit Graph
403 Commits
Author SHA1 Message Date
Daniel Kirchner e996fe6247 Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
Leonid Pospelov 32aa000378 Update FullInliner.cpp 2022-08-14 03:14:15 +03:00
chriseth c12d151834 Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
chriseth 51ef6a62da Fix removal of memory stores in inline assembly blocks. 2022-06-10 17:32:28 +02:00
Daniel Kirchner 7168c27f0d Relax inliner heuristics. 2022-05-23 13:37:50 +02:00
Daniel Kirchner 9fa907aac2 Do not remove potentially reverting returndatacopy cases. 2022-05-23 11:01:03 +02:00
a3d4 048b253a93 Refix MSVC Debug crash 2022-04-26 01:52:56 +02:00
a3d4 44093f2ed6 Fix MSVC Debug crash 2022-04-06 01:34:58 +02:00
chriseth a054285f31 Simplify rematerialization candidates. 2022-03-16 16:43:21 +01:00
chriseth 75abe92eb2 Refactor stack compressor. 2022-03-15 21:28:47 +01:00
chriseth 5afa2adec2 Merge pull request #12775 from ethereum/refactorDataFlowAnalyzer
Refactor data flow analyzer state access.
2022-03-15 15:52:40 +01:00
chriseth 28593839d9 Add helper to see if a switch has a default case. 2022-03-15 14:29:54 +01:00
chriseth afdf22f5c7 Create a state struct. 2022-03-14 19:32:33 +01:00
chriseth eab4ca906c Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
Tyler 1c58b91075 Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-10 17:39:29 -05:00
chriseth 4f02be110c Unused store eliminator. 2022-03-10 18:25:28 +01:00
chriseth 6ab31420af Remove unneeded header files. 2022-03-10 09:55:05 +01:00
Tyler 047034544e Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-09 18:55:22 -05:00
Tyler 519e1c9402 Specify namespaces
Fix references into solidity::util
2022-03-08 00:09:17 -05:00
wechman 52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
chriseth d118f21417 Merge pull request #12729 from ethereum/splitOutDisassemble
Split out disassemble to remove numeric from instruction includes.
2022-03-02 16:18:17 +01:00
chriseth b0dcd7b915 Split out disassemble to remove numeric from instruction includes. 2022-03-02 15:30:41 +01:00
chriseth 63f0a22c5d Also save and restore the nesting depth. 2022-03-02 13:49:40 +01:00
hrkrshnn 85d1a57e65 Added more tests. Updated chromosome. Remove unused headers. 2022-01-04 13:27:39 +05:30
chriseth 772e100813 Equal store eliminator. 2022-01-03 15:52:05 +01:00
chriseth 0e7a065a78 Enhance documentation. 2021-11-23 14:58:04 +01:00
chriseth bd321b9f1f Rename RedundantAssignEliminator to UnusedAssignEliminator. 2021-11-23 10:38:36 +01:00
Daniel Kirchner 9fb77b139c Keep canonical form of Yul code at all times. 2021-11-09 13:29:10 +01:00
Daniel Kirchner b4f98b41bc Minor fix to forEach on Yul AST nodes. 2021-11-05 13:24:30 +01:00
chriseth 776ae466bc Control flow side effects on non-disambiguated source. 2021-11-04 16:32:11 +01:00
chriseth dd8f12760b Introduce forEach for yul ast nodes. 2021-11-04 16:14:43 +01:00
Daniel Kirchner 95c973d6c2 Refactoring of optimiser suite and yulopti. 2021-11-03 19:33:01 +01:00
Daniel Kirchner 4229369180 Compatibility with StackCompressor and StackLimitEvader. 2021-11-03 12:39:55 +01:00
chriseth d6c461ed61 Use side effects of user-defined functions in other optimizer steps. 2021-11-02 11:59:01 +01:00
chriseth 9417d6775f Control flow side-effects for user-defined functions. 2021-10-14 17:46:07 +02:00
Kamil Śliwak 620ec47efb OptimizerSuite: Rewrite runSequence() with support for nested brackets 2021-10-06 19:15:02 +02:00
Kamil Śliwak 2fb8f1be5b OptimiserSuite: Use string_view instead of string for step sequences 2021-10-06 18:48:41 +02:00
Sreekesh V 79d9d5bf0d Change optimizer sequence validations to allow nested brackets 2021-10-06 18:46:53 +02:00
chriseth 1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
chriseth 280ff8cbd4 Use iterateReplacing in StatementRemover. 2021-09-16 15:34:48 +02:00
Daniel Kirchner c499f27a63 Change RematCandidateSelector to not depend on variable name sorting. 2021-09-08 15:41:40 +02:00
chriseth be95a8172b Merge pull request #11891 from ethereum/guidedRematerializer
Allow the Rematerializer to be restricted to an exact set of variables.
2021-09-06 16:22:14 +02:00
hrkrshnn 2cdd3b2081 Resolving Keccak-256: check if arguments are identifiers early.
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
Daniel Kirchner 646421fee1 Allow the Rematerializer to be restricted to an exact set of variables. 2021-09-03 15:29:51 +02:00
chriseth 8926274000 Fix recursion protection. 2021-08-19 12:51:54 +02:00
chriseth 4b038e3f02 Extend knowledge base. 2021-08-18 12:42:46 +02:00
Daniel Kirchner f609288cba Add missing header. 2021-08-17 16:04:38 +02:00
chriseth 3622b30a1d Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
Daniel Kirchner c341445f8e Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00
Daniel Kirchner dfce7b667d Move function arguments and return values. 2021-06-28 18:11:57 +02:00