Alex Beregszaszi
0f484ec93b
Replace use of boost::algorithm::all_of with ranges::all_of
2022-09-27 03:33:13 +02:00
Nikola Matic
e37dc8e975
Address review comments
2022-09-13 17:23:31 +02:00
Nikola Matic
314a1cc92f
Command line tests and minor touch ups
2022-09-12 11:13:49 +02:00
Nikola Matic
f6f0d6a360
Make hardcoded parts of the optimizer sequence configurable
2022-09-12 10:57:36 +02:00
Daniel Kirchner
a33da17300
Bugfix and tests.
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-09-08 11:54:14 +02:00
Marenz
f7cc29bec1
Add std:: qualifier to move() calls
2022-08-30 11:12:15 +02:00
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