add_library(yul ${GENERATED_POLYFILL_HEADERS} AsmAnalysis.cpp AsmAnalysis.h AsmAnalysisInfo.h AST.h ASTForward.h AsmJsonConverter.h AsmJsonConverter.cpp AsmJsonImporter.h AsmJsonImporter.cpp AsmParser.cpp AsmParser.h AsmPrinter.cpp AsmPrinter.h YulStack.h YulStack.cpp CompilabilityChecker.cpp CompilabilityChecker.h ControlFlowSideEffects.h ControlFlowSideEffectsCollector.cpp ControlFlowSideEffectsCollector.h Dialect.cpp Dialect.h Exceptions.h FunctionReferenceResolver.cpp FunctionReferenceResolver.h Object.cpp Object.h ObjectParser.cpp ObjectParser.h Scope.cpp Scope.h ScopeFiller.cpp ScopeFiller.h Utilities.cpp Utilities.h YulString.h backends/evm/AbstractAssembly.h backends/evm/AsmCodeGen.cpp backends/evm/AsmCodeGen.h backends/evm/ConstantOptimiser.cpp backends/evm/ConstantOptimiser.h backends/evm/ControlFlowGraph.h backends/evm/ControlFlowGraphBuilder.cpp backends/evm/ControlFlowGraphBuilder.h backends/evm/EthAssemblyAdapter.cpp backends/evm/EthAssemblyAdapter.h backends/evm/EVMCodeTransform.cpp backends/evm/EVMCodeTransform.h backends/evm/EVMDialect.cpp backends/evm/EVMDialect.h backends/evm/EVMObjectCompiler.cpp backends/evm/EVMObjectCompiler.h backends/evm/EVMMetrics.cpp backends/evm/EVMMetrics.h backends/evm/NoOutputAssembly.h backends/evm/NoOutputAssembly.cpp backends/evm/OptimizedEVMCodeTransform.cpp backends/evm/OptimizedEVMCodeTransform.h backends/evm/StackHelpers.h backends/evm/StackLayoutGenerator.cpp backends/evm/StackLayoutGenerator.h backends/evm/VariableReferenceCounter.h backends/evm/VariableReferenceCounter.cpp optimiser/ASTCopier.cpp optimiser/ASTCopier.h optimiser/ASTWalker.cpp optimiser/ASTWalker.h optimiser/BlockFlattener.cpp optimiser/BlockFlattener.h optimiser/BlockHasher.cpp optimiser/BlockHasher.h optimiser/CallGraphGenerator.cpp optimiser/CallGraphGenerator.h optimiser/CircularReferencesPruner.cpp optimiser/CircularReferencesPruner.h optimiser/CommonSubexpressionEliminator.cpp optimiser/CommonSubexpressionEliminator.h optimiser/ConditionalSimplifier.cpp optimiser/ConditionalSimplifier.h optimiser/ConditionalUnsimplifier.cpp optimiser/ConditionalUnsimplifier.h optimiser/ControlFlowSimplifier.cpp optimiser/ControlFlowSimplifier.h optimiser/DataFlowAnalyzer.cpp optimiser/DataFlowAnalyzer.h optimiser/DeadCodeEliminator.cpp optimiser/DeadCodeEliminator.h optimiser/Disambiguator.cpp optimiser/Disambiguator.h optimiser/EqualStoreEliminator.cpp optimiser/EqualStoreEliminator.h optimiser/EquivalentFunctionDetector.cpp optimiser/EquivalentFunctionDetector.h optimiser/EquivalentFunctionCombiner.cpp optimiser/EquivalentFunctionCombiner.h optimiser/ExpressionInliner.cpp optimiser/ExpressionInliner.h optimiser/ExpressionJoiner.cpp optimiser/ExpressionJoiner.h optimiser/ExpressionSimplifier.cpp optimiser/ExpressionSimplifier.h optimiser/ExpressionSplitter.cpp optimiser/ExpressionSplitter.h optimiser/ForLoopConditionIntoBody.cpp optimiser/ForLoopConditionIntoBody.h optimiser/ForLoopConditionOutOfBody.cpp optimiser/ForLoopConditionOutOfBody.h optimiser/ForLoopInitRewriter.cpp optimiser/ForLoopInitRewriter.h optimiser/FullInliner.cpp optimiser/FullInliner.h optimiser/FunctionCallFinder.cpp optimiser/FunctionCallFinder.h optimiser/FunctionGrouper.cpp optimiser/FunctionGrouper.h optimiser/FunctionHoister.cpp optimiser/FunctionHoister.h optimiser/FunctionSpecializer.cpp optimiser/FunctionSpecializer.h optimiser/InlinableExpressionFunctionFinder.cpp optimiser/InlinableExpressionFunctionFinder.h optimiser/KnowledgeBase.cpp optimiser/KnowledgeBase.h optimiser/LoadResolver.cpp optimiser/LoadResolver.h optimiser/LoopInvariantCodeMotion.cpp optimiser/LoopInvariantCodeMotion.h optimiser/Metrics.cpp optimiser/Metrics.h optimiser/NameCollector.cpp optimiser/NameCollector.h optimiser/NameDispenser.cpp optimiser/NameDispenser.h optimiser/NameDisplacer.cpp optimiser/NameDisplacer.h optimiser/NameSimplifier.cpp optimiser/NameSimplifier.h optimiser/OptimiserStep.h optimiser/OptimizerUtilities.cpp optimiser/OptimizerUtilities.h optimiser/UnusedAssignEliminator.cpp optimiser/UnusedAssignEliminator.h optimiser/UnusedStoreBase.cpp optimiser/UnusedStoreBase.h optimiser/UnusedStoreEliminator.cpp optimiser/UnusedStoreEliminator.h optimiser/Rematerialiser.cpp optimiser/Rematerialiser.h optimiser/SSAReverser.cpp optimiser/SSAReverser.h optimiser/SSATransform.cpp optimiser/SSATransform.h optimiser/SSAValueTracker.cpp optimiser/SSAValueTracker.h optimiser/Semantics.cpp optimiser/Semantics.h optimiser/SimplificationRules.cpp optimiser/SimplificationRules.h optimiser/StackCompressor.cpp optimiser/StackCompressor.h optimiser/StackLimitEvader.cpp optimiser/StackLimitEvader.h optimiser/StackToMemoryMover.cpp optimiser/StackToMemoryMover.h optimiser/StructuralSimplifier.cpp optimiser/StructuralSimplifier.h optimiser/Substitution.cpp optimiser/Substitution.h optimiser/Suite.cpp optimiser/Suite.h optimiser/SyntacticalEquality.cpp optimiser/SyntacticalEquality.h optimiser/TypeInfo.cpp optimiser/TypeInfo.h optimiser/UnusedFunctionParameterPruner.cpp optimiser/UnusedFunctionParameterPruner.h optimiser/UnusedFunctionsCommon.h optimiser/UnusedFunctionsCommon.cpp optimiser/UnusedPruner.cpp optimiser/UnusedPruner.h optimiser/VarDeclInitializer.cpp optimiser/VarDeclInitializer.h optimiser/VarNameCleaner.cpp optimiser/VarNameCleaner.h ) target_link_libraries(yul PUBLIC evmasm solutil langutil smtutil fmt::fmt-header-only)