diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake --- a/mlir/cmake/modules/AddMLIR.cmake +++ b/mlir/cmake/modules/AddMLIR.cmake @@ -7,6 +7,7 @@ # TODO: This is to handle the current static registration, but should be # factored out a bit. function(whole_archive_link target) + add_dependencies(${target} ${ARGN}) if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") set(link_flags "-L${CMAKE_BINARY_DIR}/lib ") FOREACH(LIB ${ARGN}) diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt --- a/mlir/lib/Analysis/CMakeLists.txt +++ b/mlir/lib/Analysis/CMakeLists.txt @@ -23,6 +23,5 @@ MLIRCallOpInterfacesIncGen MLIRTypeInferOpInterfaceIncGen MLIRLoopOps - MLIRVectorOps ) -target_link_libraries(MLIRAnalysis MLIRAffineOps MLIRLoopOps MLIRVectorOps) +target_link_libraries(MLIRAnalysis MLIRAffineOps MLIRLoopOps) diff --git a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt --- a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt +++ b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt @@ -17,7 +17,10 @@ MLIRAffineToStandard MLIRAffineOps + MLIRLoopOps + MLIRPass MLIRStandardOps + MLIRTransforms MLIRIR LLVMCore LLVMSupport diff --git a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt --- a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt +++ b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt @@ -15,4 +15,6 @@ MLIRLLVMIR MLIRNVVMIR MLIRPass + MLIRStandardToLLVM + MLIRTransformUtils ) diff --git a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt --- a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt +++ b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt @@ -7,4 +7,5 @@ MLIRLLVMIR MLIRROCDLIR MLIRPass + MLIRStandardToLLVM ) diff --git a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt --- a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt +++ b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt @@ -5,8 +5,14 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/LinalgToLLVM ) set(LIBS + MLIRAffineToStandard + MLIREDSC + MLIRIR MLIRLinalgOps MLIRLLVMIR + MLIRLoopToStandard + MLIRStandardToLLVM + MLIRVectorToLLVM MLIRTransforms LLVMCore LLVMSupport diff --git a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt --- a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt +++ b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt @@ -10,6 +10,7 @@ target_link_libraries(MLIRLinalgToSPIRVTransforms MLIRIR MLIRLinalgOps + MLIRLinalgUtils MLIRPass MLIRSPIRV MLIRSupport diff --git a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt --- a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt +++ b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt @@ -1,5 +1,6 @@ set(LIBS MLIRAffineOps + MLIRAffineToStandard MLIRGPU MLIRIR MLIRLinalgOps diff --git a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt --- a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt +++ b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt @@ -6,6 +6,8 @@ ) set(LIBS MLIRLLVMIR + MLIRStandardToLLVM + MLIRVectorOps MLIRTransforms LLVMCore LLVMSupport diff --git a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt --- a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt +++ b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt @@ -5,6 +5,7 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLoops ) set(LIBS + MLIREDSC MLIRLLVMIR MLIRTransforms LLVMCore diff --git a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt --- a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt +++ b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt @@ -6,6 +6,14 @@ ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/FxpMathOps ) + +target_link_libraries(MLIRFxpMathOps + MLIRQuantOps + MLIRIR + MLIRPass + MLIRSupport + MLIRStandardOps + ) add_dependencies(MLIRFxpMathOps MLIRFxpMathOpsIncGen MLIRQuantOps diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt --- a/mlir/lib/Dialect/GPU/CMakeLists.txt +++ b/mlir/lib/Dialect/GPU/CMakeLists.txt @@ -22,6 +22,8 @@ MLIRIR MLIRLLVMIR MLIRLoopOps + MLIRPass + MLIRStandardOps MLIRSupport MLIRTransformUtils LLVMSupport) diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt --- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt +++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt @@ -14,7 +14,7 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR ) add_dependencies(MLIRNVVMIR MLIRNVVMOpsIncGen MLIRNVVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport) -target_link_libraries(MLIRNVVMIR LLVMAsmParser LLVMCore LLVMSupport MLIRIR) +target_link_libraries(MLIRNVVMIR LLVMAsmParser MLIRIR MLIRLLVMIR LLVMSupport LLVMCore) add_llvm_library(MLIRROCDLIR IR/ROCDLDialect.cpp diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt @@ -1,6 +1,7 @@ set(LIBS MLIRIR + MLIRStandardOps ) add_llvm_library(MLIRLinalgOps diff --git a/mlir/lib/Dialect/LoopOps/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/CMakeLists.txt --- a/mlir/lib/Dialect/LoopOps/CMakeLists.txt +++ b/mlir/lib/Dialect/LoopOps/CMakeLists.txt @@ -6,4 +6,4 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/LoopOps ) add_dependencies(MLIRLoopOps MLIRLoopLikeInterfaceIncGen MLIRLoopOpsIncGen MLIRStandardOps LLVMSupport) -target_link_libraries(MLIRLoopOps LLVMSupport) +target_link_libraries(MLIRLoopOps MLIRStandardOps LLVMSupport MLIRIR) diff --git a/mlir/lib/Dialect/OpenMP/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/CMakeLists.txt --- a/mlir/lib/Dialect/OpenMP/CMakeLists.txt +++ b/mlir/lib/Dialect/OpenMP/CMakeLists.txt @@ -6,3 +6,4 @@ ) add_dependencies(MLIROpenMP MLIROpenMPOpsIncGen) +target_link_libraries(MLIROpenMP MLIRIR) diff --git a/mlir/lib/Dialect/QuantOps/CMakeLists.txt b/mlir/lib/Dialect/QuantOps/CMakeLists.txt --- a/mlir/lib/Dialect/QuantOps/CMakeLists.txt +++ b/mlir/lib/Dialect/QuantOps/CMakeLists.txt @@ -19,3 +19,11 @@ MLIRQuantOpsIncGen MLIRSupport MLIRStandardOps) + +target_link_libraries(MLIRQuantOps + MLIRIR + MLIRPass + MLIRSupport + MLIRStandardOps + MLIRTransformUtils + ) diff --git a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt @@ -14,4 +14,5 @@ target_link_libraries(MLIRSPIRVSerialization MLIRIR MLIRSPIRV - MLIRSupport) + MLIRSupport + MLIRTranslation) diff --git a/mlir/lib/Dialect/VectorOps/CMakeLists.txt b/mlir/lib/Dialect/VectorOps/CMakeLists.txt --- a/mlir/lib/Dialect/VectorOps/CMakeLists.txt +++ b/mlir/lib/Dialect/VectorOps/CMakeLists.txt @@ -11,4 +11,4 @@ add_dependencies(MLIRVectorOps MLIRVectorOpsIncGen) add_dependencies(MLIRVectorOps MLIRVectorTransformPatternsIncGen) -target_link_libraries(MLIRVectorOps MLIRIR) +target_link_libraries(MLIRVectorOps MLIRAnalysis MLIRIR MLIRStandardOps MLIRAffineOps MLIRLoopOps) diff --git a/mlir/lib/EDSC/CMakeLists.txt b/mlir/lib/EDSC/CMakeLists.txt --- a/mlir/lib/EDSC/CMakeLists.txt +++ b/mlir/lib/EDSC/CMakeLists.txt @@ -15,12 +15,14 @@ ) target_link_libraries(MLIREDSC PUBLIC - MLIRAffineOps - MLIRLoopOps - MLIRStandardOps - MLIRTransformUtils - MLIRVectorOps - ) + MLIRAffineOps + MLIRIR + MLIRLoopOps + MLIRStandardOps + MLIRSupport + MLIRTransformUtils + MLIRVectorOps + ) add_llvm_library(MLIREDSCInterface CoreAPIs.cpp @@ -29,9 +31,9 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/EDSC ) add_dependencies(MLIREDSCInterface MLIRIR) -target_link_libraries(MLIREDSC +target_link_libraries(MLIREDSCInterface PUBLIC - MLIRIR - MLIRSupport - MLIRParser - ) + MLIRIR + MLIRSupport + MLIRParser + ) diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt --- a/mlir/lib/ExecutionEngine/CMakeLists.txt +++ b/mlir/lib/ExecutionEngine/CMakeLists.txt @@ -14,7 +14,15 @@ LLVMBitWriter LLVMExecutionEngine LLVMOrcJIT + LLVMJITLink LLVMSupport + LLVMAnalysis + LLVMAggressiveInstCombine + LLVMInstCombine + LLVMMC + LLVMScalarOpts + LLVMTarget + LLVMVectorize LLVMTransformUtils ${outlibs}) diff --git a/mlir/lib/Quantizer/CMakeLists.txt b/mlir/lib/Quantizer/CMakeLists.txt --- a/mlir/lib/Quantizer/CMakeLists.txt +++ b/mlir/lib/Quantizer/CMakeLists.txt @@ -10,11 +10,19 @@ ADDITIONAL_HEADER_DIRS ) + add_dependencies(MLIRQuantizerSupport MLIRIR MLIRQuantOps MLIRSupport MLIRStandardOps) +target_link_libraries(MLIRQuantizerSupport + MLIRIR + MLIRQuantOps + MLIRSupport + MLIRStandardOps + LLVMSupport + ) # Configurations. add_llvm_library(MLIRQuantizerFxpMathConfig @@ -22,9 +30,16 @@ ADDITIONAL_HEADER_DIRS ) + add_dependencies(MLIRQuantizerFxpMathConfig MLIRFxpMathOpsIncGen MLIRQuantizerSupport) +target_link_libraries(MLIRQuantizerFxpMathConfig + MLIRIR + MLIRFxpMathOps + MLIRQuantOps + MLIRQuantizerSupport + ) # Transforms. add_llvm_library(MLIRQuantizerTransforms @@ -39,6 +54,10 @@ MLIRQuantizerSupport MLIRPass) target_link_libraries(MLIRQuantizerTransforms + MLIRIR MLIRQuantizerFxpMathConfig MLIRQuantizerSupport - MLIRPass) + MLIRQuantOps + MLIRPass + LLVMSupport + ) diff --git a/mlir/lib/Support/CMakeLists.txt b/mlir/lib/Support/CMakeLists.txt --- a/mlir/lib/Support/CMakeLists.txt +++ b/mlir/lib/Support/CMakeLists.txt @@ -25,6 +25,7 @@ ) target_link_libraries(MLIROptMain MLIRPass + MLIRParser LLVMSupport MLIRSupport ) @@ -35,7 +36,7 @@ ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Support ) -target_link_libraries(MLIRTranslateClParser LLVMSupport) +target_link_libraries(MLIRTranslateClParser LLVMSupport MLIRIR MLIRTranslation MLIRParser) add_llvm_library(MLIRJitRunner JitRunner.cpp diff --git a/mlir/test/Dialect/SPIRV/CMakeLists.txt b/mlir/test/Dialect/SPIRV/CMakeLists.txt --- a/mlir/test/Dialect/SPIRV/CMakeLists.txt +++ b/mlir/test/Dialect/SPIRV/CMakeLists.txt @@ -6,7 +6,7 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/IR ) -target_link_libraries(MLIRSPIRVTestPasses +target_link_libraries(MLIRSPIRVTestPasses PRIVATE MLIRIR MLIRPass MLIRSPIRV diff --git a/mlir/test/lib/IR/CMakeLists.txt b/mlir/test/lib/IR/CMakeLists.txt --- a/mlir/test/lib/IR/CMakeLists.txt +++ b/mlir/test/lib/IR/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/../TestDialect) add_dependencies(MLIRTestIR MLIRTestDialect -) + ) target_link_libraries(MLIRTestIR MLIRPass ) diff --git a/mlir/test/lib/TestDialect/CMakeLists.txt b/mlir/test/lib/TestDialect/CMakeLists.txt --- a/mlir/test/lib/TestDialect/CMakeLists.txt +++ b/mlir/test/lib/TestDialect/CMakeLists.txt @@ -17,12 +17,14 @@ ) add_dependencies(MLIRTestDialect MLIRTestOpsIncGen - MLIRIR - LLVMSupport MLIRTypeInferOpInterfaceIncGen ) target_link_libraries(MLIRTestDialect MLIRDialect MLIRIR + MLIRLinalgTransforms + MLIRPass + MLIRTransforms + MLIRTransformUtils LLVMSupport ) diff --git a/mlir/test/lib/Transforms/CMakeLists.txt b/mlir/test/lib/Transforms/CMakeLists.txt --- a/mlir/test/lib/Transforms/CMakeLists.txt +++ b/mlir/test/lib/Transforms/CMakeLists.txt @@ -17,7 +17,8 @@ ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms - ) +) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../TestDialect) include_directories(${CMAKE_CURRENT_BINARY_DIR}/../TestDialect) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../DeclarativeTransforms) @@ -36,5 +37,7 @@ MLIRGPU MLIRPass MLIRTestDialect + MLIRTransformUtils + MLIRVectorToLoops MLIRVectorOps ) diff --git a/mlir/tools/mlir-opt/CMakeLists.txt b/mlir/tools/mlir-opt/CMakeLists.txt --- a/mlir/tools/mlir-opt/CMakeLists.txt +++ b/mlir/tools/mlir-opt/CMakeLists.txt @@ -5,6 +5,7 @@ set(LIB_LIBS MLIRAnalysis MLIRLLVMIR + MLIROptMain MLIRParser MLIRPass MLIRTransforms @@ -13,12 +14,15 @@ add_llvm_library(MLIRMlirOptLib mlir-opt.cpp ) -target_link_libraries(MLIRMlirOptLib ${LIB_LIBS}) +target_link_libraries(MLIRMlirOptLib + ${LIB_LIBS} +) set(LIBS MLIRAnalysis MLIRAffineOps MLIRAffineToStandard + MLIRDialect MLIRLoopsToGPU MLIRLinalgToLLVM @@ -30,6 +34,10 @@ MLIRGPUtoROCDLTransforms MLIRGPUtoSPIRVTransforms MLIRLinalgOps + MLIRLinalgAnalysis + MLIRLinalgEDSC + MLIRLinalgTransforms + MLIRLinalgUtils MLIRLLVMIR MLIRLoopOps MLIRNVVMIR @@ -37,6 +45,8 @@ MLIROptMain MLIRParser MLIRPass + MLIRQuantizerFxpMathConfig + MLIRQuantizerSupport MLIRQuantizerTransforms MLIRQuantOps MLIRROCDLIR @@ -48,6 +58,7 @@ MLIRStandardOps MLIRStandardToLLVM MLIRTransforms + MLIRTransformUtils MLIRTestDialect MLIRTestIR MLIRTestPass @@ -66,5 +77,8 @@ mlir-opt.cpp ) llvm_update_compile_flags(mlir-opt) +# It is necessary to use whole_archive_link to ensure that all static +# initializers are called. However, whole_archive_link libraries cannot +# also be target_link_libraries whole_archive_link(mlir-opt ${LIBS}) -target_link_libraries(mlir-opt PRIVATE MLIRIR MLIRMlirOptLib ${LIBS} LLVMSupport) +target_link_libraries(mlir-opt PRIVATE MLIRIR MLIROptMain LLVMSupport LLVMCore LLVMAsmParser)