solidity/libyul/optimiser
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
..
ASTCopier.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
ASTCopier.h Added a helper class FunctionCopier in ASTCopier 2021-03-29 11:02:18 +02:00
ASTWalker.cpp Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
ASTWalker.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
BlockFlattener.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
BlockFlattener.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
BlockHasher.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
BlockHasher.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
CallGraphGenerator.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
CallGraphGenerator.h Implement cxx20 polyfill and replace InvertibleMap entirely. 2021-01-12 21:40:40 +01:00
CircularReferencesPruner.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
CircularReferencesPruner.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
CommonSubexpressionEliminator.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
CommonSubexpressionEliminator.h Add test. 2021-04-22 17:23:56 +02:00
ConditionalSimplifier.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
ConditionalSimplifier.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ConditionalUnsimplifier.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
ConditionalUnsimplifier.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
ControlFlowSimplifier.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
ControlFlowSimplifier.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
DataFlowAnalyzer.cpp Replaced boost remove_erase and remove_erase_if 2021-04-24 08:10:41 +05:30
DataFlowAnalyzer.h Evaluate keccak(a, const) if value at memory location a is known 2021-04-22 18:19:47 +02:00
DeadCodeEliminator.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
DeadCodeEliminator.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
Disambiguator.cpp Rename AsmScope* to Scope* 2020-12-18 11:55:17 +00:00
Disambiguator.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
EquivalentFunctionCombiner.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
EquivalentFunctionCombiner.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
EquivalentFunctionDetector.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
EquivalentFunctionDetector.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ExpressionInliner.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ExpressionInliner.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ExpressionJoiner.cpp Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
ExpressionJoiner.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ExpressionSimplifier.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
ExpressionSimplifier.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ExpressionSplitter.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
ExpressionSplitter.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ForLoopConditionIntoBody.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
ForLoopConditionIntoBody.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
ForLoopConditionOutOfBody.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
ForLoopConditionOutOfBody.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
ForLoopInitRewriter.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
ForLoopInitRewriter.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
FullInliner.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
FullInliner.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
FunctionCallFinder.cpp Enable more C++ compiler warnings 2020-12-10 21:03:58 +00:00
FunctionCallFinder.h Add stack limit evader. 2020-09-17 22:13:27 +02:00
FunctionDefinitionCollector.cpp Function definition collector. 2021-06-28 18:11:57 +02:00
FunctionDefinitionCollector.h Function definition collector. 2021-06-28 18:11:57 +02:00
FunctionGrouper.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
FunctionGrouper.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
FunctionHoister.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
FunctionHoister.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
FunctionSpecializer.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
FunctionSpecializer.h FunctionSpecializer: skip specializing recursive functions 2021-03-29 11:02:31 +02:00
InlinableExpressionFunctionFinder.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
InlinableExpressionFunctionFinder.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
KnowledgeBase.cpp Fix recursion protection. 2021-08-19 12:51:54 +02:00
KnowledgeBase.h Fix recursion protection. 2021-08-19 12:51:54 +02:00
LoadResolver.cpp Resolving Keccak-256: check if arguments are identifiers early. 2021-09-06 13:48:07 +02:00
LoadResolver.h Skip resolving Keccak if AST contains msize. 2021-04-22 18:19:47 +02:00
LoopInvariantCodeMotion.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
LoopInvariantCodeMotion.h Extended LoopInvariantCodeMotion for storage and state 2020-08-19 12:41:29 +02:00
MainFunction.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
MainFunction.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
Metrics.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
Metrics.h Adjust cost of literal zero. 2021-04-22 11:42:42 +02:00
NameCollector.cpp NameCollecter can now only collect VariableDeclarations 2021-03-25 11:49:16 +01:00
NameCollector.h NameCollecter can now only collect VariableDeclarations 2021-03-25 11:49:16 +01:00
NameDispenser.cpp Merge pull request #10419 from ethereum/bug-namesimplifier 2020-12-03 17:52:40 +01:00
NameDispenser.h Merge pull request #10419 from ethereum/bug-namesimplifier 2020-12-03 17:52:40 +01:00
NameDisplacer.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
NameDisplacer.h Implemented UnusedFunctionArgumentPruner 2020-09-03 13:15:38 +02:00
NameSimplifier.cpp Refined cleanup. 2021-02-16 14:20:27 +01:00
NameSimplifier.h Merge pull request #10419 from ethereum/bug-namesimplifier 2020-12-03 17:52:40 +01:00
OptimiserStep.h Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
OptimizerUtilities.cpp Merge pull request #11311 from anurag-git/issue_10738-3 2021-04-26 14:18:15 +02:00
OptimizerUtilities.h Add toEVMInstruction helper 2021-04-23 22:56:50 +01:00
README.md DOCS: update optimizer docs, harmonize spelling and add Yul-based optimizer module 2021-05-04 17:37:02 +02:00
ReasoningBasedSimplifier.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
ReasoningBasedSimplifier.h Extracted the class SMT Solver from ReasoningBasedSimplifier 2021-05-06 11:26:26 +02:00
RedundantAssignEliminator.cpp Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
RedundantAssignEliminator.h Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
RedundantStoreBase.cpp Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
RedundantStoreBase.h Refactor RedundantAssignEliminator. 2021-08-13 14:25:14 +02:00
Rematerialiser.cpp Allow the Rematerializer to be restricted to an exact set of variables. 2021-09-03 15:29:51 +02:00
Rematerialiser.h Allow the Rematerializer to be restricted to an exact set of variables. 2021-09-03 15:29:51 +02:00
Semantics.cpp Add toEVMInstruction helper 2021-04-23 22:56:50 +01:00
Semantics.h Add verbatim builtin. 2021-04-26 19:56:44 +02:00
SimplificationRules.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
SimplificationRules.h Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
SMTSolver.cpp Extracted the class SMT Solver from ReasoningBasedSimplifier 2021-05-06 11:26:26 +02:00
SMTSolver.h Extracted the class SMT Solver from ReasoningBasedSimplifier 2021-05-06 11:26:26 +02:00
SSAReverser.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
SSAReverser.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
SSATransform.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
SSATransform.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
SSAValueTracker.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
SSAValueTracker.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
StackCompressor.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
StackCompressor.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
StackLimitEvader.cpp Move function arguments and return values. 2021-06-28 18:11:57 +02:00
StackLimitEvader.h Add stack limit evader. 2020-09-17 22:13:27 +02:00
StackToMemoryMover.cpp Maintain disambiguation when generating new functions in StackToMemoryMover. 2021-06-28 18:11:57 +02:00
StackToMemoryMover.h Add missing header. 2021-08-17 16:04:38 +02:00
StructuralSimplifier.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
StructuralSimplifier.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
Substitution.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
Substitution.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
Suite.cpp Replaced boost remove_erase and remove_erase_if 2021-04-24 08:10:41 +05:30
Suite.h Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
SyntacticalEquality.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
SyntacticalEquality.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
TypeInfo.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
TypeInfo.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
UnusedFunctionParameterPruner.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
UnusedFunctionParameterPruner.h Implemented UnusedFunctionArgumentPruner 2020-09-03 13:15:38 +02:00
UnusedFunctionsCommon.cpp Remove unneeded include files 2021-06-07 12:53:18 -04:00
UnusedFunctionsCommon.h Move filter to CommonData.h 2020-12-09 11:13:27 +01:00
UnusedPruner.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
UnusedPruner.h Add SPDX license identifier if not present already in source file 2020-07-17 20:24:12 +05:30
VarDeclInitializer.cpp Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
VarDeclInitializer.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
VarNameCleaner.cpp Rename AsmData -> AST 2020-11-25 17:58:02 +00:00
VarNameCleaner.h Rename AsmData -> AST 2020-11-25 17:58:02 +00:00

Yul-Based Optimizer

The documentation of the Yul-based optimizer module has been moved to the official Solidity documentation.

Please refer to the optimizer documentation for a description of all optimization stages and how to use the optimizer and to the Yul documentation for more information on the optimization step sequence and a list of abbreviations for each step.