solidity/libyul/optimiser
2022-09-13 17:23:31 +02:00
..
ASTCopier.cpp
ASTCopier.h
ASTWalker.cpp
ASTWalker.h
BlockFlattener.cpp
BlockFlattener.h
BlockHasher.cpp
BlockHasher.h
CallGraphGenerator.cpp
CallGraphGenerator.h
CircularReferencesPruner.cpp
CircularReferencesPruner.h
CommonSubexpressionEliminator.cpp Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
CommonSubexpressionEliminator.h
ConditionalSimplifier.cpp
ConditionalSimplifier.h Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
ConditionalUnsimplifier.cpp
ConditionalUnsimplifier.h
ControlFlowSimplifier.cpp Add helper to see if a switch has a default case. 2022-03-15 14:29:54 +01:00
ControlFlowSimplifier.h
DataFlowAnalyzer.cpp Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
DataFlowAnalyzer.h Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
DeadCodeEliminator.cpp
DeadCodeEliminator.h Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Disambiguator.cpp
Disambiguator.h
EqualStoreEliminator.cpp Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
EqualStoreEliminator.h Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
EquivalentFunctionCombiner.cpp
EquivalentFunctionCombiner.h
EquivalentFunctionDetector.cpp
EquivalentFunctionDetector.h
ExpressionInliner.cpp
ExpressionInliner.h
ExpressionJoiner.cpp
ExpressionJoiner.h
ExpressionSimplifier.cpp Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
ExpressionSimplifier.h Yul Optimizer: Simplify start offset of zero-length operations. 2022-08-15 15:42:51 +02:00
ExpressionSplitter.cpp
ExpressionSplitter.h
ForLoopConditionIntoBody.cpp
ForLoopConditionIntoBody.h
ForLoopConditionOutOfBody.cpp
ForLoopConditionOutOfBody.h
ForLoopInitRewriter.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
ForLoopInitRewriter.h
FullInliner.cpp Update FullInliner.cpp 2022-08-14 03:14:15 +03:00
FullInliner.h Relax inliner heuristics. 2022-05-23 13:37:50 +02:00
FunctionCallFinder.cpp
FunctionCallFinder.h
FunctionGrouper.cpp
FunctionGrouper.h
FunctionHoister.cpp
FunctionHoister.h
FunctionSpecializer.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
FunctionSpecializer.h
InlinableExpressionFunctionFinder.cpp
InlinableExpressionFunctionFinder.h
KnowledgeBase.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
KnowledgeBase.h Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
LoadResolver.cpp Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
LoadResolver.h Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
LoopInvariantCodeMotion.cpp
LoopInvariantCodeMotion.h
MainFunction.cpp
MainFunction.h
Metrics.cpp
Metrics.h
NameCollector.cpp Refactor stack compressor. 2022-03-15 21:28:47 +01:00
NameCollector.h Refactor stack compressor. 2022-03-15 21:28:47 +01:00
NameDispenser.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
NameDispenser.h
NameDisplacer.cpp
NameDisplacer.h
NameSimplifier.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
NameSimplifier.h
OptimiserStep.h
OptimizerUtilities.cpp
OptimizerUtilities.h
README.md
ReasoningBasedSimplifier.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
ReasoningBasedSimplifier.h
Rematerialiser.cpp Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
Rematerialiser.h Only analyze memory in DataFlowAnalyzer if it is needed in the optimizer step. 2022-07-11 15:51:25 +02:00
Semantics.cpp
Semantics.h
SimplificationRules.cpp Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
SimplificationRules.h Refactor data flow analyzer state access. 2022-03-14 19:32:33 +01:00
SMTSolver.cpp
SMTSolver.h
SSAReverser.cpp
SSAReverser.h
SSATransform.cpp
SSATransform.h
SSAValueTracker.cpp
SSAValueTracker.h
StackCompressor.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
StackCompressor.h
StackLimitEvader.cpp
StackLimitEvader.h
StackToMemoryMover.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
StackToMemoryMover.h
StructuralSimplifier.cpp Refix MSVC Debug crash 2022-04-26 01:52:56 +02:00
StructuralSimplifier.h
Substitution.cpp
Substitution.h
Suite.cpp Address review comments 2022-09-13 17:23:31 +02:00
Suite.h Make hardcoded parts of the optimizer sequence configurable 2022-09-12 10:57:36 +02:00
SyntacticalEquality.cpp
SyntacticalEquality.h
TypeInfo.cpp
TypeInfo.h
UnusedAssignEliminator.cpp
UnusedAssignEliminator.h
UnusedFunctionParameterPruner.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
UnusedFunctionParameterPruner.h
UnusedFunctionsCommon.cpp
UnusedFunctionsCommon.h
UnusedPruner.cpp
UnusedPruner.h
UnusedStoreBase.cpp Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
UnusedStoreBase.h
UnusedStoreEliminator.cpp Bugfix and tests. 2022-09-08 11:54:14 +02:00
UnusedStoreEliminator.h
VarDeclInitializer.cpp
VarDeclInitializer.h
VarNameCleaner.cpp
VarNameCleaner.h

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.