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 @@ -26,3 +26,30 @@ endif() set_target_properties(${target} PROPERTIES LINK_FLAGS ${link_flags}) endfunction(whole_archive_link) + +macro(add_mlir_library name) + cmake_parse_arguments(ARG + "SHARED;INSTALL_WITH_TOOLCHAIN" + "" + "ADDITIONAL_HEADERS" + ${ARGN}) + set(srcs) + if(ARG_SHARED) + set(LIBTYPE SHARED) + else() + # llvm_add_library ignores BUILD_SHARED_LIBS if STATIC is explicitly set, + # so we need to handle it here. + if(BUILD_SHARED_LIBS) + set(LIBTYPE SHARED) + else() + set(LIBTYPE STATIC) + endif() + if(NOT XCODE) + # The Xcode generator doesn't handle object libraries correctly. + list(APPEND LIBTYPE OBJECT) + endif() + set_property(GLOBAL APPEND PROPERTY MLIR_STATIC_LIBS ${name}) + endif() + llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) +endmacro(add_mlir_library) + 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 @@ -12,7 +12,7 @@ Verifier.cpp ) -add_llvm_library(MLIRAnalysis +add_mlir_library(MLIRAnalysis CallGraph.cpp InferTypeOpInterface.cpp Liveness.cpp @@ -32,7 +32,7 @@ target_link_libraries(MLIRAnalysis MLIRAffineOps MLIRLoopOps) -add_llvm_library(MLIRLoopAnalysis +add_mlir_library(MLIRLoopAnalysis AffineAnalysis.cpp AffineStructures.cpp LoopAnalysis.cpp 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRAffineToStandard +add_mlir_library(MLIRAffineToStandard AffineToStandard.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt --- a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt +++ b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt @@ -1,5 +1,5 @@ if(MLIR_CUDA_CONVERSIONS_ENABLED) - add_llvm_library(MLIRGPUtoCUDATransforms + add_mlir_library(MLIRGPUtoCUDATransforms ConvertKernelFuncToCubin.cpp ConvertLaunchFuncToCudaCalls.cpp ) 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 @@ -2,7 +2,7 @@ mlir_tablegen(GPUToNVVM.cpp.inc -gen-rewriters) add_public_tablegen_target(MLIRGPUToNVVMIncGen) -add_llvm_library(MLIRGPUtoNVVMTransforms +add_mlir_library(MLIRGPUtoNVVMTransforms LowerGpuOpsToNVVMOps.cpp ) 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRGPUtoROCDLTransforms +add_mlir_library(MLIRGPUtoROCDLTransforms LowerGpuOpsToROCDLOps.cpp ) target_link_libraries(MLIRGPUtoROCDLTransforms diff --git a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt --- a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt +++ b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt @@ -2,7 +2,7 @@ mlir_tablegen(GPUToSPIRV.cpp.inc -gen-rewriters) add_public_tablegen_target(MLIRGPUToSPIRVIncGen) -add_llvm_library(MLIRGPUtoSPIRVTransforms +add_mlir_library(MLIRGPUtoSPIRVTransforms ConvertGPUToSPIRV.cpp ConvertGPUToSPIRVPass.cpp ) 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLinalgToLLVM +add_mlir_library(MLIRLinalgToLLVM LinalgToLLVM.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLinalgToSPIRVTransforms +add_mlir_library(MLIRLinalgToSPIRVTransforms LinalgToSPIRV.cpp LinalgToSPIRVPass.cpp diff --git a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt --- a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt +++ b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLoopToStandard +add_mlir_library(MLIRLoopToStandard ConvertLoopToStandard.cpp ADDITIONAL_HEADER_DIRS 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 @@ -11,7 +11,7 @@ LLVMSupport ) -add_llvm_library(MLIRLoopsToGPU +add_mlir_library(MLIRLoopsToGPU LoopsToGPU.cpp LoopsToGPUPass.cpp diff --git a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt --- a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt +++ b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRStandardToLLVM +add_mlir_library(MLIRStandardToLLVM ConvertStandardToLLVM.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt --- a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt +++ b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt @@ -2,7 +2,7 @@ mlir_tablegen(StandardToSPIRV.cpp.inc -gen-rewriters) add_public_tablegen_target(MLIRStandardToSPIRVIncGen) -add_llvm_library(MLIRStandardToSPIRVTransforms +add_mlir_library(MLIRStandardToSPIRVTransforms ConvertStandardToSPIRV.cpp ConvertStandardToSPIRVPass.cpp LegalizeStandardForSPIRV.cpp 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRVectorToLLVM +add_mlir_library(MLIRVectorToLLVM ConvertVectorToLLVM.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRVectorToLoops +add_mlir_library(MLIRVectorToLoops ConvertVectorToLoops.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/AffineOps/CMakeLists.txt b/mlir/lib/Dialect/AffineOps/CMakeLists.txt --- a/mlir/lib/Dialect/AffineOps/CMakeLists.txt +++ b/mlir/lib/Dialect/AffineOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRAffineOps +add_mlir_library(MLIRAffineOps AffineOps.cpp DialectRegistration.cpp diff --git a/mlir/lib/Dialect/CMakeLists.txt b/mlir/lib/Dialect/CMakeLists.txt --- a/mlir/lib/Dialect/CMakeLists.txt +++ b/mlir/lib/Dialect/CMakeLists.txt @@ -11,7 +11,7 @@ add_subdirectory(StandardOps) add_subdirectory(VectorOps) -add_llvm_library(MLIRDialect +add_mlir_library(MLIRDialect Traits.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRFxpMathOps +add_mlir_library(MLIRFxpMathOps IR/FxpMathOps.cpp IR/DialectRegistration.cpp Transforms/LowerUniformRealMath.cpp 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRGPU +add_mlir_library(MLIRGPU IR/GPUDialect.cpp IR/DialectRegistration.cpp Transforms/AllReduceLowering.cpp 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLLVMIR +add_mlir_library(MLIRLLVMIR IR/LLVMDialect.cpp ADDITIONAL_HEADER_DIRS @@ -7,7 +7,7 @@ add_dependencies(MLIRLLVMIR MLIRLLVMOpsIncGen MLIRLLVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport) target_link_libraries(MLIRLLVMIR LLVMAsmParser LLVMCore LLVMSupport MLIRIR) -add_llvm_library(MLIRNVVMIR +add_mlir_library(MLIRNVVMIR IR/NVVMDialect.cpp ADDITIONAL_HEADER_DIRS @@ -16,7 +16,7 @@ add_dependencies(MLIRNVVMIR MLIRNVVMOpsIncGen MLIRNVVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport) target_link_libraries(MLIRNVVMIR LLVMAsmParser MLIRIR MLIRLLVMIR LLVMSupport LLVMCore) -add_llvm_library(MLIRROCDLIR +add_mlir_library(MLIRROCDLIR IR/ROCDLDialect.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt @@ -5,7 +5,7 @@ ) -add_llvm_library(MLIRLinalgAnalysis +add_mlir_library(MLIRLinalgAnalysis DependenceAnalysis.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt @@ -7,7 +7,7 @@ MLIRStandardOps ) -add_llvm_library(MLIRLinalgEDSC +add_mlir_library(MLIRLinalgEDSC Builders.cpp ADDITIONAL_HEADER_DIRS 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 @@ -4,7 +4,7 @@ MLIRStandardOps ) -add_llvm_library(MLIRLinalgOps +add_mlir_library(MLIRLinalgOps LinalgOps.cpp LinalgTypes.cpp LinalgRegistration.cpp diff --git a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt @@ -16,7 +16,7 @@ MLIRVectorOps ) -add_llvm_library(MLIRLinalgTransforms +add_mlir_library(MLIRLinalgTransforms Fusion.cpp LinalgTransforms.cpp LinalgToLoops.cpp diff --git a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt @@ -9,7 +9,7 @@ MLIRTransformUtils ) -add_llvm_library(MLIRLinalgUtils +add_mlir_library(MLIRLinalgUtils Utils.cpp 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 @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRLoopOps +add_mlir_library(MLIRLoopOps ${globbed} ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIROpenMP +add_mlir_library(MLIROpenMP IR/OpenMPDialect.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRQuantOps +add_mlir_library(MLIRQuantOps IR/DialectRegistration.cpp IR/QuantOps.cpp IR/QuantTypes.cpp diff --git a/mlir/lib/Dialect/SDBM/CMakeLists.txt b/mlir/lib/Dialect/SDBM/CMakeLists.txt --- a/mlir/lib/Dialect/SDBM/CMakeLists.txt +++ b/mlir/lib/Dialect/SDBM/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSDBM +add_mlir_library(MLIRSDBM SDBM.cpp SDBMExpr.cpp SDBMDialect.cpp diff --git a/mlir/lib/Dialect/SPIRV/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/CMakeLists.txt @@ -2,7 +2,7 @@ mlir_tablegen(SPIRVCanonicalization.inc -gen-rewriters) add_public_tablegen_target(MLIRSPIRVCanonicalizationIncGen) -add_llvm_library(MLIRSPIRV +add_mlir_library(MLIRSPIRV DialectRegistration.cpp LayoutUtils.cpp SPIRVDialect.cpp 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSPIRVSerialization +add_mlir_library(MLIRSPIRVSerialization Deserializer.cpp Serializer.cpp SPIRVBinaryUtils.cpp diff --git a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSPIRVTransforms +add_mlir_library(MLIRSPIRVTransforms DecorateSPIRVCompositeTypeLayoutPass.cpp LowerABIAttributesPass.cpp diff --git a/mlir/lib/Dialect/StandardOps/CMakeLists.txt b/mlir/lib/Dialect/StandardOps/CMakeLists.txt --- a/mlir/lib/Dialect/StandardOps/CMakeLists.txt +++ b/mlir/lib/Dialect/StandardOps/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRStandardOps +add_mlir_library(MLIRStandardOps ${globbed} ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRVectorOps +add_mlir_library(MLIRVectorOps DialectRegistration.cpp VectorOps.cpp VectorTransforms.cpp diff --git a/mlir/lib/Dialect/VectorOps/CMakeLists.txt.rej b/mlir/lib/Dialect/VectorOps/CMakeLists.txt.rej new file mode 100644 --- /dev/null +++ b/mlir/lib/Dialect/VectorOps/CMakeLists.txt.rej @@ -0,0 +1,33 @@ +diff a/mlir/lib/Dialect/VectorOps/CMakeLists.txt b/mlir/lib/Dialect/VectorOps/CMakeLists.txt (rejected hunks) +@@ -1,13 +1,28 @@ +-add_mlir_library(MLIRVectorOps STATIC ++set(LLVM_OPTIONAL_SOURCES + DialectRegistration.cpp + VectorOps.cpp + VectorTransforms.cpp ++ ) ++ ++add_mlir_library(MLIRVectorOps ++ DialectRegistration.cpp ++ VectorOps.cpp + + ADDITIONAL_HEADER_DIRS + ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/VectorOps + ) + + add_dependencies(MLIRVectorOps MLIRVectorOpsIncGen) +-add_dependencies(MLIRVectorOps MLIRVectorTransformPatternsIncGen) + +-target_link_libraries(MLIRVectorOps MLIRAnalysis MLIRIR MLIRStandardOps) ++target_link_libraries(MLIRVectorOps MLIRIR MLIRStandardOps) ++ ++add_mlir_library(MLIRVectorTransforms ++ VectorTransforms.cpp ++ ++ ADDITIONAL_HEADER_DIRS ++ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/VectorOps ++ ) ++ ++add_dependencies(MLIRVectorTransforms MLIRVectorTransformPatternsIncGen) ++ ++target_link_libraries(MLIRVectorTransforms MLIRAnalysis MLIRIR MLIRAffineOps MLIRLoopOps MLIRStandardOps MLIRVectorOps) 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 @@ -5,7 +5,7 @@ Intrinsics.cpp ) -add_llvm_library(MLIREDSC +add_mlir_library(MLIREDSC Builders.cpp Helpers.cpp Intrinsics.cpp @@ -24,7 +24,7 @@ MLIRVectorOps ) -add_llvm_library(MLIREDSCInterface +add_mlir_library(MLIREDSCInterface CoreAPIs.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,5 +1,5 @@ llvm_map_components_to_libnames(outlibs "nativecodegen" "IPO") -add_llvm_library(MLIRExecutionEngine +add_mlir_library(MLIRExecutionEngine ExecutionEngine.cpp OptUtils.cpp diff --git a/mlir/lib/IR/CMakeLists.txt b/mlir/lib/IR/CMakeLists.txt --- a/mlir/lib/IR/CMakeLists.txt +++ b/mlir/lib/IR/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRIR +add_mlir_library(MLIRIR ${globbed} ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Parser/CMakeLists.txt b/mlir/lib/Parser/CMakeLists.txt --- a/mlir/lib/Parser/CMakeLists.txt +++ b/mlir/lib/Parser/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRParser +add_mlir_library(MLIRParser Lexer.cpp Parser.cpp Token.cpp diff --git a/mlir/lib/Pass/CMakeLists.txt b/mlir/lib/Pass/CMakeLists.txt --- a/mlir/lib/Pass/CMakeLists.txt +++ b/mlir/lib/Pass/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRPass +add_mlir_library(MLIRPass ${globbed} ADDITIONAL_HEADER_DIRS 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 @@ -1,5 +1,5 @@ # Support. -add_llvm_library(MLIRQuantizerSupport +add_mlir_library(MLIRQuantizerSupport Support/Configuration.cpp Support/ConstraintAnalysisGraph.cpp Support/Metadata.cpp @@ -25,7 +25,7 @@ ) # Configurations. -add_llvm_library(MLIRQuantizerFxpMathConfig +add_mlir_library(MLIRQuantizerFxpMathConfig Configurations/FxpMathConfig.cpp ADDITIONAL_HEADER_DIRS @@ -42,7 +42,7 @@ ) # Transforms. -add_llvm_library(MLIRQuantizerTransforms +add_mlir_library(MLIRQuantizerTransforms Transforms/AddDefaultStatsTestPass.cpp Transforms/InferQuantizedTypesPass.cpp Transforms/RemoveInstrumentationPass.cpp 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 @@ -7,7 +7,7 @@ TranslateClParser.cpp ) -add_llvm_library(MLIRSupport +add_mlir_library(MLIRSupport FileUtilities.cpp StorageUniquer.cpp ToolUtilities.cpp @@ -17,7 +17,7 @@ ) target_link_libraries(MLIRSupport LLVMSupport ${LLVM_PTHREAD_LIB}) -add_llvm_library(MLIROptMain +add_mlir_library(MLIROptMain MlirOptMain.cpp ADDITIONAL_HEADER_DIRS @@ -30,7 +30,7 @@ MLIRSupport ) -add_llvm_library(MLIRTranslateClParser +add_mlir_library(MLIRTranslateClParser TranslateClParser.cpp ADDITIONAL_HEADER_DIRS @@ -38,7 +38,7 @@ ) target_link_libraries(MLIRTranslateClParser LLVMSupport MLIRIR MLIRTranslation MLIRParser) -add_llvm_library(MLIRJitRunner +add_mlir_library(MLIRJitRunner JitRunner.cpp ) target_link_libraries(MLIRJitRunner PRIVATE diff --git a/mlir/lib/TableGen/CMakeLists.txt b/mlir/lib/TableGen/CMakeLists.txt --- a/mlir/lib/TableGen/CMakeLists.txt +++ b/mlir/lib/TableGen/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(LLVMMLIRTableGen +add_mlir_library(LLVMMLIRTableGen Argument.cpp Attribute.cpp Constraint.cpp diff --git a/mlir/lib/Target/CMakeLists.txt b/mlir/lib/Target/CMakeLists.txt --- a/mlir/lib/Target/CMakeLists.txt +++ b/mlir/lib/Target/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTargetLLVMIRModuleTranslation +add_mlir_library(MLIRTargetLLVMIRModuleTranslation LLVMIR/DebugTranslation.cpp LLVMIR/ModuleTranslation.cpp @@ -10,7 +10,7 @@ target_link_libraries(MLIRTargetLLVMIRModuleTranslation MLIRLLVMIR LLVMCore LLVMIRReader LLVMSupport LLVMTransformUtils MLIRTranslation) -add_llvm_library(MLIRTargetLLVMIR +add_mlir_library(MLIRTargetLLVMIR LLVMIR/ConvertFromLLVMIR.cpp LLVMIR/ConvertToLLVMIR.cpp @@ -18,7 +18,7 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR ) target_link_libraries(MLIRTargetLLVMIR MLIRTargetLLVMIRModuleTranslation) -add_llvm_library(MLIRTargetNVVMIR +add_mlir_library(MLIRTargetNVVMIR LLVMIR/ConvertToNVVMIR.cpp ADDITIONAL_HEADER_DIRS @@ -33,7 +33,7 @@ MLIRNVVMIR MLIRTargetLLVMIRModuleTranslation ) -add_llvm_library(MLIRTargetROCDLIR +add_mlir_library(MLIRTargetROCDLIR LLVMIR/ConvertToROCDLIR.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Transforms/CMakeLists.txt b/mlir/lib/Transforms/CMakeLists.txt --- a/mlir/lib/Transforms/CMakeLists.txt +++ b/mlir/lib/Transforms/CMakeLists.txt @@ -1,6 +1,6 @@ add_subdirectory(Utils) -add_llvm_library(MLIRTransforms +add_mlir_library(MLIRTransforms AffineDataCopyGeneration.cpp AffineLoopInvariantCodeMotion.cpp Canonicalizer.cpp diff --git a/mlir/lib/Transforms/Utils/CMakeLists.txt b/mlir/lib/Transforms/Utils/CMakeLists.txt --- a/mlir/lib/Transforms/Utils/CMakeLists.txt +++ b/mlir/lib/Transforms/Utils/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTransformUtils +add_mlir_library(MLIRTransformUtils FoldUtils.cpp GreedyPatternRewriteDriver.cpp InliningUtils.cpp diff --git a/mlir/lib/Translation/CMakeLists.txt b/mlir/lib/Translation/CMakeLists.txt --- a/mlir/lib/Translation/CMakeLists.txt +++ b/mlir/lib/Translation/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTranslation +add_mlir_library(MLIRTranslation Translation.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSPIRVTestPasses +add_mlir_library(MLIRSPIRVTestPasses TestAvailability.cpp ADDITIONAL_HEADER_DIRS 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTestIR +add_mlir_library(MLIRTestIR TestFunc.cpp TestMatchers.cpp TestSymbolUses.cpp diff --git a/mlir/test/lib/Pass/CMakeLists.txt b/mlir/test/lib/Pass/CMakeLists.txt --- a/mlir/test/lib/Pass/CMakeLists.txt +++ b/mlir/test/lib/Pass/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTestPass +add_mlir_library(MLIRTestPass TestPassManager.cpp ADDITIONAL_HEADER_DIRS 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 @@ -11,7 +11,7 @@ mlir_tablegen(TestPatterns.inc -gen-rewriters) add_public_tablegen_target(MLIRTestOpsIncGen) -add_llvm_library(MLIRTestDialect +add_mlir_library(MLIRTestDialect TestDialect.cpp TestPatterns.cpp ) 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 @@ -1,4 +1,4 @@ -add_llvm_library(MLIRTestTransforms +add_mlir_library(MLIRTestTransforms TestAllReduceLowering.cpp TestCallGraph.cpp TestConstantFold.cpp diff --git a/mlir/tools/CMakeLists.txt b/mlir/tools/CMakeLists.txt --- a/mlir/tools/CMakeLists.txt +++ b/mlir/tools/CMakeLists.txt @@ -3,3 +3,4 @@ add_subdirectory(mlir-opt) add_subdirectory(mlir-tblgen) add_subdirectory(mlir-translate) +add_subdirectory(mlir-shlib) 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 @@ -11,7 +11,7 @@ MLIRTransforms MLIRSupport ) -add_llvm_library(MLIRMlirOptLib +add_mlir_library(MLIRMlirOptLib mlir-opt.cpp ) target_link_libraries(MLIRMlirOptLib diff --git a/mlir/tools/mlir-shlib/CMakeLists.txt b/mlir/tools/mlir-shlib/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/mlir/tools/mlir-shlib/CMakeLists.txt @@ -0,0 +1,42 @@ +# Building libmlir-cpp.so fails if LLVM_ENABLE_PIC=Off +if (NOT LLVM_ENABLE_PIC) + return() +endif() + +# Building libmlir-cpp.so may not work on MSVC +if (MSVC) + return() +endif() + +get_property(mlir_libs GLOBAL PROPERTY MLIR_STATIC_LIBS) +list(REMOVE_DUPLICATES mlir_libs) +# Exclude libMLIRTableGen for the following reasons: +# - it is only used by internal *-tblgen utilities; +# - it pollutes the global options space. +list(REMOVE_ITEM mlir_libs "MLIRTableGen") + +foreach (lib ${mlir_libs}) + if(XCODE) + # Xcode doesn't support object libraries, so we have to trick it into + # linking the static libraries instead. + list(APPEND _DEPS "-force_load" ${lib}) + else() + list(APPEND _OBJECTS $) + endif() + list(APPEND _DEPS $) +endforeach () + +if (MLIR_LINK_MLIR_DYLIB) + set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN) +endif() + +add_llvm_library(mlir-cpp + SHARED + ${INSTALL_WITH_TOOLCHAIN} + + mlir-shlib.cpp + ${_OBJECTS} + + LINK_LIBS + ${_DEPS}) + diff --git a/mlir/tools/mlir-shlib/mlir-shlib.cpp b/mlir/tools/mlir-shlib/mlir-shlib.cpp new file mode 100644 --- /dev/null +++ b/mlir/tools/mlir-shlib/mlir-shlib.cpp @@ -0,0 +1 @@ +// Intentionally empty source file to make CMake happy