-
Notifications
You must be signed in to change notification settings - Fork 14.9k
[mlir] Consistently add TableGen generated files as deps to mlir-headers
/mlir-generic-headers
CMake targets
#155474
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thank you for submitting a Pull Request (PR) to the LLVM Project! This PR will be automatically labeled and the relevant teams will be notified. If you wish to, you can add reviewers by using the "Reviewers" section on this page. If this is not working for you, it is probably because you do not have write permissions for the repository. In which case you can instead tag reviewers by name in a comment by using If you have received no comments on your PR for a week, you can request a review by "ping"ing the PR by adding a comment “Ping”. The common courtesy "ping" rate is once a week. Please remember that you are asking for valuable time from other developers. If you have further questions, they may be answered by the LLVM GitHub User Guide. You can also ask questions in a comment on this PR, on the LLVM Discord or on the forums. |
@llvm/pr-subscribers-mlir-irdl @llvm/pr-subscribers-mlir Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-core Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-affine Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-neon Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-gpu Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-sparse Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-tensor Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
@llvm/pr-subscribers-mlir-memref Author: Bryan Tan (Technius) ChangesThis PR includes fixes for two build issues related to
See the commit messages for more information. Patch is 78.22 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/155474.diff 86 Files Affected:
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index f58a4c6f506ec..371740292323a 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -172,8 +172,11 @@ set(MLIR_INSTALL_AGGREGATE_OBJECTS 1 CACHE BOOL
set(MLIR_BUILD_MLIR_C_DYLIB 0 CACHE BOOL "Builds libMLIR-C shared library.")
-set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL
- "Link tools against libMLIR.so")
+set(MLIR_BUILD_MLIR_DYLIB 0 CACHE BOOL "Builds the libMLIR shared library")
+set(MLIR_LINK_MLIR_DYLIB ${LLVM_LINK_LLVM_DYLIB} CACHE BOOL "Link tools against libMLIR.so")
+if (MLIR_LINK_MLIR_DYLIB)
+ set(MLIR_BUILD_MLIR_DYLIB 1)
+endif()
configure_file(
${MLIR_MAIN_INCLUDE_DIR}/mlir/Config/mlir-config.h.cmake
@@ -235,6 +238,15 @@ set(MLIR_PDLL_TABLEGEN_TARGET "${MLIR_PDLL_TABLEGEN_TARGET}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_EXE "${MLIR_SRC_SHARDER_TABLEGEN_EXE}" CACHE INTERNAL "")
set(MLIR_SRC_SHARDER_TABLEGEN_TARGET "${MLIR_SRC_SHARDER_TABLEGEN_TARGET}" CACHE INTERNAL "")
+# Add MLIR dylib target here, as calls to mlir_target_link_libraries (used by
+# individual libs below) assume that such a target may exist,
+# but we cannot define the actual dylib until after all individual libs
+# are defined.
+if (MLIR_LINK_MLIR_DYLIB)
+ add_library(MLIRDylib INTERFACE)
+ add_mlir_library_install(MLIRDylib)
+endif()
+
add_subdirectory(include/mlir)
add_subdirectory(lib)
# C API needs all dialects for registration, but should be built before tests.
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 38839679ef8b1..170af1878a321 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -203,6 +203,11 @@ function(add_mlir_interface interface)
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
endfunction()
+# Add a tablegen target that generates headers in the include directory
+macro(add_mlir_tablegen_target target)
+ add_public_tablegen_target(${target})
+ add_dependencies(mlir-headers ${target})
+endmacro()
# Generate Documentation
function(add_mlir_doc doc_filename output_file output_directory command)
@@ -354,7 +359,7 @@ function(add_mlir_library name)
# Yes, because the target "obj.${name}" is referenced.
set(NEEDS_OBJECT_LIB ON)
endif ()
- if(LLVM_BUILD_LLVM_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
+ if(MLIR_BUILD_MLIR_DYLIB AND NOT ARG_EXCLUDE_FROM_LIBMLIR AND NOT XCODE)
# Yes, because in addition to the shared library, the object files are
# needed for linking into libMLIR.so (see mlir/tools/mlir-shlib/CMakeLists.txt).
# For XCode, -force_load is used instead.
@@ -745,7 +750,7 @@ function(mlir_target_link_libraries target type)
endif()
if (MLIR_LINK_MLIR_DYLIB)
- target_link_libraries(${target} ${type} MLIR)
+ target_link_libraries(${target} ${type} MLIRDylib)
else()
target_link_libraries(${target} ${type} ${ARGN})
endif()
diff --git a/mlir/include/mlir/Conversion/CMakeLists.txt b/mlir/include/mlir/Conversion/CMakeLists.txt
index 9f76ab659215e..0a19b88e29dcb 100644
--- a/mlir/include/mlir/Conversion/CMakeLists.txt
+++ b/mlir/include/mlir/Conversion/CMakeLists.txt
@@ -4,6 +4,7 @@ mlir_tablegen(Passes.h.inc -gen-pass-decls -name Conversion)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Conversion)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Conversion)
add_public_tablegen_target(MLIRConversionPassIncGen)
+add_dependencies(mlir-generic-headers MLIRConversionPassIncGen)
add_mlir_doc(Passes ConversionPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
index ed074c205a551..e19e72e8e6033 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/IR/CMakeLists.txt
@@ -4,9 +4,9 @@ add_mlir_doc(AMDGPU AMDGPU Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUEnums.h.inc -gen-enum-decls)
mlir_tablegen(AMDGPUEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRAMDGPUEnumsGen)
+add_mlir_tablegen_target(MLIRAMDGPUEnumsGen)
set(LLVM_TARGET_DEFINITIONS AMDGPU.td)
mlir_tablegen(AMDGPUAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=amdgpu)
mlir_tablegen(AMDGPUAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=amdgpu)
-add_public_tablegen_target(MLIRAMDGPUAttributesIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 8880989f4fed4..4e3b2f2084b74 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
-add_public_tablegen_target(MLIRAMDGPUTransformsIncGen)
-add_dependencies(mlir-headers MLIRAMDGPUTransformsIncGen)
+add_mlir_tablegen_target(MLIRAMDGPUTransformsIncGen)
add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index fe1b372f6e03d..2327f4ad65ef9 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,6 @@ add_subdirectory(TransformOps)
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
-add_public_tablegen_target(MLIRAffinePassIncGen)
+add_mlir_tablegen_target(MLIRAffinePassIncGen)
add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
index c743f5c0766ba..466a4b74dbb5d 100644
--- a/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS AffineTransformOps.td)
mlir_tablegen(AffineTransformOps.h.inc -gen-op-decls)
mlir_tablegen(AffineTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRAffineTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRAffineTransformOpsIncGen)
add_mlir_doc(AffineTransformOps AffineLoopTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 3f39e403adf12..dcadcd9cb39b3 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
-add_public_tablegen_target(MLIRArithTransformsIncGen)
+add_mlir_tablegen_target(MLIRArithTransformsIncGen)
add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
index 3de3ec3f3a0e8..07840a9a771e0 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/CMakeLists.txt
@@ -3,6 +3,6 @@ add_mlir_doc(ArmNeon ArmNeon Dialects/ -gen-dialect-doc -dialect=arm_neon)
set(LLVM_TARGET_DEFINITIONS ArmNeon.td)
mlir_tablegen(ArmNeonConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmNeonConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonConversionsIncGen)
add_subdirectory(TransformOps)
diff --git a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
index b8bc72a2bb734..8e55de7980147 100644
--- a/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmNeon/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmNeonVectorTransformOps.td)
mlir_tablegen(ArmNeonVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmNeonVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmNeonVectorTransformOpsIncGen)
add_mlir_doc(ArmNeonVectorTransformOps ArmNeonVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
index 9801d8b099e3f..1e5c37a204175 100644
--- a/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,25 +8,25 @@ mlir_tablegen(ArmSMEEnums.h.inc -gen-enum-decls)
mlir_tablegen(ArmSMEEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ArmSMEAttrDefs.h.inc -gen-attrdef-decls -attrdefs-dialect=arm_sme)
mlir_tablegen(ArmSMEAttrDefs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=arm_sme)
-add_public_tablegen_target(MLIRArmSMEOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEOpsIncGen)
# Generate LLVM IR Conversions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpsConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEConversionsIncGen)
# Generate op interface declarations and definitions
set(LLVM_TARGET_DEFINITIONS ArmSMEOps.td)
mlir_tablegen(ArmSMEOpInterfaces.h.inc -gen-op-interface-decls)
mlir_tablegen(ArmSMEOpInterfaces.cpp.inc -gen-op-interface-defs)
-add_public_tablegen_target(MLIRArmSMEOpInterfaces)
+add_mlir_tablegen_target(MLIRArmSMEOpInterfaces)
# Generate declarations and definitions of ArmSME intrinsic Ops
set(LLVM_TARGET_DEFINITIONS ArmSMEIntrinsicOps.td)
mlir_tablegen(ArmSMEIntrinsicOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSMEIntrinsicOps.cpp.inc -gen-op-defs)
mlir_tablegen(ArmSMEIntrinsicConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSMEIntrinsicOpsIncGen)
# Generate the docs
add_mlir_doc(ArmSMEOps ArmSMEOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 509f3fc2519cb..90e69c202b532 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,7 +2,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRArmSMETransformsIncGen)
-add_dependencies(mlir-headers MLIRArmSMETransformsIncGen)
+add_mlir_tablegen_target(MLIRArmSMETransformsIncGen)
add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
index 06595b7088a1e..f8d06951e7270 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -3,4 +3,4 @@ add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve)
set(LLVM_TARGET_DEFINITIONS ArmSVE.td)
mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions)
-add_public_tablegen_target(MLIRArmSVEConversionsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEConversionsIncGen)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
index ce8d8fea7f188..e279f37b2019b 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS ArmSVEVectorTransformOps.td)
mlir_tablegen(ArmSVEVectorTransformOps.h.inc -gen-op-decls)
mlir_tablegen(ArmSVEVectorTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRArmSVEVectorTransformOpsIncGen)
add_mlir_doc(ArmSVEVectorTransformOps ArmSVEVectorTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 7226642daf861..a2b8060a6561f 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
-add_public_tablegen_target(MLIRArmSVEPassIncGen)
+add_mlir_tablegen_target(MLIRArmSVEPassIncGen)
add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Async/CMakeLists.txt b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
index cabd5d3087cf3..f2642d6462831 100644
--- a/mlir/include/mlir/Dialect/Async/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Async/CMakeLists.txt
@@ -4,6 +4,6 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Async)
mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Async)
mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Async)
-add_public_tablegen_target(MLIRAsyncPassIncGen)
+add_mlir_tablegen_target(MLIRAsyncPassIncGen)
add_mlir_doc(Passes AsyncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
index 3ead52148c208..8f470dffcd607 100644
--- a/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/IR/CMakeLists.txt
@@ -8,11 +8,9 @@ add_mlir_interface(BufferViewFlowOpInterface)
set(LLVM_TARGET_DEFINITIONS BufferizationEnums.td)
mlir_tablegen(BufferizationEnums.h.inc -gen-enum-decls)
mlir_tablegen(BufferizationEnums.cpp.inc -gen-enum-defs)
-add_public_tablegen_target(MLIRBufferizationEnumsIncGen)
-add_dependencies(mlir-headers MLIRBufferizationEnumsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationEnumsIncGen)
set(LLVM_TARGET_DEFINITIONS BufferizationTypeInterfaces.td)
mlir_tablegen(BufferizationTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(BufferizationTypeInterfaces.cpp.inc -gen-type-interface-defs)
-add_public_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
-add_dependencies(mlir-headers MLIRBufferizationTypeInterfacesIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTypeInterfacesIncGen)
diff --git a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
index 95276e3e5e0d0..684c4295cd4f3 100644
--- a/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS BufferizationTransformOps.td)
mlir_tablegen(BufferizationTransformOps.h.inc -gen-op-decls)
mlir_tablegen(BufferizationTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRBufferizationTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRBufferizationTransformOpsIncGen)
add_mlir_doc(BufferizationTransformOps BufferizationTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcae4b8f26b89..bd6ea9a1cb29d 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
-add_public_tablegen_target(MLIRBufferizationPassIncGen)
-add_dependencies(mlir-headers MLIRBufferizationPassIncGen)
+add_mlir_tablegen_target(MLIRBufferizationPassIncGen)
add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
index 837664e25b3c2..6e47ddade9652 100644
--- a/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Complex/IR/CMakeLists.txt
@@ -6,4 +6,4 @@ mlir_tablegen(ComplexEnums.h.inc -gen-enum-decls)
mlir_tablegen(ComplexEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(ComplexAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(ComplexAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIRComplexAttributesIncGen)
+add_mlir_tablegen_target(MLIRComplexAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
index 4f8382e8e6e6b..74b1c541edaeb 100644
--- a/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/CMakeLists.txt
@@ -6,5 +6,4 @@ add_mlir_doc(DLTIAttrs DLTIDialect Dialects/ -gen-dialect-doc)
set(LLVM_TARGET_DEFINITIONS DLTIAttrs.td)
mlir_tablegen(DLTIAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect=dlti)
mlir_tablegen(DLTIAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect=dlti)
-add_public_tablegen_target(MLIRDLTIAttrsIncGen)
-add_dependencies(mlir-headers MLIRDLTIAttrsIncGen)
+add_mlir_tablegen_target(MLIRDLTIAttrsIncGen)
diff --git a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
index 1188d1a9b24d6..57faeca06794c 100644
--- a/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS DLTITransformOps.td)
mlir_tablegen(DLTITransformOps.h.inc -gen-op-decls)
mlir_tablegen(DLTITransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRDLTITransformOpsIncGen)
+add_mlir_tablegen_target(MLIRDLTITransformOpsIncGen)
add_mlir_doc(DLTITransformOps DLTITransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
index 299cee76cb1b4..c417a4ed3599a 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/IR/CMakeLists.txt
@@ -12,4 +12,4 @@ mlir_tablegen(EmitCEnums.h.inc -gen-enum-decls)
mlir_tablegen(EmitCEnums.cpp.inc -gen-enum-defs)
mlir_tablegen(EmitCAttributes.h.inc -gen-attrdef-decls)
mlir_tablegen(EmitCAttributes.cpp.inc -gen-attrdef-defs)
-add_public_tablegen_target(MLIREmitCAttributesIncGen)
+add_mlir_tablegen_target(MLIREmitCAttributesIncGen)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index 0b507d75fa07a..d112be898c355 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
set(LLVM_TARGET_DEFINITIONS Passes.td)
mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
-add_public_tablegen_target(MLIREmitCTransformsIncGen)
+add_mlir_tablegen_target(MLIREmitCTransformsIncGen)
add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
index 08a6123dd2006..b19806f6007aa 100644
--- a/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/IR/CMakeLists.txt
@@ -3,6 +3,6 @@ mlir_tablegen(FuncOps.h.inc -gen-op-decls)
mlir_tablegen(FuncOps.cpp.inc -gen-op-defs)
mlir_tablegen(FuncOpsDialect.h.inc -gen-dialect-decls)
mlir_tablegen(FuncOpsDialect.cpp.inc -gen-dialect-defs)
-add_public_tablegen_target(MLIRFuncOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncOpsIncGen)
add_mlir_doc(FuncOps FuncOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
index 7ac6504f3dc2c..6098acbed2151 100644
--- a/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/TransformOps/CMakeLists.txt
@@ -1,6 +1,6 @@
set(LLVM_TARGET_DEFINITIONS FuncTransformOps.td)
mlir_tablegen(FuncTransformOps.h.inc -gen-op-decls)
mlir_tablegen(FuncTransformOps.cpp.inc -gen-op-defs)
-add_public_tablegen_target(MLIRFuncTransformOpsIncGen)
+add_mlir_tablegen_target(MLIRFuncTransformOpsIncGen)
add_mlir_doc(FuncTransformOps FuncTransformOps Dialects/ -gen-op-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 33c72e3c075cc..8a40eb0aa51f...
[truncated]
|
Thanks for the contribution!
This information isn't propagated: in LLVM we're looking at a PR as a single commit (it'll be squashed when merging), the PR description is what will become the commit message and it needs to be standalone. If you have 2 independent commits, they need to be separate PRs. |
This commit introduces a new CMake macro `add_mlir_tablegen_target` to AddMLIR.cmake, which can be used in place of `add_public_tablegen_target` to ensure that any tablegenned headers are generated _before_ building any tools such as mlir-opt etc. that may use those headers. Otherwise, spurious build failures may occur, particularly when using a high number of parallel jobs. Most uses of `add_public_tablegen_target` in the dialects have been refactored to use `add_mlir_tablegen_target`.
ccc790f
to
8742891
Compare
Thanks for the heads-up. I split off the |
mlir-headers
/mlir-generic-headers
CMake targets
mlir/include/mlir/IR/CMakeLists.txt
Outdated
|
||
set(LLVM_TARGET_DEFINITIONS TensorEncoding.td) | ||
mlir_tablegen(TensorEncInterfaces.h.inc -gen-attr-interface-decls) | ||
mlir_tablegen(TensorEncInterfaces.cpp.inc -gen-attr-interface-defs) | ||
add_public_tablegen_target(MLIRTensorEncodingIncGen) | ||
add_dependencies(mlir-generic-headers MLIRTensorEncodingIncGen) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why a macro for handling mlir-headers
but not one for mlir-generic-headers
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main reason was because I couldn't think of a good name for it. And mlir-headers
is used far more frequently than mlir-generic-headers
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about descriptive names:
add_mlir_dialect_tablegen_target
add_mlir_generic_tablegen_target
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed an update with your suggested names, which cleans up the remaining calls quite nicely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, LGTM on principle. One question inline.
I tweaked the title: as far as I can tell this is orthogonal to any XXX_DYLIB cmake config flag: if we fail on a target here we should be able to reproduce independently.
I don't have write access, so I'd appreciate a maintainer merging once everything looks good. |
@Technius Congratulations on having your first Pull Request (PR) merged into the LLVM Project! Your changes will be combined with recent changes from other authors, then tested by our build bots. If there is a problem with a build, you may receive a report in an email or a comment on this PR. Please check whether problems have been caused by your change specifically, as the builds can include changes from many authors. It is not uncommon for your change to be included in a build that fails due to someone else's changes, or infrastructure issues. How to do this, and the rest of the post-merge process, is covered in detail here. If your change does cause a problem, it may be reverted, or you can revert it yourself. This is a normal part of LLVM development. You can fix your changes and open a new PR to merge them again. If you don't get any reports, no action is required from you. Your changes are working as expected, well done! |
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/169/builds/14436 Here is the relevant piece of the build log for the reference
|
Tool targets like
mlir-opt
rely on themlir-headers
ormlir-generic-headers
targets to run first to generate headers. However, manyof the
IncGen
targets are not specified as dependencies of the header targetsin CMake, which causes spurious build failures when using a high number of
parallel build jobs.
Thus, this commit introduces a pair of new CMake macros
add_mlir_dialect_tablegen_target
andadd_mlir_generic_tablegen_target
toAddMLIR.cmake
, which can be used in place ofadd_public_tablegen_target
toensure (by convention) that
IncGen
targets are added to themlir-headers
(resp.
mlir-generic-headers
) target dependencies.Most uses of
add_public_tablegen_target
in the dialects have been refactoredto use the new macros.