add_library(yul
	AsmAnalysis.cpp
	AsmAnalysis.h
	AsmAnalysisInfo.h
	AsmData.h
	AsmDataForward.h
	AsmJsonConverter.h
	AsmJsonConverter.cpp
	AsmParser.cpp
	AsmParser.h
	AsmPrinter.cpp
	AsmPrinter.h
	AsmScope.cpp
	AsmScope.h
	AsmScopeFiller.cpp
	AsmScopeFiller.h
	AssemblyStack.h
	AssemblyStack.cpp
	CompilabilityChecker.cpp
	CompilabilityChecker.h
	Dialect.cpp
	Dialect.h
	Exceptions.h
	Object.cpp
	Object.h
	ObjectParser.cpp
	ObjectParser.h
	Utilities.cpp
	Utilities.h
	YulString.h
	backends/evm/AbstractAssembly.h
	backends/evm/AsmCodeGen.h
	backends/evm/AsmCodeGen.cpp
	backends/evm/ConstantOptimiser.cpp
	backends/evm/ConstantOptimiser.h
	backends/evm/EVMAssembly.cpp
	backends/evm/EVMAssembly.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/wasm/EVMToEwasmTranslator.cpp
	backends/wasm/EVMToEwasmTranslator.h
	backends/wasm/BinaryTransform.cpp
	backends/wasm/BinaryTransform.h
	backends/wasm/TextTransform.cpp
	backends/wasm/TextTransform.h
	backends/wasm/WasmCodeTransform.cpp
	backends/wasm/WasmCodeTransform.h
	backends/wasm/WasmDialect.cpp
	backends/wasm/WasmDialect.h
	backends/wasm/WasmObjectCompiler.cpp
	backends/wasm/WasmObjectCompiler.h
	backends/wasm/WordSizeTransform.cpp
	backends/wasm/WordSizeTransform.h
	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/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/FunctionGrouper.cpp
	optimiser/FunctionGrouper.h
	optimiser/FunctionHoister.cpp
	optimiser/FunctionHoister.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/MainFunction.cpp
	optimiser/MainFunction.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/OptimiserStep.h
	optimiser/OptimizerUtilities.cpp
	optimiser/OptimizerUtilities.h
	optimiser/RedundantAssignEliminator.cpp
	optimiser/RedundantAssignEliminator.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/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/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)