[clang] [llvm] [mlir] [MLIR][CMake] Model transitive generated header dependencies (PR #222170)
Mehdi Amini via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 9 02:23:31 PDT 2026
https://github.com/joker-eph updated https://github.com/llvm/llvm-project/pull/222170
>From 50ddfb47bf76c4f80e4b7ea2ba5b1f4f31028648 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Tue, 8 Sep 2026 12:04:07 -0700
Subject: [PATCH] [MLIR][CMake] Order compilation after generated headers of
link dependencies
MLIR libraries depend on the `mlir-headers` aggregate, which serializes every
dialect library behind every TableGen target, and many of them repeat other
libraries' private `*IncGen` targets in DEPENDS to paper over dependencies that
the link graph should already express. Both hide missing edges: a library that
forgets a dependency still builds, because something else generated the header
first.
Ninja already orders object compilation transitively through the
`cmake_object_order_depends_target_*` phonies of every target-level dependency,
without waiting for archives to be linked. The only gap was that
`llvm_add_library` created such an edge from an object library only to its
PUBLIC LINK_LIBS. Resolve LINK_LIBS once the whole target graph exists and add
the edge for PUBLIC, PRIVATE and unqualified entries alike, resolving aliases,
extracting targets from generator expressions, and skipping non-targets such
as `-lpthread`.
With that in place:
* Every MLIR library lists its own TableGen targets in DEPENDS, and only those.
Dependencies on other libraries' `*IncGen` targets are removed; the link edge
covers them.
* `add_mlir_dialect_library` and friends no longer depend on `mlir-headers`.
* Header-only relationships (a library including generated headers of a library
it does not link) use the new `HEADER_LIBS` keyword of `add_mlir_library`.
They are resolved in a deferred pass to the TableGen targets of the named
libraries and of everything they link, never to the libraries themselves, so
a provider that links the consumer does not create a dependency cycle. Each
entry carries a comment naming the include that requires it; misspelled
entries are diagnosed at configure time.
* Fix a few genuinely missing edges found along the way (GPU/SPIRV sources
including LLVM's generated `Attributes.inc`, generated `.td` inputs for the
OpenACC and OpenMP dialects, CIR linking `MLIRPtrMemorySpaceInterfaces`).
Add mlir/docs/CMakeInfrastructure.md describing the three rules above and how
to check them, and a configure-time lit test exercising PRIVATE and generator
expression LINK_LIBS, forward references, transitive HEADER_LIBS, and the
diagnostics.
Validated with a fresh mlir+clang+flang configure on CMake 4.3 and 3.22, and
`ninja -t missingdeps` on fully built MLIR trees for both versions, which
reports no missing generated-header dependencies.
Assisted-by: Codex
Assisted-by: Claude Code
Co-Authored-By: Claude Fable 5.1 <noreply at anthropic.com>
---
clang/lib/CIR/Dialect/IR/CMakeLists.txt | 2 +-
clang/lib/CIR/Interfaces/CMakeLists.txt | 2 +
llvm/cmake/modules/AddLLVM.cmake | 75 ++++++++++---
mlir/cmake/modules/AddMLIR.cmake | 101 +++++++++++++++++-
mlir/docs/CMakeInfrastructure.md | 97 +++++++++++++++++
.../DefiningDialects/AttributesAndTypes.md | 2 +-
.../mlir/Dialect/OpenACC/CMakeLists.txt | 3 +
.../mlir/Dialect/OpenMP/CMakeLists.txt | 3 +
mlir/lib/Analysis/CMakeLists.txt | 4 -
mlir/lib/Bytecode/CMakeLists.txt | 4 +
mlir/lib/CAPI/Conversion/CMakeLists.txt | 3 -
mlir/lib/CAPI/Dialect/CMakeLists.txt | 32 ------
.../Conversion/AMDGPUToROCDL/CMakeLists.txt | 3 -
.../AffineToStandard/CMakeLists.txt | 3 -
.../ArithAndMathToAPFloat/CMakeLists.txt | 10 +-
.../Conversion/ArithToAMDGPU/CMakeLists.txt | 7 +-
.../Conversion/ArithToArmSME/CMakeLists.txt | 3 -
.../Conversion/ArithToEmitC/CMakeLists.txt | 3 -
.../lib/Conversion/ArithToLLVM/CMakeLists.txt | 3 -
.../Conversion/ArithToSPIRV/CMakeLists.txt | 3 -
.../Conversion/ArmNeon2dToIntr/CMakeLists.txt | 3 -
.../Conversion/ArmSMEToLLVM/CMakeLists.txt | 3 -
.../lib/Conversion/ArmSMEToSCF/CMakeLists.txt | 3 -
.../lib/Conversion/AsyncToLLVM/CMakeLists.txt | 3 -
.../BufferizationToMemRef/CMakeLists.txt | 3 -
.../Conversion/ComplexToLLVM/CMakeLists.txt | 3 -
.../Conversion/ComplexToLibm/CMakeLists.txt | 3 -
.../ComplexToROCDLLibraryCalls/CMakeLists.txt | 3 -
.../Conversion/ComplexToSPIRV/CMakeLists.txt | 3 -
.../ComplexToStandard/CMakeLists.txt | 3 -
.../ControlFlowToLLVM/CMakeLists.txt | 1 -
.../ControlFlowToSCF/CMakeLists.txt | 3 -
.../ControlFlowToSPIRV/CMakeLists.txt | 3 -
.../Conversion/ConvertToEmitC/CMakeLists.txt | 1 -
.../Conversion/ConvertToLLVM/CMakeLists.txt | 3 -
.../lib/Conversion/FuncToEmitC/CMakeLists.txt | 3 -
mlir/lib/Conversion/FuncToLLVM/CMakeLists.txt | 1 -
.../lib/Conversion/FuncToSPIRV/CMakeLists.txt | 3 -
mlir/lib/Conversion/GPUCommon/CMakeLists.txt | 1 -
.../Conversion/GPUToLLVMSPV/CMakeLists.txt | 3 -
mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt | 1 -
mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt | 3 -
.../lib/Conversion/IndexToLLVM/CMakeLists.txt | 3 -
.../Conversion/IndexToSPIRV/CMakeLists.txt | 3 -
.../LinalgToStandard/CMakeLists.txt | 3 -
mlir/lib/Conversion/MPIToLLVM/CMakeLists.txt | 3 -
.../lib/Conversion/MathToEmitC/CMakeLists.txt | 3 -
.../lib/Conversion/MathToFuncs/CMakeLists.txt | 3 -
mlir/lib/Conversion/MathToLLVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/MathToLibm/CMakeLists.txt | 3 -
mlir/lib/Conversion/MathToNVVM/CMakeLists.txt | 3 -
.../lib/Conversion/MathToROCDL/CMakeLists.txt | 3 -
.../lib/Conversion/MathToSPIRV/CMakeLists.txt | 3 -
mlir/lib/Conversion/MathToXeVM/CMakeLists.txt | 3 -
.../Conversion/MemRefToEmitC/CMakeLists.txt | 3 -
.../Conversion/MemRefToLLVM/CMakeLists.txt | 3 -
.../Conversion/MemRefToSPIRV/CMakeLists.txt | 3 -
.../lib/Conversion/NVGPUToNVVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/NVVMToLLVM/CMakeLists.txt | 3 -
.../Conversion/OpenACCToLLVM/CMakeLists.txt | 3 -
.../Conversion/OpenACCToSCF/CMakeLists.txt | 3 -
.../Conversion/OpenMPToLLVM/CMakeLists.txt | 1 -
.../Conversion/PDLToPDLInterp/CMakeLists.txt | 3 -
mlir/lib/Conversion/PtrToLLVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/RaiseWasm/CMakeLists.txt | 3 -
.../ReconcileUnrealizedCasts/CMakeLists.txt | 3 -
.../lib/Conversion/SCFToAffine/CMakeLists.txt | 3 -
.../SCFToControlFlow/CMakeLists.txt | 3 -
mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt | 3 -
mlir/lib/Conversion/SCFToGPU/CMakeLists.txt | 3 -
.../lib/Conversion/SCFToOpenMP/CMakeLists.txt | 3 -
mlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt | 3 -
.../lib/Conversion/SPIRVCommon/CMakeLists.txt | 5 +-
.../lib/Conversion/SPIRVToLLVM/CMakeLists.txt | 1 -
.../Conversion/ShapeToStandard/CMakeLists.txt | 1 -
mlir/lib/Conversion/ShardToMPI/CMakeLists.txt | 3 -
.../Conversion/TensorToLinalg/CMakeLists.txt | 3 -
.../Conversion/TensorToSPIRV/CMakeLists.txt | 3 -
.../lib/Conversion/TosaToArith/CMakeLists.txt | 3 -
.../Conversion/TosaToLinalg/CMakeLists.txt | 3 -
.../Conversion/TosaToMLProgram/CMakeLists.txt | 3 -
mlir/lib/Conversion/TosaToSCF/CMakeLists.txt | 3 -
.../Conversion/TosaToSPIRVTosa/CMakeLists.txt | 3 -
.../Conversion/TosaToTensor/CMakeLists.txt | 3 -
mlir/lib/Conversion/UBToLLVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/UBToSPIRV/CMakeLists.txt | 3 -
.../lib/Conversion/VectorToAMX/CMakeLists.txt | 3 -
.../Conversion/VectorToArmSME/CMakeLists.txt | 3 -
.../Conversion/VectorToLLVM/CMakeLists.txt | 1 -
.../Conversion/VectorToSPIRV/CMakeLists.txt | 1 -
.../Conversion/VectorToXeGPU/CMakeLists.txt | 3 -
.../lib/Conversion/XeGPUToXeVM/CMakeLists.txt | 3 -
mlir/lib/Conversion/XeVMToLLVM/CMakeLists.txt | 3 -
.../Dialect/AMDGPU/Transforms/CMakeLists.txt | 4 +
.../Dialect/Affine/Analysis/CMakeLists.txt | 3 -
.../Dialect/Affine/Transforms/CMakeLists.txt | 2 -
mlir/lib/Dialect/Arith/IR/CMakeLists.txt | 6 ++
mlir/lib/Dialect/ArmNeon/IR/CMakeLists.txt | 7 ++
.../Dialect/ArmNeon/Transforms/CMakeLists.txt | 3 -
mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt | 3 +
mlir/lib/Dialect/ArmSVE/IR/CMakeLists.txt | 1 +
.../Dialect/ArmSVE/Transforms/CMakeLists.txt | 1 -
.../Dialect/Bufferization/IR/CMakeLists.txt | 4 +
.../Bufferization/Transforms/CMakeLists.txt | 1 -
mlir/lib/Dialect/Complex/IR/CMakeLists.txt | 4 +
.../lib/Dialect/ControlFlow/IR/CMakeLists.txt | 6 ++
mlir/lib/Dialect/DLTI/CMakeLists.txt | 1 +
.../Dialect/DLTI/TransformOps/CMakeLists.txt | 1 -
mlir/lib/Dialect/EmitC/IR/CMakeLists.txt | 1 +
.../Dialect/Func/Extensions/CMakeLists.txt | 4 +
mlir/lib/Dialect/Func/IR/CMakeLists.txt | 5 +
mlir/lib/Dialect/GPU/CMakeLists.txt | 5 +-
mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt | 7 ++
.../Dialect/GPU/TransformOps/CMakeLists.txt | 2 -
mlir/lib/Dialect/GPU/Utils/CMakeLists.txt | 5 +
mlir/lib/Dialect/IRDL/CMakeLists.txt | 2 +
mlir/lib/Dialect/Index/IR/CMakeLists.txt | 4 +
mlir/lib/Dialect/LLVMIR/CMakeLists.txt | 27 +++--
mlir/lib/Dialect/Linalg/IR/CMakeLists.txt | 6 +-
mlir/lib/Dialect/Math/IR/CMakeLists.txt | 4 +
mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt | 1 +
mlir/lib/Dialect/OpenACC/IR/CMakeLists.txt | 1 -
.../Dialect/OpenACC/Transforms/CMakeLists.txt | 6 --
mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt | 9 --
.../OpenACCMPCommon/Interfaces/CMakeLists.txt | 2 +-
mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt | 1 -
.../Dialect/OpenMP/Transforms/CMakeLists.txt | 3 -
mlir/lib/Dialect/Ptr/IR/CMakeLists.txt | 8 +-
mlir/lib/Dialect/Quant/IR/CMakeLists.txt | 4 +
mlir/lib/Dialect/SCF/IR/CMakeLists.txt | 1 +
mlir/lib/Dialect/SMT/IR/CMakeLists.txt | 4 -
mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt | 9 +-
.../Dialect/Shape/Transforms/CMakeLists.txt | 11 +-
mlir/lib/Dialect/Shard/IR/CMakeLists.txt | 4 +
.../Dialect/Shard/Transforms/CMakeLists.txt | 3 +
.../Dialect/SparseTensor/IR/CMakeLists.txt | 5 +
.../SparseTensor/Pipelines/CMakeLists.txt | 7 ++
mlir/lib/Dialect/Tensor/IR/CMakeLists.txt | 4 +
mlir/lib/Dialect/Tosa/CMakeLists.txt | 5 +-
mlir/lib/Dialect/Transform/IR/CMakeLists.txt | 7 ++
.../Transform/Interfaces/CMakeLists.txt | 2 +
mlir/lib/Dialect/UB/IR/CMakeLists.txt | 4 +
mlir/lib/Dialect/Utils/CMakeLists.txt | 3 +
mlir/lib/Dialect/Vector/IR/CMakeLists.txt | 3 +-
mlir/lib/Dialect/X86/IR/CMakeLists.txt | 1 +
mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt | 1 +
mlir/lib/IR/CMakeLists.txt | 4 -
mlir/lib/Interfaces/CMakeLists.txt | 9 +-
mlir/lib/Interfaces/Utils/CMakeLists.txt | 3 -
mlir/lib/Reducer/CMakeLists.txt | 7 +-
mlir/lib/Rewrite/CMakeLists.txt | 8 +-
mlir/lib/Target/LLVMIR/CMakeLists.txt | 1 +
.../LLVMIR/Dialect/ArmNeon/CMakeLists.txt | 3 -
.../LLVMIR/Dialect/ArmSME/CMakeLists.txt | 3 -
.../LLVMIR/Dialect/ArmSVE/CMakeLists.txt | 3 -
.../Target/LLVMIR/Dialect/NVVM/CMakeLists.txt | 3 -
.../LLVMIR/Dialect/ROCDL/CMakeLists.txt | 3 -
.../Target/LLVMIR/Dialect/VCIX/CMakeLists.txt | 3 -
.../Target/LLVMIR/Dialect/XeVM/CMakeLists.txt | 3 -
mlir/lib/Target/SPIRV/CMakeLists.txt | 8 ++
.../SPIRV/Deserialization/CMakeLists.txt | 3 -
.../Target/SPIRV/Serialization/CMakeLists.txt | 3 -
mlir/lib/Transforms/CMakeLists.txt | 1 -
mlir/lib/Transforms/Utils/CMakeLists.txt | 3 +
mlir/test/CMake/header-dependencies.test | 97 +++++++++++++++++
mlir/test/CMake/lit.local.cfg | 3 +
mlir/test/lib/Dialect/NVGPU/CMakeLists.txt | 6 ++
mlir/test/lib/Dialect/Shard/CMakeLists.txt | 4 +
mlir/test/lib/Dialect/Test/CMakeLists.txt | 5 +-
mlir/test/lib/Dialect/Tosa/CMakeLists.txt | 5 +-
.../Interfaces/TilingInterface/CMakeLists.txt | 4 +-
mlir/test/python/lib/CMakeLists.txt | 3 -
mlir/unittests/IR/CMakeLists.txt | 3 -
mlir/unittests/Interfaces/CMakeLists.txt | 3 -
mlir/unittests/Parser/CMakeLists.txt | 3 -
176 files changed, 595 insertions(+), 407 deletions(-)
create mode 100644 mlir/docs/CMakeInfrastructure.md
create mode 100644 mlir/test/CMake/header-dependencies.test
create mode 100644 mlir/test/CMake/lit.local.cfg
diff --git a/clang/lib/CIR/Dialect/IR/CMakeLists.txt b/clang/lib/CIR/Dialect/IR/CMakeLists.txt
index c8205ebeabf6c..0274005a28858 100644
--- a/clang/lib/CIR/Dialect/IR/CMakeLists.txt
+++ b/clang/lib/CIR/Dialect/IR/CMakeLists.txt
@@ -20,6 +20,6 @@ add_clang_library(MLIRCIR
MLIRDataLayoutInterfaces
MLIRFuncDialect
MLIRLoopLikeInterface
- MLIRCIRInterfaces
+ MLIRPtrMemorySpaceInterfaces
clangAST
)
diff --git a/clang/lib/CIR/Interfaces/CMakeLists.txt b/clang/lib/CIR/Interfaces/CMakeLists.txt
index 8eec8b05aa951..07ac666ccbac0 100644
--- a/clang/lib/CIR/Interfaces/CMakeLists.txt
+++ b/clang/lib/CIR/Interfaces/CMakeLists.txt
@@ -13,8 +13,10 @@ add_clang_library(MLIRCIRInterfaces
MLIRCIRTypeInterfacesIncGen
MLIRCIRLoopOpInterfaceIncGen
MLIRCIROpInterfacesIncGen
+ MLIRCIRTypeConstraintsIncGen
LINK_LIBS
MLIRIR
+ MLIRPtrMemorySpaceInterfaces
MLIRSupport
)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index a267166eb6c2d..d19aecdd2bcb6 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -554,6 +554,48 @@ function(set_windows_version_resource_properties name resource_file)
"RC_PRODUCT_VERSION=\"${ARG_VERSION_STRING}\"")
endfunction(set_windows_version_resource_properties)
+# Collect the targets named by a LINK_LIBS item. Generator expressions cannot
+# be evaluated at configure time, so every token that names a target is
+# returned; ordering on all arms of a conditional expression is harmless.
+function(_llvm_link_item_targets output item)
+ if(item MATCHES "\\$<")
+ string(REGEX MATCHALL "[A-Za-z_][A-Za-z0-9_.+-]*(::[A-Za-z0-9_.+-]+)*"
+ candidates "${item}")
+ else()
+ set(candidates "${item}")
+ endif()
+ set(result)
+ foreach(candidate ${candidates})
+ if(TARGET "${candidate}")
+ get_target_property(aliased "${candidate}" ALIASED_TARGET)
+ if(aliased)
+ set(candidate "${aliased}")
+ endif()
+ list(APPEND result "${candidate}")
+ endif()
+ endforeach()
+ set(${output} ${result} PARENT_SCOPE)
+endfunction()
+
+# Order every object library after the targets in its LINK_LIBS, so that the
+# generated headers of a dependency exist before the objects compile. Ninja
+# follows target-level dependencies transitively without waiting for the
+# archives to be linked. This runs once the whole target graph exists, so
+# LINK_LIBS may name targets declared later, generator expressions, or plain
+# libraries such as -lpthread that are not targets at all.
+function(_llvm_add_object_link_dependencies)
+ get_property(object_libraries GLOBAL PROPERTY LLVM_OBJECT_LIBRARIES_WITH_LINK_LIBS)
+ foreach(object_library ${object_libraries})
+ get_target_property(items ${object_library} LLVM_OBJECT_LINK_LIBS)
+ foreach(item ${items})
+ _llvm_link_item_targets(targets "${item}")
+ if(targets)
+ add_dependencies(${object_library} ${targets})
+ endif()
+ endforeach()
+ endforeach()
+endfunction()
+
# llvm_add_library(name sources...
# SHARED;STATIC
# STATIC by default w/o BUILD_SHARED_LIBS.
@@ -674,25 +716,24 @@ function(llvm_add_library name)
if(ARG_DEPENDS)
add_dependencies(${obj_name} ${ARG_DEPENDS})
endif()
- # Treat link libraries like PUBLIC dependencies. LINK_LIBS might
- # result in generating header files. Add a dependendency so that
- # the generated header is created before this object library.
+ # Order compilation after the LINK_LIBS targets; see
+ # _llvm_add_object_link_dependencies.
if(ARG_LINK_LIBS)
- cmake_parse_arguments(LINK_LIBS_ARG
- ""
- ""
- "PUBLIC;PRIVATE"
+ cmake_parse_arguments(LINK_LIBS_ARG "" "" "PUBLIC;PRIVATE;INTERFACE"
${ARG_LINK_LIBS})
- foreach(link_lib ${LINK_LIBS_ARG_PUBLIC})
- if(LLVM_PTHREAD_LIB)
- # Can't specify a dependence on -lpthread
- if(NOT ${link_lib} STREQUAL ${LLVM_PTHREAD_LIB})
- add_dependencies(${obj_name} ${link_lib})
- endif()
- else()
- add_dependencies(${obj_name} ${link_lib})
- endif()
- endforeach()
+ set_property(TARGET ${obj_name} PROPERTY LLVM_OBJECT_LINK_LIBS
+ ${LINK_LIBS_ARG_PUBLIC} ${LINK_LIBS_ARG_PRIVATE}
+ ${LINK_LIBS_ARG_UNPARSED_ARGUMENTS})
+ set_property(GLOBAL APPEND PROPERTY LLVM_OBJECT_LIBRARIES_WITH_LINK_LIBS
+ ${obj_name})
+ get_property(scheduled GLOBAL PROPERTY
+ LLVM_OBJECT_LINK_DEPENDENCIES_SCHEDULED)
+ if(NOT scheduled)
+ cmake_language(DEFER DIRECTORY "${CMAKE_SOURCE_DIR}"
+ CALL _llvm_add_object_link_dependencies)
+ set_property(GLOBAL PROPERTY LLVM_OBJECT_LINK_DEPENDENCIES_SCHEDULED
+ TRUE)
+ endif()
endif()
if(ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index d3f534a02f9de..cab0089add2b7 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -273,6 +273,91 @@ function(_check_llvm_components_usage name)
endforeach()
endfunction()
+# Record HEADER_LIBS for resolution once every target exists, so providers may
+# be declared later and typos are diagnosed.
+function(_mlir_add_header_libs target)
+ if(NOT ARGN)
+ return()
+ endif()
+ set_property(TARGET ${target} APPEND PROPERTY MLIR_HEADER_LIBS ${ARGN})
+ set_property(GLOBAL APPEND PROPERTY MLIR_HEADER_LIBS_CONSUMERS ${target})
+ get_property(scheduled GLOBAL PROPERTY MLIR_HEADER_LIBS_SCHEDULED)
+ if(NOT scheduled)
+ cmake_language(DEFER DIRECTORY "${CMAKE_SOURCE_DIR}"
+ CALL _mlir_resolve_header_libs)
+ set_property(GLOBAL PROPERTY MLIR_HEADER_LIBS_SCHEDULED TRUE)
+ endif()
+endfunction()
+
+# Order each consumer after the TableGen targets of its HEADER_LIBS and of
+# everything they link or list in HEADER_LIBS, mirroring how a link dependency
+# propagates. Depending on those TableGen targets rather than on the libraries
+# keeps a header-only relationship from forming a dependency cycle when the
+# provider links the consumer.
+function(_mlir_resolve_header_libs)
+ get_property(consumers GLOBAL PROPERTY MLIR_HEADER_LIBS_CONSUMERS)
+ foreach(consumer ${consumers})
+ set(consumer_targets ${consumer})
+ if(TARGET obj.${consumer})
+ list(APPEND consumer_targets obj.${consumer})
+ endif()
+ get_target_property(providers ${consumer} MLIR_HEADER_LIBS)
+ set(queue)
+ foreach(provider ${providers})
+ if(NOT TARGET "${provider}")
+ message(SEND_ERROR
+ "${consumer}: HEADER_LIBS entry '${provider}' is not a target")
+ continue()
+ endif()
+ get_target_property(type ${provider} TYPE)
+ if(type STREQUAL "UTILITY")
+ message(SEND_ERROR
+ "${consumer}: HEADER_LIBS entry '${provider}' is not a library; "
+ "list TableGen targets in DEPENDS instead")
+ continue()
+ endif()
+ _llvm_link_item_targets(targets "${provider}")
+ list(APPEND queue ${targets})
+ endforeach()
+
+ set(visited)
+ set(tablegen_targets)
+ while(queue)
+ list(POP_FRONT queue provider)
+ if(provider IN_LIST visited)
+ continue()
+ endif()
+ list(APPEND visited ${provider})
+ get_target_property(imported ${provider} IMPORTED)
+ if(imported)
+ # Installed headers already exist.
+ continue()
+ endif()
+ get_target_property(dependencies ${provider} MANUALLY_ADDED_DEPENDENCIES)
+ foreach(dependency ${dependencies})
+ if(TARGET "${dependency}")
+ get_target_property(type ${dependency} TYPE)
+ if(type STREQUAL "UTILITY")
+ list(APPEND tablegen_targets ${dependency})
+ endif()
+ endif()
+ endforeach()
+ get_target_property(links ${provider} INTERFACE_LINK_LIBRARIES)
+ get_target_property(header_libs ${provider} MLIR_HEADER_LIBS)
+ foreach(item ${links} ${header_libs})
+ _llvm_link_item_targets(targets "${item}")
+ list(APPEND queue ${targets})
+ endforeach()
+ endwhile()
+ list(REMOVE_DUPLICATES tablegen_targets)
+ if(tablegen_targets)
+ foreach(consumer_target ${consumer_targets})
+ add_dependencies(${consumer_target} ${tablegen_targets})
+ endforeach()
+ endif()
+ endforeach()
+endfunction()
+
function(add_mlir_example_library name)
cmake_parse_arguments(ARG
"SHARED;DISABLE_INSTALL"
@@ -325,11 +410,16 @@ endfunction()
# are compatible with building an object library.
# STANDALONE
# Don't link against LLVMSupport.
+# HEADER_LIBS
+# MLIR libraries whose generated headers this library includes without
+# linking them; compilation is ordered after the TableGen targets of those
+# libraries and of the libraries they link. Libraries in LINK_LIBS need no
+# entry here, and a library's own TableGen targets belong in DEPENDS.
function(add_mlir_library name)
cmake_parse_arguments(ARG
"SHARED;INSTALL_WITH_TOOLCHAIN;EXCLUDE_FROM_LIBMLIR;DISABLE_INSTALL;ENABLE_AGGREGATION;OBJECT;STANDALONE"
""
- "ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS"
+ "ADDITIONAL_HEADERS;DEPENDS;HEADER_LIBS;LINK_COMPONENTS;LINK_LIBS"
${ARGN})
_set_mlir_additional_headers_as_srcs(${ARG_ADDITIONAL_HEADERS})
@@ -388,6 +478,7 @@ function(add_mlir_library name)
list(APPEND ARG_DEPENDS mlir-generic-headers)
llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs} DEPENDS ${ARG_DEPENDS} LINK_COMPONENTS ${ARG_LINK_COMPONENTS} LINK_LIBS ${ARG_LINK_LIBS})
+ _mlir_add_header_libs(${name} ${ARG_HEADER_LIBS})
if(TARGET ${name})
target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
@@ -677,25 +768,25 @@ endfunction()
# Declare the library associated with a dialect.
function(add_mlir_dialect_library name)
set_property(GLOBAL APPEND PROPERTY MLIR_DIALECT_LIBS ${name})
- add_mlir_library(${ARGV} DEPENDS mlir-headers)
+ add_mlir_library(${ARGV})
endfunction(add_mlir_dialect_library)
# Declare the library associated with a conversion.
function(add_mlir_conversion_library name)
set_property(GLOBAL APPEND PROPERTY MLIR_CONVERSION_LIBS ${name})
- add_mlir_library(${ARGV} DEPENDS mlir-headers)
+ add_mlir_library(${ARGV})
endfunction(add_mlir_conversion_library)
# Declare the library associated with an extension.
function(add_mlir_extension_library name)
set_property(GLOBAL APPEND PROPERTY MLIR_EXTENSION_LIBS ${name})
- add_mlir_library(${ARGV} DEPENDS mlir-headers)
+ add_mlir_library(${ARGV})
endfunction(add_mlir_extension_library)
# Declare the library associated with a translation.
function(add_mlir_translation_library name)
set_property(GLOBAL APPEND PROPERTY MLIR_TRANSLATION_LIBS ${name})
- add_mlir_library(${ARGV} DEPENDS mlir-headers)
+ add_mlir_library(${ARGV})
endfunction(add_mlir_translation_library)
# Verification tools to aid debugging.
diff --git a/mlir/docs/CMakeInfrastructure.md b/mlir/docs/CMakeInfrastructure.md
new file mode 100644
index 0000000000000..842726d914184
--- /dev/null
+++ b/mlir/docs/CMakeInfrastructure.md
@@ -0,0 +1,97 @@
+# CMake Infrastructure
+
+[TOC]
+
+MLIR extends LLVM's CMake helpers in
+[`AddMLIR.cmake`](../cmake/modules/AddMLIR.cmake). This document describes how
+MLIR libraries declare their dependencies, in particular on TableGen-generated
+headers. Getting these right matters: a missing dependency does not fail a
+warm build, it only shows up as a race in a clean, parallel build.
+
+## Libraries
+
+`add_mlir_library` and its wrappers (`add_mlir_dialect_library`,
+`add_mlir_conversion_library`, `add_mlir_extension_library`,
+`add_mlir_translation_library`) build on `llvm_add_library` and accept the
+same keywords, plus `HEADER_LIBS`:
+
+~~~cmake
+add_mlir_dialect_library(MLIRFooDialect
+ FooDialect.cpp
+ FooOps.cpp
+
+ ADDITIONAL_HEADER_DIRS
+ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Foo
+
+ DEPENDS
+ MLIRFooOpsIncGen
+ MLIRFooInterfacesIncGen
+
+ LINK_LIBS PUBLIC
+ MLIRIR
+ MLIRBarDialect
+ )
+~~~
+
+## TableGen targets
+
+Set `LLVM_TARGET_DEFINITIONS`, call `mlir_tablegen` once per output, then
+create the target:
+
+| Helper | Use for |
+| --- | --- |
+| `add_mlir_dialect` | The standard op, type and dialect declarations of a dialect |
+| `add_mlir_dialect_tablegen_target` | Other dialect-specific headers |
+| `add_mlir_interface`, `add_mlir_generic_tablegen_target` | Dialect-independent headers such as interfaces and pass registries |
+| `add_public_tablegen_target` | Files private to one library, such as rewrite patterns |
+
+Dialect-independent targets are collected in `mlir-generic-headers`, which
+every MLIR library depends on. Dialect-specific targets are collected in
+`mlir-headers`; do not depend on that aggregate, it serializes every dialect
+behind every generator.
+
+## Generated header dependencies
+
+Three rules cover every generated header in MLIR:
+
+1. **A library lists its own TableGen targets in `DEPENDS`.** These are the
+ targets producing the `.inc` files that its sources or public headers
+ include, normally the ones declared in the matching `include/` directory.
+
+2. **Linking a library orders compilation after that library's generated
+ headers.** Every `LINK_LIBS` entry, `PUBLIC` or `PRIVATE`, becomes a
+ target-level ordering dependency of the object library, and Ninja follows
+ those dependencies transitively without waiting for archives to be linked.
+ Never list another library's `*IncGen` target: link the library that owns it.
+
+3. **`HEADER_LIBS` names libraries whose generated headers are included
+ without linking them.** Compilation is ordered after the TableGen targets of
+ that library and of the libraries it links, but not after the libraries
+ themselves, so this cannot create a dependency cycle when the provider links
+ the consumer. Add a comment naming the include that requires the edge:
+
+ ~~~cmake
+ # ArithDialect.cpp includes the generated Bufferization interfaces.
+ HEADER_LIBS
+ MLIRBufferizationDialect
+ ~~~
+
+ A misspelled entry is diagnosed at configure time.
+
+Generated LLVM headers are not covered by these rules; libraries that include
+them still list `intrinsics_gen` or the relevant LLVM target in `DEPENDS`.
+
+## Checking dependencies
+
+A missing dependency is only visible from a clean build. After configuring a
+fresh Ninja build directory, build a few leaf libraries in parallel rather
+than an aggregate target, for example:
+
+~~~sh
+ninja -C <build> MLIRArmNeonDialect MLIRLinalgDialect
+~~~
+
+An aggregate such as `check-mlir` often generates headers incidentally and
+hides the race. After a successful build has populated the compiler depfiles,
+`ninja -C <build> -t missingdeps` lists every generated file that an object
+includes without a path to its generator in the build graph.
diff --git a/mlir/docs/DefiningDialects/AttributesAndTypes.md b/mlir/docs/DefiningDialects/AttributesAndTypes.md
index a339a763bd607..076b44b58f29c 100644
--- a/mlir/docs/DefiningDialects/AttributesAndTypes.md
+++ b/mlir/docs/DefiningDialects/AttributesAndTypes.md
@@ -192,7 +192,7 @@ mlir_tablegen(<Your Dialect>AttrDefs.h.inc -gen-attrdef-decls
-attrdefs-dialect=<Your Dialect>)
mlir_tablegen(<Your Dialect>AttrDefs.cpp.inc -gen-attrdef-defs
-attrdefs-dialect=<Your Dialect>)
-add_public_tablegen_target(<Your Dialect>AttrDefsIncGen)
+add_mlir_dialect_tablegen_target(<Your Dialect>AttrDefsIncGen)
```
The generated `<Your Dialect>AttrDefs.h.inc` will need to be included whereever
diff --git a/mlir/include/mlir/Dialect/OpenACC/CMakeLists.txt b/mlir/include/mlir/Dialect/OpenACC/CMakeLists.txt
index 789cd709ff16d..f242f3f5c2a22 100644
--- a/mlir/include/mlir/Dialect/OpenACC/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/OpenACC/CMakeLists.txt
@@ -3,6 +3,8 @@ add_subdirectory(Transforms)
set(LLVM_TARGET_DEFINITIONS ${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend/OpenACC/ACC.td)
mlir_tablegen(AccCommon.td --gen-directive-decl --directives-dialect=OpenACC)
add_mlir_dialect_tablegen_target(acc_common_td)
+# Subsequent TableGen inputs include the generated AccCommon.td file.
+list(APPEND LLVM_TARGET_DEPENDS acc_common_td)
add_mlir_dialect(OpenACCOps acc)
@@ -25,3 +27,4 @@ set(LLVM_TARGET_DEFINITIONS OpenACCTypeInterfaces.td)
mlir_tablegen(OpenACCTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(OpenACCTypeInterfaces.cpp.inc -gen-type-interface-defs)
add_mlir_dialect_tablegen_target(MLIROpenACCTypeInterfacesIncGen)
+list(REMOVE_ITEM LLVM_TARGET_DEPENDS acc_common_td)
diff --git a/mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt b/mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt
index 691163d9ce9ac..7fe3c36c5c54b 100644
--- a/mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/OpenMP/CMakeLists.txt
@@ -3,6 +3,8 @@ add_subdirectory(Transforms)
set(LLVM_TARGET_DEFINITIONS ${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend/OpenMP/OMP.td)
mlir_tablegen(OmpCommon.td --gen-directive-decl --directives-dialect=OpenMP)
add_mlir_dialect_tablegen_target(omp_common_td)
+# Subsequent TableGen inputs include the generated OmpCommon.td file.
+list(APPEND LLVM_TARGET_DEPENDS omp_common_td)
set(LLVM_TARGET_DEFINITIONS OpenMPOps.td)
@@ -35,3 +37,4 @@ set(LLVM_TARGET_DEFINITIONS OpenMPTypeInterfaces.td)
mlir_tablegen(OpenMPTypeInterfaces.h.inc -gen-type-interface-decls)
mlir_tablegen(OpenMPTypeInterfaces.cpp.inc -gen-type-interface-defs)
add_mlir_generic_tablegen_target(MLIROpenMPTypeInterfacesIncGen)
+list(REMOVE_ITEM LLVM_TARGET_DEPENDS omp_common_td)
diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt
index 2712ab503663e..b630f5b883d84 100644
--- a/mlir/lib/Analysis/CMakeLists.txt
+++ b/mlir/lib/Analysis/CMakeLists.txt
@@ -47,9 +47,6 @@ add_mlir_library(MLIRAnalysis
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
- DEPENDS
- mlir-headers
-
LINK_LIBS PUBLIC
MLIRCallInterfaces
MLIRControlFlowInterfaces
@@ -65,4 +62,3 @@ add_mlir_library(MLIRAnalysis
MLIRSideEffectInterfaces
MLIRViewLikeInterface
)
-
diff --git a/mlir/lib/Bytecode/CMakeLists.txt b/mlir/lib/Bytecode/CMakeLists.txt
index c89415f60d124..5c45b2e9e0f31 100644
--- a/mlir/lib/Bytecode/CMakeLists.txt
+++ b/mlir/lib/Bytecode/CMakeLists.txt
@@ -7,6 +7,10 @@ add_mlir_library(MLIRBytecodeOpInterface
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Bytecode
+ DEPENDS
+ MLIRBytecodeOpInterfaceIncGen
+ MLIRBytecodeDialectInterfaceIncGen
+
LINK_LIBS PUBLIC
MLIRIR
MLIRSupport
diff --git a/mlir/lib/CAPI/Conversion/CMakeLists.txt b/mlir/lib/CAPI/Conversion/CMakeLists.txt
index 8cafc09d363cd..166e79916be03 100644
--- a/mlir/lib/CAPI/Conversion/CMakeLists.txt
+++ b/mlir/lib/CAPI/Conversion/CMakeLists.txt
@@ -2,9 +2,6 @@ get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
add_mlir_upstream_c_api_library(MLIRCAPIConversion
Passes.cpp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
${conversion_libs}
)
diff --git a/mlir/lib/CAPI/Dialect/CMakeLists.txt b/mlir/lib/CAPI/Dialect/CMakeLists.txt
index 551f5a5a3df77..eaab77e95cf2b 100644
--- a/mlir/lib/CAPI/Dialect/CMakeLists.txt
+++ b/mlir/lib/CAPI/Dialect/CMakeLists.txt
@@ -3,8 +3,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIAffine
AffinePasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRAffinePassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -17,8 +15,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIAMDGPU
AMDGPUPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRNVGPUPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -63,8 +59,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIArmSVE
ArmSVEPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRArmSVEPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -77,8 +71,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIAsync
AsyncPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRAsyncPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -92,8 +84,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIBufferization
BufferizationPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRBufferizationPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -156,8 +146,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIGPU
GPUPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRGPUPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -188,8 +176,6 @@ add_mlir_upstream_c_api_library(MLIRCAPILinalg
LinalgPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRLinalgPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -226,8 +212,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIMemRef
PARTIAL_SOURCES_INTENDED
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRMemRefPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -240,8 +224,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIMLProgram
MLProgramPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRMLProgramPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -263,8 +245,6 @@ add_mlir_upstream_c_api_library(MLIRCAPINVGPU
NVGPUPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRNVGPUPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -286,8 +266,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIOpenACC
OpenACCPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIROpenACCPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -354,8 +332,6 @@ add_mlir_upstream_c_api_library(MLIRCAPISCF
SCFPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRSCFPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -379,8 +355,6 @@ add_mlir_upstream_c_api_library(MLIRCAPIShard
ShardPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRShardPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -402,8 +376,6 @@ add_mlir_upstream_c_api_library(MLIRCAPISparseTensor
SparseTensorPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRSparseTensorPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -416,8 +388,6 @@ add_mlir_upstream_c_api_library(MLIRCAPISPIRV
SPIRVPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRSPIRVPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
@@ -441,8 +411,6 @@ add_mlir_upstream_c_api_library(MLIRCAPITosa
TosaPasses.cpp
PARTIAL_SOURCES_INTENDED
- DEPENDS
- MLIRTosaPassIncGen
LINK_LIBS PUBLIC
MLIRCAPIIR
diff --git a/mlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt b/mlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt
index 25cceb9d1d37f..a65a23cb31598 100644
--- a/mlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt
+++ b/mlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRAMDGPUToROCDL
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/AMDGPUToROCDL
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
index cd8193aee8da3..87a72ed33bfc4 100644
--- a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRAffineToStandard
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/AffineToStandard
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRAffineDialect
MLIRAffineTransforms
diff --git a/mlir/lib/Conversion/ArithAndMathToAPFloat/CMakeLists.txt b/mlir/lib/Conversion/ArithAndMathToAPFloat/CMakeLists.txt
index a7a89a0a463fc..5999120125b0c 100644
--- a/mlir/lib/Conversion/ArithAndMathToAPFloat/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithAndMathToAPFloat/CMakeLists.txt
@@ -14,9 +14,6 @@ add_mlir_conversion_library(MLIRArithToAPFloat
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
@@ -36,12 +33,13 @@ add_mlir_conversion_library(MLIRMathToAPFloat
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
+ # MathToAPFloat.cpp includes the generated Math transforms pass header.
+ HEADER_LIBS
+ MLIRMathTransforms
+
LINK_LIBS PUBLIC
MLIRTransformUtils
MLIRArithAndMathToAPFloatUtils
diff --git a/mlir/lib/Conversion/ArithToAMDGPU/CMakeLists.txt b/mlir/lib/Conversion/ArithToAMDGPU/CMakeLists.txt
index 50be09ab5a7c5..49682bd8b47d7 100644
--- a/mlir/lib/Conversion/ArithToAMDGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithToAMDGPU/CMakeLists.txt
@@ -4,12 +4,13 @@ add_mlir_conversion_library(MLIRArithToAMDGPU
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToAMDGPU
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
+ # ArithToAMDGPU.cpp includes VectorRewritePatterns.h.
+ HEADER_LIBS
+ MLIRVectorTransforms
+
LINK_LIBS PUBLIC
MLIRAMDGPUDialect
MLIRAMDGPUUtils
diff --git a/mlir/lib/Conversion/ArithToArmSME/CMakeLists.txt b/mlir/lib/Conversion/ArithToArmSME/CMakeLists.txt
index c2a6fe5398e7c..7bb8627b380c1 100644
--- a/mlir/lib/Conversion/ArithToArmSME/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithToArmSME/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArithToArmSME
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToArmSME
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ArithToEmitC/CMakeLists.txt b/mlir/lib/Conversion/ArithToEmitC/CMakeLists.txt
index 46f9aacbb14e1..c71e956deecc9 100644
--- a/mlir/lib/Conversion/ArithToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithToEmitC/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRArithToEmitC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToEmitC
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIREmitCCommonConversion
diff --git a/mlir/lib/Conversion/ArithToLLVM/CMakeLists.txt b/mlir/lib/Conversion/ArithToLLVM/CMakeLists.txt
index 0a0e25e18b47a..e441f3fa6e21b 100644
--- a/mlir/lib/Conversion/ArithToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArithToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ArithToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/ArithToSPIRV/CMakeLists.txt
index a5385d9cee6af..5096adf6e247d 100644
--- a/mlir/lib/Conversion/ArithToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArithToSPIRV/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArithToSPIRV
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArithToSPIRV
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ArmNeon2dToIntr/CMakeLists.txt b/mlir/lib/Conversion/ArmNeon2dToIntr/CMakeLists.txt
index bab9d6e289418..7afead9b90df9 100644
--- a/mlir/lib/Conversion/ArmNeon2dToIntr/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArmNeon2dToIntr/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArmNeon2dToIntr
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArmNeon2dToIntr
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ArmSMEToLLVM/CMakeLists.txt b/mlir/lib/Conversion/ArmSMEToLLVM/CMakeLists.txt
index d0a921296668d..9975466611865 100644
--- a/mlir/lib/Conversion/ArmSMEToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArmSMEToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArmSMEToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArmSMEToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArmSMETransforms
MLIRArmSMEDialect
diff --git a/mlir/lib/Conversion/ArmSMEToSCF/CMakeLists.txt b/mlir/lib/Conversion/ArmSMEToSCF/CMakeLists.txt
index 467c3b942e754..c9842044f4298 100644
--- a/mlir/lib/Conversion/ArmSMEToSCF/CMakeLists.txt
+++ b/mlir/lib/Conversion/ArmSMEToSCF/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRArmSMEToSCF
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ArmSMEToSCF
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArmSMEDialect
MLIRTransforms
diff --git a/mlir/lib/Conversion/AsyncToLLVM/CMakeLists.txt b/mlir/lib/Conversion/AsyncToLLVM/CMakeLists.txt
index ca692bb2a1b6d..094f1f3c5ec28 100644
--- a/mlir/lib/Conversion/AsyncToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/AsyncToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRAsyncToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/AsyncToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/BufferizationToMemRef/CMakeLists.txt b/mlir/lib/Conversion/BufferizationToMemRef/CMakeLists.txt
index fc32d3dcf2cb6..e4b37dc3093ff 100644
--- a/mlir/lib/Conversion/BufferizationToMemRef/CMakeLists.txt
+++ b/mlir/lib/Conversion/BufferizationToMemRef/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRBufferizationToMemRef
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/BufferizationToMemRef
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRBufferizationDialect
MLIRBufferizationTransforms
diff --git a/mlir/lib/Conversion/ComplexToLLVM/CMakeLists.txt b/mlir/lib/Conversion/ComplexToLLVM/CMakeLists.txt
index 074bc4bc3f0d7..ad674dd3f1f2a 100644
--- a/mlir/lib/Conversion/ComplexToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/ComplexToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRComplexToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ComplexToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ComplexToLibm/CMakeLists.txt b/mlir/lib/Conversion/ComplexToLibm/CMakeLists.txt
index 5465e4b9fd969..4638f76506086 100644
--- a/mlir/lib/Conversion/ComplexToLibm/CMakeLists.txt
+++ b/mlir/lib/Conversion/ComplexToLibm/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRComplexToLibm
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ComplexToLibm
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ComplexToROCDLLibraryCalls/CMakeLists.txt b/mlir/lib/Conversion/ComplexToROCDLLibraryCalls/CMakeLists.txt
index 695bb2dd0a82c..c67a029c49c2f 100644
--- a/mlir/lib/Conversion/ComplexToROCDLLibraryCalls/CMakeLists.txt
+++ b/mlir/lib/Conversion/ComplexToROCDLLibraryCalls/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRComplexToROCDLLibraryCalls
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ComplexToROCDLLibraryCalls
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/ComplexToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/ComplexToSPIRV/CMakeLists.txt
index 59bc1a9538fd5..fb25be0e01ff6 100644
--- a/mlir/lib/Conversion/ComplexToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/ComplexToSPIRV/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRComplexToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRComplexDialect
MLIRIR
diff --git a/mlir/lib/Conversion/ComplexToStandard/CMakeLists.txt b/mlir/lib/Conversion/ComplexToStandard/CMakeLists.txt
index c3cf92f57b48d..c0b84e245628f 100644
--- a/mlir/lib/Conversion/ComplexToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/ComplexToStandard/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRComplexToStandard
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ComplexToStandard
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRComplexDivisionConversion
diff --git a/mlir/lib/Conversion/ControlFlowToLLVM/CMakeLists.txt b/mlir/lib/Conversion/ControlFlowToLLVM/CMakeLists.txt
index dcc78c8367a43..e17ce2bbe9601 100644
--- a/mlir/lib/Conversion/ControlFlowToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/ControlFlowToLLVM/CMakeLists.txt
@@ -5,7 +5,6 @@ add_mlir_conversion_library(MLIRControlFlowToLLVM
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ControlFlowToLLVM
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt b/mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt
index e2f1677b1d069..bd52705c85ce6 100644
--- a/mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt
+++ b/mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRControlFlowToSCF
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ControlFlowToSCF
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRAnalysis
MLIRArithDialect
diff --git a/mlir/lib/Conversion/ControlFlowToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/ControlFlowToSPIRV/CMakeLists.txt
index 5be89822c0b0d..73788f4304806 100644
--- a/mlir/lib/Conversion/ControlFlowToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/ControlFlowToSPIRV/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRControlFlowToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRControlFlowDialect
diff --git a/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt b/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
index e893d5cd1d35e..b9432b7dcc62d 100644
--- a/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
@@ -5,7 +5,6 @@ add_mlir_conversion_library(MLIRConvertToEmitC
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ConvertToEmitC
DEPENDS
- MLIRConversionPassIncGen
MLIRConvertToEmitCPatternInterfaceIncGen
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Conversion/ConvertToLLVM/CMakeLists.txt b/mlir/lib/Conversion/ConvertToLLVM/CMakeLists.txt
index c71711ba2ebed..e90cc13808f62 100644
--- a/mlir/lib/Conversion/ConvertToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/ConvertToLLVM/CMakeLists.txt
@@ -17,9 +17,6 @@ add_mlir_conversion_library(MLIRConvertToLLVMInterface
add_mlir_conversion_library(MLIRConvertToLLVMPass
ConvertToLLVMPass.cpp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRConvertToLLVMInterface
diff --git a/mlir/lib/Conversion/FuncToEmitC/CMakeLists.txt b/mlir/lib/Conversion/FuncToEmitC/CMakeLists.txt
index c5d831f59379d..568657a4aa6e1 100644
--- a/mlir/lib/Conversion/FuncToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/FuncToEmitC/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRFuncToEmitC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/FuncToEmitC
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIREmitCCommonConversion
MLIREmitCDialect
diff --git a/mlir/lib/Conversion/FuncToLLVM/CMakeLists.txt b/mlir/lib/Conversion/FuncToLLVM/CMakeLists.txt
index 17d8dad335c55..64769919a0672 100644
--- a/mlir/lib/Conversion/FuncToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/FuncToLLVM/CMakeLists.txt
@@ -5,7 +5,6 @@ add_mlir_conversion_library(MLIRFuncToLLVM
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/FuncToLLVM
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/FuncToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/FuncToSPIRV/CMakeLists.txt
index fca2c670915ad..ed83423494207 100644
--- a/mlir/lib/Conversion/FuncToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/FuncToSPIRV/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRFuncToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRFuncDialect
MLIRIR
diff --git a/mlir/lib/Conversion/GPUCommon/CMakeLists.txt b/mlir/lib/Conversion/GPUCommon/CMakeLists.txt
index 8bcde866ee00d..c9288850c5620 100644
--- a/mlir/lib/Conversion/GPUCommon/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUCommon/CMakeLists.txt
@@ -21,7 +21,6 @@ add_mlir_conversion_library(MLIRGPUToGPURuntimeTransforms
IndexIntrinsicsOpLowering.cpp
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/GPUToLLVMSPV/CMakeLists.txt b/mlir/lib/Conversion/GPUToLLVMSPV/CMakeLists.txt
index f2381c623e201..f141b19749f68 100644
--- a/mlir/lib/Conversion/GPUToLLVMSPV/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToLLVMSPV/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_conversion_library(MLIRGPUToLLVMSPV
GPUToLLVMSPV.cpp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRGPUDialect
MLIRGPUToGPURuntimeTransforms
diff --git a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
index 06137bdb41d71..a8b5c9923c725 100644
--- a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
@@ -2,9 +2,6 @@ add_mlir_conversion_library(MLIRGPUToNVVMTransforms
LowerGpuOpsToNVVMOps.cpp
WmmaOpsToNvvm.cpp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithToLLVM
MLIRFuncToLLVM
diff --git a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
index 945e3ccdfa87b..b83ef93f70314 100644
--- a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
@@ -6,7 +6,6 @@ add_mlir_conversion_library(MLIRGPUToROCDLTransforms
LowerGpuOpsToROCDLOps.cpp
DEPENDS
- MLIRConversionPassIncGen
MLIRGPUToROCDLIncGen
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
index 7e97eeb2e2496..5047c5fec0390 100644
--- a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
@@ -3,9 +3,6 @@ add_mlir_conversion_library(MLIRGPUToSPIRV
GPUToSPIRVPass.cpp
WmmaOpsToSPIRV.cpp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithToSPIRV
MLIRGPUDialect
diff --git a/mlir/lib/Conversion/IndexToLLVM/CMakeLists.txt b/mlir/lib/Conversion/IndexToLLVM/CMakeLists.txt
index a33a61852d748..2e4fce00cca24 100644
--- a/mlir/lib/Conversion/IndexToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/IndexToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRIndexToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/IndexToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/IndexToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/IndexToSPIRV/CMakeLists.txt
index a02d2d40a9a2f..9b32910198b82 100644
--- a/mlir/lib/Conversion/IndexToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/IndexToSPIRV/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRIndexToSPIRV
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/IndexToSPIRV
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt b/mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt
index 7fc4af5403185..dfa06540544ac 100644
--- a/mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToStandard/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRLinalgToStandard
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/LinalgToStandard
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MPIToLLVM/CMakeLists.txt b/mlir/lib/Conversion/MPIToLLVM/CMakeLists.txt
index 51ffbd1fa42ab..ca7473e7f9e1a 100644
--- a/mlir/lib/Conversion/MPIToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/MPIToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMPIToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MPIToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToEmitC/CMakeLists.txt b/mlir/lib/Conversion/MathToEmitC/CMakeLists.txt
index 12a99c31e2ba5..1acc09702db5a 100644
--- a/mlir/lib/Conversion/MathToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToEmitC/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRMathToEmitC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToEmitC
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToFuncs/CMakeLists.txt b/mlir/lib/Conversion/MathToFuncs/CMakeLists.txt
index 2ac191cac22a0..1a28389adc281 100644
--- a/mlir/lib/Conversion/MathToFuncs/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToFuncs/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToFuncs
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToFuncs
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToLLVM/CMakeLists.txt b/mlir/lib/Conversion/MathToLLVM/CMakeLists.txt
index 97393fc849691..165ba9c808f7d 100644
--- a/mlir/lib/Conversion/MathToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToLibm/CMakeLists.txt b/mlir/lib/Conversion/MathToLibm/CMakeLists.txt
index 0a4eb97474f3a..78cece30fa815 100644
--- a/mlir/lib/Conversion/MathToLibm/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToLibm/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToLibm
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToLibm
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToNVVM/CMakeLists.txt b/mlir/lib/Conversion/MathToNVVM/CMakeLists.txt
index 589700d32646c..282a5f27573d9 100644
--- a/mlir/lib/Conversion/MathToNVVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToNVVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToNVVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToNVVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToROCDL/CMakeLists.txt b/mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
index 8cc3fde827830..66cfd9ca33950 100644
--- a/mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToROCDL/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToROCDL
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToROCDL
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MathToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/MathToSPIRV/CMakeLists.txt
index cbeb7a241b08d..2ddbeef8b275f 100644
--- a/mlir/lib/Conversion/MathToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToSPIRV/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRMathToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRMathDialect
diff --git a/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt b/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
index e8551d5ba70f2..ce20e7b9dfe51 100644
--- a/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMathToXeVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MathToXeVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MemRefToEmitC/CMakeLists.txt b/mlir/lib/Conversion/MemRefToEmitC/CMakeLists.txt
index 23a40e7e48b8d..2806146911ad6 100644
--- a/mlir/lib/Conversion/MemRefToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/MemRefToEmitC/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRMemRefToEmitC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MemRefToEmitC
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MemRefToLLVM/CMakeLists.txt b/mlir/lib/Conversion/MemRefToLLVM/CMakeLists.txt
index 9da4b23d42f41..5523b17e003d3 100644
--- a/mlir/lib/Conversion/MemRefToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/MemRefToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRMemRefToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/MemRefToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/MemRefToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/MemRefToSPIRV/CMakeLists.txt
index ca49f93748ce7..0195086dd6079 100644
--- a/mlir/lib/Conversion/MemRefToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/MemRefToSPIRV/CMakeLists.txt
@@ -7,9 +7,6 @@ add_mlir_conversion_library(MLIRMemRefToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRFunctionInterfaces
MLIRIR
diff --git a/mlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt b/mlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt
index 2e0a417bd823d..b6f5db788da76 100644
--- a/mlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/NVGPUToNVVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRNVGPUToNVVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/NVGPUToNVVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/NVVMToLLVM/CMakeLists.txt b/mlir/lib/Conversion/NVVMToLLVM/CMakeLists.txt
index 23174d1128719..0a7786379cd27 100644
--- a/mlir/lib/Conversion/NVVMToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/NVVMToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRNVVMToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/NVVMToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/OpenACCToLLVM/CMakeLists.txt b/mlir/lib/Conversion/OpenACCToLLVM/CMakeLists.txt
index 1cd092181f7dc..a66e735d5243c 100644
--- a/mlir/lib/Conversion/OpenACCToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/OpenACCToLLVM/CMakeLists.txt
@@ -7,9 +7,6 @@ add_mlir_conversion_library(MLIROpenACCToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/OpenACCToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithToLLVM
MLIRComplexDialect
diff --git a/mlir/lib/Conversion/OpenACCToSCF/CMakeLists.txt b/mlir/lib/Conversion/OpenACCToSCF/CMakeLists.txt
index aa90db92c582f..7f5a3b5d084d3 100644
--- a/mlir/lib/Conversion/OpenACCToSCF/CMakeLists.txt
+++ b/mlir/lib/Conversion/OpenACCToSCF/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIROpenACCToSCF
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/OpenACCToSCF
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRIR
diff --git a/mlir/lib/Conversion/OpenMPToLLVM/CMakeLists.txt b/mlir/lib/Conversion/OpenMPToLLVM/CMakeLists.txt
index c5f84aa95e64f..9279874d02e8e 100644
--- a/mlir/lib/Conversion/OpenMPToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/OpenMPToLLVM/CMakeLists.txt
@@ -5,7 +5,6 @@ add_mlir_conversion_library(MLIROpenMPToLLVM
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/OpenMPToLLVM
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt b/mlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt
index fac84b14203bf..97a739303713f 100644
--- a/mlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt
+++ b/mlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt
@@ -7,9 +7,6 @@ add_mlir_conversion_library(MLIRPDLToPDLInterp
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/PDLToPDLInterp
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRInferTypeOpInterface
diff --git a/mlir/lib/Conversion/PtrToLLVM/CMakeLists.txt b/mlir/lib/Conversion/PtrToLLVM/CMakeLists.txt
index 2d416be13ee30..0b53f02a35e0e 100644
--- a/mlir/lib/Conversion/PtrToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/PtrToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRPtrToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/PtrToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/RaiseWasm/CMakeLists.txt b/mlir/lib/Conversion/RaiseWasm/CMakeLists.txt
index 43b5fd79e49df..537dae40d571d 100644
--- a/mlir/lib/Conversion/RaiseWasm/CMakeLists.txt
+++ b/mlir/lib/Conversion/RaiseWasm/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRWasmRaise
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/RaiseWasm
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRControlFlowDialect
diff --git a/mlir/lib/Conversion/ReconcileUnrealizedCasts/CMakeLists.txt b/mlir/lib/Conversion/ReconcileUnrealizedCasts/CMakeLists.txt
index 1bed0d6944c08..72a31fb73a0d8 100644
--- a/mlir/lib/Conversion/ReconcileUnrealizedCasts/CMakeLists.txt
+++ b/mlir/lib/Conversion/ReconcileUnrealizedCasts/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRReconcileUnrealizedCasts
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ReconcileUnrealizedCasts
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/SCFToAffine/CMakeLists.txt b/mlir/lib/Conversion/SCFToAffine/CMakeLists.txt
index f978d8309fc39..e6a3fa6e30fea 100644
--- a/mlir/lib/Conversion/SCFToAffine/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToAffine/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRSCFToAffine
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToAffine
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRAffineDialect
MLIRArithDialect
diff --git a/mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt b/mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
index 9c635ad7e664f..67eb7691f47fc 100644
--- a/mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRSCFToControlFlow
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToControlFlow
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRControlFlowDialect
diff --git a/mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt b/mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt
index 453aa6c44c467..5a0722c96bd59 100644
--- a/mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRSCFToEmitC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToEmitC
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/SCFToGPU/CMakeLists.txt b/mlir/lib/Conversion/SCFToGPU/CMakeLists.txt
index b7853634bc44e..c910e7dee5336 100644
--- a/mlir/lib/Conversion/SCFToGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToGPU/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRSCFToGPU
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToGPU
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRAffineDialect
MLIRAffineToStandard
diff --git a/mlir/lib/Conversion/SCFToOpenMP/CMakeLists.txt b/mlir/lib/Conversion/SCFToOpenMP/CMakeLists.txt
index 1ad175dd7d3ff..7be6990055182 100644
--- a/mlir/lib/Conversion/SCFToOpenMP/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToOpenMP/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRSCFToOpenMP
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToStandard
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt
index e509fb025ee19..b642d33d3f1c1 100644
--- a/mlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/SCFToSPIRV/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRSCFToSPIRV
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SCFToSPIRV
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithToSPIRV
MLIRFuncToSPIRV
diff --git a/mlir/lib/Conversion/SPIRVCommon/CMakeLists.txt b/mlir/lib/Conversion/SPIRVCommon/CMakeLists.txt
index cd5a4c225efbf..b3ff6c386c86e 100644
--- a/mlir/lib/Conversion/SPIRVCommon/CMakeLists.txt
+++ b/mlir/lib/Conversion/SPIRVCommon/CMakeLists.txt
@@ -1,6 +1,7 @@
add_mlir_conversion_library(MLIRSPIRVAttrToLLVMConversion
AttrToLLVMConverter.cpp
- DEPENDS
- MLIRSPIRVEnumsIncGen
+ # AttrToLLVMConverter.h includes the generated SPIRVEnums.h.
+ HEADER_LIBS
+ MLIRSPIRVDialect
)
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt b/mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt
index e563315d95c9c..31a0357f02e35 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt
@@ -7,7 +7,6 @@ add_mlir_conversion_library(MLIRSPIRVToLLVM
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/SPIRVToLLVM
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Conversion/ShapeToStandard/CMakeLists.txt b/mlir/lib/Conversion/ShapeToStandard/CMakeLists.txt
index 246f10b389911..c8e85c1ea5624 100644
--- a/mlir/lib/Conversion/ShapeToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/ShapeToStandard/CMakeLists.txt
@@ -10,7 +10,6 @@ add_mlir_conversion_library(MLIRShapeToStandard
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ShapeToStandard
DEPENDS
- MLIRConversionPassIncGen
ShapeToStandardIncGen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/ShardToMPI/CMakeLists.txt b/mlir/lib/Conversion/ShardToMPI/CMakeLists.txt
index dfa8e77bb13ef..6c970bc0baeb3 100644
--- a/mlir/lib/Conversion/ShardToMPI/CMakeLists.txt
+++ b/mlir/lib/Conversion/ShardToMPI/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRShardToMPI
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ShardToMPI
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/TensorToLinalg/CMakeLists.txt b/mlir/lib/Conversion/TensorToLinalg/CMakeLists.txt
index 0236dc6d397c4..89bf6edab37dc 100644
--- a/mlir/lib/Conversion/TensorToLinalg/CMakeLists.txt
+++ b/mlir/lib/Conversion/TensorToLinalg/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTensorToLinalg
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRPass
diff --git a/mlir/lib/Conversion/TensorToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/TensorToSPIRV/CMakeLists.txt
index 31266221f5b26..cc34b0b443fe9 100644
--- a/mlir/lib/Conversion/TensorToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/TensorToSPIRV/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTensorToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithToSPIRV
MLIRFuncToSPIRV
diff --git a/mlir/lib/Conversion/TosaToArith/CMakeLists.txt b/mlir/lib/Conversion/TosaToArith/CMakeLists.txt
index 8f1640c321145..65ae1af81148a 100644
--- a/mlir/lib/Conversion/TosaToArith/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToArith/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTosaToArith
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRIR
diff --git a/mlir/lib/Conversion/TosaToLinalg/CMakeLists.txt b/mlir/lib/Conversion/TosaToLinalg/CMakeLists.txt
index 5123c2a7cf916..d1140ea0d3658 100644
--- a/mlir/lib/Conversion/TosaToLinalg/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToLinalg/CMakeLists.txt
@@ -8,9 +8,6 @@ add_mlir_conversion_library(MLIRTosaToLinalg
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRDialectUtils
diff --git a/mlir/lib/Conversion/TosaToMLProgram/CMakeLists.txt b/mlir/lib/Conversion/TosaToMLProgram/CMakeLists.txt
index 82941424f1d10..5f651e52c7c83 100644
--- a/mlir/lib/Conversion/TosaToMLProgram/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToMLProgram/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTosaToMLProgram
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRMLProgramDialect
diff --git a/mlir/lib/Conversion/TosaToSCF/CMakeLists.txt b/mlir/lib/Conversion/TosaToSCF/CMakeLists.txt
index 017a2e8c921f2..1d23c9f715f25 100644
--- a/mlir/lib/Conversion/TosaToSCF/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToSCF/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTosaToSCF
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRSCFDialect
diff --git a/mlir/lib/Conversion/TosaToSPIRVTosa/CMakeLists.txt b/mlir/lib/Conversion/TosaToSPIRVTosa/CMakeLists.txt
index c4b71ed61f39b..52eac566c8159 100644
--- a/mlir/lib/Conversion/TosaToSPIRVTosa/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToSPIRVTosa/CMakeLists.txt
@@ -9,9 +9,6 @@ add_mlir_conversion_library(MLIRTosaToSPIRVTosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRFuncDialect
MLIRIR
diff --git a/mlir/lib/Conversion/TosaToTensor/CMakeLists.txt b/mlir/lib/Conversion/TosaToTensor/CMakeLists.txt
index 2870baa20757b..bdbbbd85ef3ab 100644
--- a/mlir/lib/Conversion/TosaToTensor/CMakeLists.txt
+++ b/mlir/lib/Conversion/TosaToTensor/CMakeLists.txt
@@ -6,9 +6,6 @@ add_mlir_conversion_library(MLIRTosaToTensor
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRTensorDialect
MLIRTensorUtils
diff --git a/mlir/lib/Conversion/UBToLLVM/CMakeLists.txt b/mlir/lib/Conversion/UBToLLVM/CMakeLists.txt
index 645614614ce61..1a5183051926e 100644
--- a/mlir/lib/Conversion/UBToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/UBToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRUBToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/UBToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/UBToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/UBToSPIRV/CMakeLists.txt
index a7a26b0a8c606..e2631c528248c 100644
--- a/mlir/lib/Conversion/UBToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/UBToSPIRV/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRUBToSPIRV
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/UBToSPIRV
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/VectorToAMX/CMakeLists.txt b/mlir/lib/Conversion/VectorToAMX/CMakeLists.txt
index 2ed864c519cb6..e39c9f9a3ef33 100644
--- a/mlir/lib/Conversion/VectorToAMX/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToAMX/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRVectorToAMX
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToAMX
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRAffineUtils
MLIRArithDialect
diff --git a/mlir/lib/Conversion/VectorToArmSME/CMakeLists.txt b/mlir/lib/Conversion/VectorToArmSME/CMakeLists.txt
index 6a81a09776d37..d50d9fdccd913 100644
--- a/mlir/lib/Conversion/VectorToArmSME/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToArmSME/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_conversion_library(MLIRVectorToArmSME
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToArmSME
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArmSMEDialect
MLIRArmSVEDialect
diff --git a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
index 0d700ea65eb4e..06fad235d23b6 100644
--- a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
@@ -6,7 +6,6 @@ add_mlir_conversion_library(MLIRVectorToLLVM
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLLVM
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
diff --git a/mlir/lib/Conversion/VectorToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/VectorToSPIRV/CMakeLists.txt
index f4cdb2cf95a30..7a307a8f52247 100644
--- a/mlir/lib/Conversion/VectorToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToSPIRV/CMakeLists.txt
@@ -6,7 +6,6 @@ add_mlir_conversion_library(MLIRVectorToSPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToSPIRV
DEPENDS
- MLIRConversionPassIncGen
intrinsics_gen
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Conversion/VectorToXeGPU/CMakeLists.txt b/mlir/lib/Conversion/VectorToXeGPU/CMakeLists.txt
index dd699f5b1880e..4a21b29a5c172 100644
--- a/mlir/lib/Conversion/VectorToXeGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToXeGPU/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRVectorToXeGPU
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToXeGPU
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRMemRefDialect
diff --git a/mlir/lib/Conversion/XeGPUToXeVM/CMakeLists.txt b/mlir/lib/Conversion/XeGPUToXeVM/CMakeLists.txt
index dd9edc43a1657..15b09ead8bd6f 100644
--- a/mlir/lib/Conversion/XeGPUToXeVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/XeGPUToXeVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRXeGPUToXeVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/XeGPUToXeVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Conversion/XeVMToLLVM/CMakeLists.txt b/mlir/lib/Conversion/XeVMToLLVM/CMakeLists.txt
index 4ac60d8d43472..6fbb3fb10e2ac 100644
--- a/mlir/lib/Conversion/XeVMToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/XeVMToLLVM/CMakeLists.txt
@@ -4,9 +4,6 @@ add_mlir_conversion_library(MLIRXeVMToLLVM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/XeVMToLLVM
- DEPENDS
- MLIRConversionPassIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 29baef635ec80..8b917cf5a6f10 100644
--- a/mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -10,6 +10,10 @@ add_mlir_dialect_library(MLIRAMDGPUTransforms
DEPENDS
MLIRAMDGPUTransformsIncGen
+ # MaskedloadToLoad.cpp includes VectorTransforms.h.
+ HEADER_LIBS
+ MLIRVectorTransforms
+
LINK_LIBS PUBLIC
MLIRAMDGPUDialect
MLIRAMDGPUUtils
diff --git a/mlir/lib/Dialect/Affine/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Affine/Analysis/CMakeLists.txt
index 3a1996349dbed..61e49b0da8b2d 100644
--- a/mlir/lib/Dialect/Affine/Analysis/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/Analysis/CMakeLists.txt
@@ -8,9 +8,6 @@ add_mlir_dialect_library(MLIRAffineAnalysis
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Affine
- DEPENDS
- MLIRFuncOpsIncGen
-
LINK_LIBS PUBLIC
MLIRAffineDialect
MLIRAnalysis
diff --git a/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
index 9d912139810b2..9605eb880e303 100644
--- a/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
@@ -25,9 +25,7 @@ add_mlir_dialect_library(MLIRAffineTransforms
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Affine
DEPENDS
- MLIRAffineOpsIncGen
MLIRAffinePassIncGen
- MLIRLoopLikeInterfaceIncGen
LINK_LIBS PUBLIC
MLIRAffineDialect
diff --git a/mlir/lib/Dialect/Arith/IR/CMakeLists.txt b/mlir/lib/Dialect/Arith/IR/CMakeLists.txt
index 3423e11a7d0f0..9a0307afc1747 100644
--- a/mlir/lib/Dialect/Arith/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Arith/IR/CMakeLists.txt
@@ -23,6 +23,12 @@ add_mlir_dialect_library(MLIRArithDialect
MLIRArithOpsIncGen
MLIRArithOpsInterfacesIncGen
+ # ArithDialect.cpp includes generated Bufferization interfaces and
+ # mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRBufferizationDialect
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRCastInterfaces
MLIRDialect
diff --git a/mlir/lib/Dialect/ArmNeon/IR/CMakeLists.txt b/mlir/lib/Dialect/ArmNeon/IR/CMakeLists.txt
index b04919a3a3185..91413cdd02c4a 100644
--- a/mlir/lib/Dialect/ArmNeon/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/ArmNeon/IR/CMakeLists.txt
@@ -6,6 +6,13 @@ add_mlir_dialect_library(MLIRArmNeonDialect
DEPENDS
MLIRArmNeonIncGen
+ MLIRArmNeonConversionsIncGen
+
+ # ArmNeonDialect.cpp includes VectorOps.h, whose generated declarations
+ # expose both Vector and Arith generated headers.
+ HEADER_LIBS
+ MLIRArithDialect
+ MLIRVectorDialect
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/ArmNeon/Transforms/CMakeLists.txt b/mlir/lib/Dialect/ArmNeon/Transforms/CMakeLists.txt
index 368dacac7b835..40dbf64bdef3a 100644
--- a/mlir/lib/Dialect/ArmNeon/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/ArmNeon/Transforms/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_dialect_library(MLIRArmNeonTransforms
LowerContractToNeonPatterns.cpp
- DEPENDS
- MLIRArmNeonIncGen
-
LINK_LIBS PUBLIC
MLIRArmNeonDialect
MLIRFuncDialect
diff --git a/mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt b/mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt
index ce0c2f4986fc6..e69868189be16 100644
--- a/mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt
@@ -8,6 +8,9 @@ add_mlir_dialect_library(MLIRArmSMEDialect
DEPENDS
MLIRArmSMEOpsIncGen
MLIRArmSMEIntrinsicOpsIncGen
+ MLIRArmSMEIncGen
+ MLIRArmSMEConversionsIncGen
+ MLIRArmSMEOpInterfaces
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/ArmSVE/IR/CMakeLists.txt b/mlir/lib/Dialect/ArmSVE/IR/CMakeLists.txt
index 9ef7384fc5492..2cfd4955e5745 100644
--- a/mlir/lib/Dialect/ArmSVE/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/ArmSVE/IR/CMakeLists.txt
@@ -6,6 +6,7 @@ add_mlir_dialect_library(MLIRArmSVEDialect
DEPENDS
MLIRArmSVEIncGen
+ MLIRArmSVEConversionsIncGen
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/lib/Dialect/ArmSVE/Transforms/CMakeLists.txt
index c29eaca244b4a..f5bc59e7eaa42 100644
--- a/mlir/lib/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -4,7 +4,6 @@ add_mlir_dialect_library(MLIRArmSVETransforms
LowerContractToSVEPatterns.cpp
DEPENDS
- MLIRArmSVEConversionsIncGen
MLIRArmSVEPassIncGen
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Dialect/Bufferization/IR/CMakeLists.txt b/mlir/lib/Dialect/Bufferization/IR/CMakeLists.txt
index a6403a5298dab..20dc4d3fd8036 100644
--- a/mlir/lib/Dialect/Bufferization/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Bufferization/IR/CMakeLists.txt
@@ -16,6 +16,10 @@ add_mlir_dialect_library(MLIRBufferizationDialect
MLIRAllocationOpInterfaceIncGen
MLIRBufferizationOpsIncGen
MLIRBufferizationEnumsIncGen
+ MLIRBufferDeallocationOpInterfaceIncGen
+ MLIRBufferizableOpInterfaceIncGen
+ MLIRBufferViewFlowOpInterfaceIncGen
+ MLIRBufferizationTypeInterfacesIncGen
LINK_LIBS PUBLIC
MLIRAffineDialect
diff --git a/mlir/lib/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Bufferization/Transforms/CMakeLists.txt
index 2e6bc4d9503b9..5d7ec5d0744fc 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -24,7 +24,6 @@ add_mlir_dialect_library(MLIRBufferizationTransforms
DEPENDS
MLIRBufferizationPassIncGen
- MLIRBufferizationEnumsIncGen
LINK_LIBS PUBLIC
MLIRArithDialect
diff --git a/mlir/lib/Dialect/Complex/IR/CMakeLists.txt b/mlir/lib/Dialect/Complex/IR/CMakeLists.txt
index a90f34ec1684d..7c0097d29f29c 100644
--- a/mlir/lib/Dialect/Complex/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Complex/IR/CMakeLists.txt
@@ -9,6 +9,10 @@ add_mlir_dialect_library(MLIRComplexDialect
MLIRComplexOpsIncGen
MLIRComplexAttributesIncGen
+ # ComplexDialect.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRDialect
diff --git a/mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt b/mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt
index 05a787fa53ec3..bc9ab3dd02532 100644
--- a/mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt
@@ -7,6 +7,12 @@ add_mlir_dialect_library(MLIRControlFlowDialect
DEPENDS
MLIRControlFlowOpsIncGen
+ # ControlFlowOps.cpp includes generated Bufferization interfaces and
+ # mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRBufferizationDialect
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRControlFlowInterfaces
diff --git a/mlir/lib/Dialect/DLTI/CMakeLists.txt b/mlir/lib/Dialect/DLTI/CMakeLists.txt
index 7691a8a10a37a..7ae80f9e913bb 100644
--- a/mlir/lib/Dialect/DLTI/CMakeLists.txt
+++ b/mlir/lib/Dialect/DLTI/CMakeLists.txt
@@ -5,6 +5,7 @@ add_mlir_dialect_library(MLIRDLTIDialect
DEPENDS
MLIRDLTIIncGen
+ MLIRDLTIAttrsIncGen
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/DLTI/TransformOps/CMakeLists.txt b/mlir/lib/Dialect/DLTI/TransformOps/CMakeLists.txt
index 05734353f9d11..52bd1c3c27020 100644
--- a/mlir/lib/Dialect/DLTI/TransformOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/DLTI/TransformOps/CMakeLists.txt
@@ -6,7 +6,6 @@ add_mlir_dialect_library(MLIRDLTITransformOps
DEPENDS
MLIRDLTITransformOpsIncGen
- MLIRDLTIDialect
LINK_LIBS PUBLIC
MLIRDLTIDialect
diff --git a/mlir/lib/Dialect/EmitC/IR/CMakeLists.txt b/mlir/lib/Dialect/EmitC/IR/CMakeLists.txt
index 4cc54201d2745..6c3e4729f8fac 100644
--- a/mlir/lib/Dialect/EmitC/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/EmitC/IR/CMakeLists.txt
@@ -7,6 +7,7 @@ add_mlir_dialect_library(MLIREmitCDialect
DEPENDS
MLIREmitCIncGen
MLIREmitCAttributesIncGen
+ MLIREmitCInterfacesIncGen
LINK_LIBS PUBLIC
MLIRCallInterfaces
diff --git a/mlir/lib/Dialect/Func/Extensions/CMakeLists.txt b/mlir/lib/Dialect/Func/Extensions/CMakeLists.txt
index 87ef51e63f1da..5b8547c9f7ec8 100644
--- a/mlir/lib/Dialect/Func/Extensions/CMakeLists.txt
+++ b/mlir/lib/Dialect/Func/Extensions/CMakeLists.txt
@@ -10,6 +10,10 @@ add_mlir_extension_library(MLIRFuncInlinerExtension
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Func/Extensions
+ # InlinerExtension.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRControlFlowDialect
MLIRInferTypeOpInterface
diff --git a/mlir/lib/Dialect/Func/IR/CMakeLists.txt b/mlir/lib/Dialect/Func/IR/CMakeLists.txt
index 329301c6fbafd..9d312f982f20a 100644
--- a/mlir/lib/Dialect/Func/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Func/IR/CMakeLists.txt
@@ -7,6 +7,11 @@ add_mlir_dialect_library(MLIRFuncDialect
DEPENDS
MLIRFuncOpsIncGen
+ # FuncOps.cpp includes generated Bufferization interfaces and InliningUtils.
+ HEADER_LIBS
+ MLIRBufferizationDialect
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRCallInterfaces
MLIRControlFlowInterfaces
diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt
index 547812da0ab97..587c5263cfd2c 100644
--- a/mlir/lib/Dialect/GPU/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/CMakeLists.txt
@@ -12,6 +12,10 @@ add_mlir_dialect_library(MLIRGPUDialect
MLIRGPUOpsEnumsGen
MLIRGPUOpInterfacesIncGen
MLIRGPUCompilationAttrInterfacesIncGen
+ MLIRParallelLoopMapperEnumsGen
+ MLIRGPUDeviceMapperEnumsGen
+ # GPU dialect sources include llvm/IR/Attributes.h.
+ intrinsics_gen
LINK_LIBS PUBLIC
MLIRArithDialect
@@ -54,7 +58,6 @@ add_mlir_dialect_library(MLIRGPUTransforms
DEPENDS
MLIRGPUPassIncGen
- MLIRParallelLoopMapperEnumsGen
LINK_LIBS PUBLIC
MLIRAMDGPUDialect
diff --git a/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt b/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
index 3a0cd7ef5c39d..80c1a1fff37d5 100644
--- a/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/Pipelines/CMakeLists.txt
@@ -6,6 +6,13 @@ add_mlir_dialect_library(MLIRGPUPipelines
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/GPU
+ # GPUToXeVMPipeline.cpp includes the aggregate Conversion/Passes.h header,
+ # whose declarations include these generated dialect and pass headers.
+ HEADER_LIBS
+ MLIRArmSMETransforms
+ MLIROpenACCDialect
+ MLIRTosaTransforms
+
LINK_LIBS PUBLIC
MLIRMemRefTransforms
MLIRFuncDialect
diff --git a/mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt b/mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
index 2d3dfdbfc1136..d669ad3287888 100644
--- a/mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
@@ -8,8 +8,6 @@ add_mlir_dialect_library(MLIRGPUTransformOps
DEPENDS
MLIRGPUTransformOpsIncGen
- MLIRDeviceMappingInterfacesIncGen
- MLIRGPUDeviceMapperEnumsGen
LINK_LIBS PUBLIC
MLIRGPUDialect
diff --git a/mlir/lib/Dialect/GPU/Utils/CMakeLists.txt b/mlir/lib/Dialect/GPU/Utils/CMakeLists.txt
index 69094c518a159..a49baddc2bee8 100644
--- a/mlir/lib/Dialect/GPU/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/Utils/CMakeLists.txt
@@ -5,10 +5,15 @@ add_mlir_dialect_library(MLIRGPUUtils
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/GPU/Utils
+ # GPU utility headers include llvm/IR/Attributes.h.
+ DEPENDS
+ intrinsics_gen
+
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRAffineDialect
MLIRGPUDialect
MLIRSupport
MLIRIR
+ MLIRVectorDialect
)
diff --git a/mlir/lib/Dialect/IRDL/CMakeLists.txt b/mlir/lib/Dialect/IRDL/CMakeLists.txt
index db4b98ef5308e..c212033037560 100644
--- a/mlir/lib/Dialect/IRDL/CMakeLists.txt
+++ b/mlir/lib/Dialect/IRDL/CMakeLists.txt
@@ -9,6 +9,8 @@ add_mlir_dialect_library(MLIRIRDL
MLIRIRDLIncGen
MLIRIRDLOpsIncGen
MLIRIRDLTypesIncGen
+ MLIRIRDLInterfacesIncGen
+ MLIRIRDLAttributesIncGen
LINK_LIBS PUBLIC
MLIRDialect
diff --git a/mlir/lib/Dialect/Index/IR/CMakeLists.txt b/mlir/lib/Dialect/Index/IR/CMakeLists.txt
index fce47d2ecc531..71e3fc3ecc9ef 100644
--- a/mlir/lib/Dialect/Index/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Index/IR/CMakeLists.txt
@@ -7,6 +7,10 @@ add_mlir_dialect_library(MLIRIndexDialect
DEPENDS
MLIRIndexOpsIncGen
+ # IndexDialect.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRDialect
MLIRIR
diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
index 18057048a509a..e02fc83722edb 100644
--- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
@@ -35,15 +35,21 @@ add_mlir_dialect_library(MLIRLLVMDialect
MLIRLLVMAllOpsIncGen
MLIRLLVMOpsIncGen
MLIRLLVMOpsShardGen
- MLIRLLVMTranslationDialectInterfaceIncGen
MLIRLLVMTypesIncGen
- MLIROpenMPOpsIncGen
intrinsics_gen
+ MLIRLLVMConversionsIncGen
+ MLIRLLVMIntrinsicConversionsIncGen
LINK_COMPONENTS
BinaryFormat
Core
+ HEADER_LIBS
+ # LLVMAttrs.cpp includes mlir/Dialect/Ptr/IR/PtrEnums.h.
+ MLIRPtrDialect
+ # LLVMDialect.cpp includes mlir/Transforms/InliningUtils.h.
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRCallInterfaces
MLIRControlFlowInterfaces
@@ -67,7 +73,6 @@ add_mlir_dialect_library(MLIRNVVMDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
DEPENDS
- MLIRGPUCompilationAttrInterfacesIncGen
MLIRNVVMOpsIncGen
MLIRNVVMConversionsIncGen
MLIRBasicPtxBuilderInterfaceIncGen
@@ -105,7 +110,6 @@ add_mlir_dialect_library(MLIRROCDLDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
DEPENDS
- MLIRGPUCompilationAttrInterfacesIncGen
MLIRROCDLOpsIncGen
MLIRROCDLOpsShardGen
MLIRROCDLConversionsIncGen
@@ -115,6 +119,11 @@ add_mlir_dialect_library(MLIRROCDLDialect
AsmParser
Core
+ # ROCDLDialect.cpp includes GPU CompilationInterfaces and InliningUtils.
+ HEADER_LIBS
+ MLIRGPUDialect
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMDialect
@@ -128,7 +137,6 @@ add_mlir_dialect_library(MLIRVCIXDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
DEPENDS
- MLIRGPUCompilationAttrInterfacesIncGen
MLIRVCIXOpsIncGen
MLIRVCIXConversionsIncGen
intrinsics_gen
@@ -137,6 +145,10 @@ add_mlir_dialect_library(MLIRVCIXDialect
AsmParser
Core
+ # VCIXDialect.cpp includes the generated GPU CompilationInterfaces.
+ HEADER_LIBS
+ MLIRGPUDialect
+
LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMDialect
@@ -150,7 +162,6 @@ add_mlir_dialect_library(MLIRXeVMDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
DEPENDS
- MLIRGPUCompilationAttrInterfacesIncGen
MLIRXeVMOpsIncGen
MLIRXeVMConversionsIncGen
intrinsics_gen
@@ -160,6 +171,10 @@ add_mlir_dialect_library(MLIRXeVMDialect
Core
TargetParser
+ # XeVMDialect.cpp includes the generated GPU CompilationInterfaces.
+ HEADER_LIBS
+ MLIRGPUDialect
+
LINK_LIBS PUBLIC
MLIRDialectUtils
MLIRIR
diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
index ec4fd82468dbb..0eafd97d4b0a7 100644
--- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
@@ -14,7 +14,11 @@ add_mlir_dialect_library(MLIRLinalgDialect
MLIRLinalgOpsIncGen
MLIRLinalgStructuredOpsIncGen
MLIRLinalgRelayoutOpsIncGen
- MLIRShardingInterfaceIncGen
+ MLIRRelayoutOpInterfaceIncGen
+
+ # LinalgDialect.cpp includes ShardingInterface.h for promised interfaces.
+ HEADER_LIBS
+ MLIRShardingInterface
LINK_LIBS PUBLIC
MLIRAffineDialect
diff --git a/mlir/lib/Dialect/Math/IR/CMakeLists.txt b/mlir/lib/Dialect/Math/IR/CMakeLists.txt
index ed95bf846cdea..8e0f650ede692 100644
--- a/mlir/lib/Dialect/Math/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Math/IR/CMakeLists.txt
@@ -8,6 +8,10 @@ add_mlir_dialect_library(MLIRMathDialect
DEPENDS
MLIRMathOpsIncGen
+ # MathDialect.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRDialect
diff --git a/mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt b/mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt
index 94776845c5321..e84914596dd62 100644
--- a/mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/NVGPU/IR/CMakeLists.txt
@@ -9,6 +9,7 @@ add_mlir_dialect_library(MLIRNVGPUDialect
MLIRNVGPUEnumsIncGen
MLIRNVGPUAttributesIncGen
MLIRNVGPUTypesIncGen
+ MLIRNVGPUIncGen
LINK_LIBS PUBLIC
MLIRGPUDialect
diff --git a/mlir/lib/Dialect/OpenACC/IR/CMakeLists.txt b/mlir/lib/Dialect/OpenACC/IR/CMakeLists.txt
index 409155ec18fe6..d837f492cf633 100644
--- a/mlir/lib/Dialect/OpenACC/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenACC/IR/CMakeLists.txt
@@ -9,7 +9,6 @@ add_mlir_dialect_library(MLIROpenACCDialect
MLIROpenACCOpsIncGen
MLIROpenACCEnumsIncGen
MLIROpenACCAttributesIncGen
- MLIROpenACCMPOpsInterfacesIncGen
MLIROpenACCOpsInterfacesIncGen
MLIROpenACCTypeInterfacesIncGen
diff --git a/mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt b/mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
index 3fd2672e82c50..1479f9028caf8 100644
--- a/mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
@@ -27,12 +27,6 @@ add_mlir_dialect_library(MLIROpenACCTransforms
DEPENDS
MLIROpenACCPassIncGen
- MLIROpenACCOpsIncGen
- MLIROpenACCEnumsIncGen
- MLIROpenACCAttributesIncGen
- MLIROpenACCMPOpsInterfacesIncGen
- MLIROpenACCOpsInterfacesIncGen
- MLIROpenACCTypeInterfacesIncGen
LINK_LIBS PUBLIC
MLIRAnalysis
diff --git a/mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt b/mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt
index 359cf23aa4abf..031d85c7925a5 100644
--- a/mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt
@@ -11,15 +11,6 @@ add_mlir_dialect_library(MLIROpenACCUtils
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/OpenACC
- DEPENDS
- MLIROpenACCPassIncGen
- MLIROpenACCOpsIncGen
- MLIROpenACCEnumsIncGen
- MLIROpenACCAttributesIncGen
- MLIROpenACCMPOpsInterfacesIncGen
- MLIROpenACCOpsInterfacesIncGen
- MLIROpenACCTypeInterfacesIncGen
-
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRArithUtils
diff --git a/mlir/lib/Dialect/OpenACCMPCommon/Interfaces/CMakeLists.txt b/mlir/lib/Dialect/OpenACCMPCommon/Interfaces/CMakeLists.txt
index 2a82ff2150287..7a7500647e9e0 100644
--- a/mlir/lib/Dialect/OpenACCMPCommon/Interfaces/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenACCMPCommon/Interfaces/CMakeLists.txt
@@ -5,8 +5,8 @@ ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/OpenACCMPCommon/Interfaces
DEPENDS
-MLIRArithOpsIncGen
MLIRAtomicInterfacesIncGen
+MLIROpenACCMPOpsInterfacesIncGen
LINK_LIBS PUBLIC
MLIRArithDialect
diff --git a/mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt
index 1beea2098d3bb..5a34774768f08 100644
--- a/mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt
@@ -8,7 +8,6 @@ add_mlir_dialect_library(MLIROpenMPDialect
omp_gen
MLIROpenMPOpsIncGen
MLIROpenMPOpsInterfacesIncGen
- MLIROpenMPTypeInterfacesIncGen
LINK_COMPONENTS
TargetParser
diff --git a/mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
index 04fba34ae625c..c1228a739c9c1 100644
--- a/mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
@@ -11,9 +11,6 @@ add_mlir_dialect_library(MLIROpenMPTransforms
DEPENDS
omp_gen
MLIROpenMPPassIncGen
- MLIROpenMPOpsIncGen
- MLIROpenMPOpsInterfacesIncGen
- MLIROpenMPTypeInterfacesIncGen
LINK_LIBS PUBLIC
MLIRFunctionInterfaces
diff --git a/mlir/lib/Dialect/Ptr/IR/CMakeLists.txt b/mlir/lib/Dialect/Ptr/IR/CMakeLists.txt
index a6b0d416a4165..90fe12db0a9bd 100644
--- a/mlir/lib/Dialect/Ptr/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Ptr/IR/CMakeLists.txt
@@ -10,8 +10,8 @@ add_mlir_dialect_library(
MemorySpaceInterfaces.cpp
DEPENDS
- MLIRPtrOpsEnumsGen
MLIRPtrMemorySpaceInterfacesIncGen
+
LINK_LIBS
PUBLIC
MLIRIR
@@ -27,7 +27,11 @@ add_mlir_dialect_library(
MLIRPtrOpsAttributesIncGen
MLIRPtrOpsIncGen
MLIRPtrOpsEnumsGen
- MLIRPtrMemorySpaceInterfacesIncGen
+
+ # PtrDialect.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS
PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/Quant/IR/CMakeLists.txt b/mlir/lib/Dialect/Quant/IR/CMakeLists.txt
index c9e10ae52825e..a12f9b1c9733c 100644
--- a/mlir/lib/Dialect/Quant/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Quant/IR/CMakeLists.txt
@@ -13,6 +13,10 @@ add_mlir_dialect_library(MLIRQuantDialect
MLIRQuantOpsIncGen
MLIRQuantDialectBytecodeIncGen
+ # QuantOps.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRIR
MLIRInferTypeOpInterface
diff --git a/mlir/lib/Dialect/SCF/IR/CMakeLists.txt b/mlir/lib/Dialect/SCF/IR/CMakeLists.txt
index 5e7d10e4a9d6a..652016518061b 100644
--- a/mlir/lib/Dialect/SCF/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/SCF/IR/CMakeLists.txt
@@ -9,6 +9,7 @@ add_mlir_dialect_library(MLIRSCFDialect
DEPENDS
MLIRSCFOpsIncGen
+ MLIRDeviceMappingInterfacesIncGen
LINK_LIBS PUBLIC
MLIRArithDialect
diff --git a/mlir/lib/Dialect/SMT/IR/CMakeLists.txt b/mlir/lib/Dialect/SMT/IR/CMakeLists.txt
index e287613da9fd0..d5b3b4f3aace7 100644
--- a/mlir/lib/Dialect/SMT/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/SMT/IR/CMakeLists.txt
@@ -21,7 +21,3 @@ add_mlir_dialect_library(MLIRSMT
MLIRSideEffectInterfaces
MLIRControlFlowInterfaces
)
-
-add_dependencies(mlir-headers
- MLIRSMTIncGen
-)
diff --git a/mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt
index 742272163cd82..84246eef06f30 100644
--- a/mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt
@@ -44,16 +44,21 @@ add_mlir_dialect_library(MLIRSPIRVDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
DEPENDS
- MLIRGPUDialect
MLIRSPIRVAttributeIncGen
MLIRSPIRVAttrUtilsGen
MLIRSPIRVAvailabilityIncGen
MLIRSPIRVCanonicalizationIncGen
MLIRSPIRVEnumAvailabilityIncGen
MLIRSPIRVEnumsIncGen
- MLIRSPIRVImageInterfacesIncGen
MLIRSPIRVOpsIncGen
MLIRSPIRVOpsShardGen
+ MLIRSPIRVSerializationGen
+ # SPIRVDialect.cpp includes llvm/IR/Attributes.h.
+ intrinsics_gen
+
+ # SPIRVDialect.cpp includes the generated GPU CompilationInterfaces.
+ HEADER_LIBS
+ MLIRGPUDialect
LINK_LIBS PUBLIC
MLIRControlFlowInterfaces
diff --git a/mlir/lib/Dialect/Shape/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Shape/Transforms/CMakeLists.txt
index a51c6780c2866..399b5b0292be9 100644
--- a/mlir/lib/Dialect/Shape/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Shape/Transforms/CMakeLists.txt
@@ -9,10 +9,15 @@ add_mlir_dialect_library(MLIRShapeOpsTransforms
DEPENDS
MLIRShapeTransformsIncGen
- )
-target_link_libraries(MLIRShapeOpsTransforms
- PUBLIC
+ # The implementations include FuncOps.h and Tensor.h; Tensor.h includes
+ # Dialect/Utils/ReshapeOpsUtils.h.
+ HEADER_LIBS
+ MLIRDialectUtils
+ MLIRFuncDialect
+ MLIRTensorDialect
+
+ LINK_LIBS PUBLIC
MLIRArithDialect
MLIRBufferizationDialect
MLIRBufferizationTransforms
diff --git a/mlir/lib/Dialect/Shard/IR/CMakeLists.txt b/mlir/lib/Dialect/Shard/IR/CMakeLists.txt
index 70c6049884e12..8fb55b96c35bf 100644
--- a/mlir/lib/Dialect/Shard/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Shard/IR/CMakeLists.txt
@@ -7,6 +7,10 @@ add_mlir_dialect_library(MLIRShardDialect
DEPENDS
MLIRShardIncGen
+ # ShardOps.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRDialectUtils
diff --git a/mlir/lib/Dialect/Shard/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Shard/Transforms/CMakeLists.txt
index 4e3fb6db9966c..f7e38982ff771 100644
--- a/mlir/lib/Dialect/Shard/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Shard/Transforms/CMakeLists.txt
@@ -9,6 +9,9 @@ add_mlir_dialect_library(MLIRShardTransforms
DEPENDS
MLIRShardPassIncGen
+
+ # Partition.cpp and ShardingPropagation.cpp include ShardingInterface.h.
+ HEADER_LIBS
MLIRShardingInterface
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt b/mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt
index fe2cc90688d08..743ce903caf80 100644
--- a/mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt
@@ -42,6 +42,11 @@ add_mlir_dialect_library(MLIRSparseTensorDialect
MLIRSparseTensorAttrDefsIncGen
MLIRSparseTensorOpsIncGen
MLIRSparseTensorTypesIncGen
+ MLIRSparseTensorInterfacesIncGen
+
+ # SparseTensorDialect.cpp includes the generated BufferizableOpInterface.
+ HEADER_LIBS
+ MLIRBufferizationDialect
LINK_LIBS PUBLIC
MLIRArithDialect
diff --git a/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt b/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt
index c724b49762a1a..6ea162ad0bada 100644
--- a/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt
+++ b/mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt
@@ -4,6 +4,13 @@ add_mlir_dialect_library(MLIRSparseTensorPipelines
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SparseTensor
+ # SparseTensorPipelines.cpp includes the aggregate Conversion/Passes.h
+ # header, whose declarations include these generated dialect headers.
+ HEADER_LIBS
+ MLIRArmSMETransforms
+ MLIROpenACCDialect
+ MLIRTosaTransforms
+
LINK_LIBS PUBLIC
MLIRArithTransforms
MLIRAffineToStandard
diff --git a/mlir/lib/Dialect/Tensor/IR/CMakeLists.txt b/mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
index 66b73f9bead5d..493c2cd0efeb1 100644
--- a/mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
@@ -17,6 +17,10 @@ add_mlir_dialect_library(MLIRTensorDialect
DEPENDS
MLIRTensorOpsIncGen
+ # TensorDialect.cpp includes TransformInterfaces.h.
+ HEADER_LIBS
+ MLIRTransformDialectInterfaces
+
LINK_LIBS PUBLIC
MLIRAffineDialect
MLIRArithDialect
diff --git a/mlir/lib/Dialect/Tosa/CMakeLists.txt b/mlir/lib/Dialect/Tosa/CMakeLists.txt
index 6404ca8fc5a56..4772d0d85664a 100644
--- a/mlir/lib/Dialect/Tosa/CMakeLists.txt
+++ b/mlir/lib/Dialect/Tosa/CMakeLists.txt
@@ -14,7 +14,10 @@ add_mlir_dialect_library(MLIRTosaDialect
MLIRTosaOpsIncGen
MLIRTosaInterfacesIncGen
MLIRTosaEnumsIncGen
- MLIRShardingInterfaceIncGen
+
+ # TosaOps.cpp includes ShardingInterface.h for promised interfaces.
+ HEADER_LIBS
+ MLIRShardingInterface
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/Transform/IR/CMakeLists.txt b/mlir/lib/Dialect/Transform/IR/CMakeLists.txt
index 5b4989f328e69..21ed91029817c 100644
--- a/mlir/lib/Dialect/Transform/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Transform/IR/CMakeLists.txt
@@ -5,6 +5,13 @@ add_mlir_dialect_library(MLIRTransformDialect
TransformTypes.cpp
Utils.cpp
+ DEPENDS
+ MLIRTransformDialectIncGen
+ MLIRTransformTypesIncGen
+ MLIRTransformDialectEnumIncGen
+ MLIRTransformDialectAttributesIncGen
+ MLIRTransformOpsIncGen
+
LINK_LIBS PUBLIC
MLIRCastInterfaces
MLIRFunctionInterfaces
diff --git a/mlir/lib/Dialect/Transform/Interfaces/CMakeLists.txt b/mlir/lib/Dialect/Transform/Interfaces/CMakeLists.txt
index fc9cbfdc9a5bf..b7e909e2fa958 100644
--- a/mlir/lib/Dialect/Transform/Interfaces/CMakeLists.txt
+++ b/mlir/lib/Dialect/Transform/Interfaces/CMakeLists.txt
@@ -5,6 +5,8 @@ add_mlir_library(MLIRTransformDialectInterfaces
DEPENDS
MLIRMatchInterfacesIncGen
MLIRTransformInterfacesIncGen
+ MLIRTransformDialectTypeInterfacesIncGen
+ MLIRTransformDialectAttrInterfacesIncGen
LINK_LIBS PUBLIC
MLIRCastInterfaces
diff --git a/mlir/lib/Dialect/UB/IR/CMakeLists.txt b/mlir/lib/Dialect/UB/IR/CMakeLists.txt
index 84125ea0b5718..b9c44e3305aef 100644
--- a/mlir/lib/Dialect/UB/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/UB/IR/CMakeLists.txt
@@ -8,6 +8,10 @@ add_mlir_dialect_library(MLIRUBDialect
MLIRUBOpsIncGen
MLIRUBOpsInterfacesIncGen
+ # UBOps.cpp includes mlir/Transforms/InliningUtils.h.
+ HEADER_LIBS
+ MLIRTransformUtils
+
LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Dialect/Utils/CMakeLists.txt b/mlir/lib/Dialect/Utils/CMakeLists.txt
index 7673da5932304..ac354d2b53db7 100644
--- a/mlir/lib/Dialect/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Utils/CMakeLists.txt
@@ -7,6 +7,9 @@ add_mlir_library(MLIRDialectUtils
DEPENDS
MLIRDialectUtilsIncGen
+
+ # ReshapeOpsUtils.h includes the generated Arith operation declarations.
+ HEADER_LIBS
MLIRArithDialect
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Dialect/Vector/IR/CMakeLists.txt b/mlir/lib/Dialect/Vector/IR/CMakeLists.txt
index f45618cda8ece..f8eb842ab29db 100644
--- a/mlir/lib/Dialect/Vector/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Vector/IR/CMakeLists.txt
@@ -7,10 +7,9 @@ add_mlir_dialect_library(MLIRVectorDialect
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Vector/IR
DEPENDS
- MLIRMaskableOpInterfaceIncGen
- MLIRMaskingOpInterfaceIncGen
MLIRVectorOpsIncGen
MLIRVectorAttributesIncGen
+ MLIRVectorIncGen
LINK_LIBS PUBLIC
MLIRAffineDialect
diff --git a/mlir/lib/Dialect/X86/IR/CMakeLists.txt b/mlir/lib/Dialect/X86/IR/CMakeLists.txt
index 1385e55169f84..442e419e6b289 100644
--- a/mlir/lib/Dialect/X86/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/X86/IR/CMakeLists.txt
@@ -6,6 +6,7 @@ add_mlir_dialect_library(MLIRX86Dialect
DEPENDS
MLIRX86IncGen
+ MLIRX86InterfacesIncGen
LINK_LIBS PUBLIC
MLIRIR
diff --git a/mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt b/mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt
index 4ea73cda6de95..4356adfb11b43 100644
--- a/mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt
@@ -10,6 +10,7 @@ add_mlir_dialect_library(MLIRXeGPUDialect
MLIRXeGPUAttrInterfaceIncGen
MLIRXeGPUAttrsIncGen
MLIRXeGPUEnumsIncGen
+ MLIRXeGPUOpInterfaceIncGen
LINK_LIBS PUBLIC
MLIRArithDialect
diff --git a/mlir/lib/IR/CMakeLists.txt b/mlir/lib/IR/CMakeLists.txt
index 6cadc3131ccd4..f92fa602777f2 100644
--- a/mlir/lib/IR/CMakeLists.txt
+++ b/mlir/lib/IR/CMakeLists.txt
@@ -60,14 +60,10 @@ add_mlir_library(MLIRIR
MLIRBuiltinTypesIncGen
MLIRBuiltinTypeConstraintsIncGen
MLIRBuiltinTypeInterfacesIncGen
- MLIRCallInterfacesIncGen
- MLIRCastInterfacesIncGen
- MLIRDataLayoutInterfacesIncGen
MLIRDialectFoldInterfaceIncGen
MLIROpAsmInterfaceIncGen
MLIRQuantStorageTypeInterfaceIncGen
MLIRRegionKindInterfaceIncGen
- MLIRSideEffectInterfacesIncGen
MLIRSymbolInterfacesIncGen
MLIRTensorEncodingIncGen
MLIROpAsmDialectInterfaceIncGen
diff --git a/mlir/lib/Interfaces/CMakeLists.txt b/mlir/lib/Interfaces/CMakeLists.txt
index d20d290c45c01..99ae4f523cee3 100644
--- a/mlir/lib/Interfaces/CMakeLists.txt
+++ b/mlir/lib/Interfaces/CMakeLists.txt
@@ -115,9 +115,7 @@ add_mlir_library(MLIRSubsetOpInterface
${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
DEPENDS
- MLIRDestinationStyleOpInterface
MLIRSubsetOpInterfaceIncGen
- MLIRValueBoundsOpInterface
LINK_LIBS PUBLIC
MLIRDestinationStyleOpInterface
@@ -133,6 +131,9 @@ add_mlir_library(MLIRTilingInterface
DEPENDS
MLIRTilingInterfaceIncGen
+
+ # TilingInterface.h includes Dialect/Utils/StructuredOpsUtils.h.
+ HEADER_LIBS
MLIRDialectUtils
LINK_LIBS PUBLIC
@@ -149,8 +150,10 @@ add_mlir_library(MLIRValueBoundsOpInterface
${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
DEPENDS
- MLIRDestinationStyleOpInterface
MLIRValueBoundsOpInterfaceIncGen
+
+ # ValueBoundsOpInterface.cpp includes the generated ViewLike interface.
+ HEADER_LIBS
MLIRViewLikeInterface
LINK_LIBS PUBLIC
diff --git a/mlir/lib/Interfaces/Utils/CMakeLists.txt b/mlir/lib/Interfaces/Utils/CMakeLists.txt
index c722fbf4ece09..714e2193831e8 100644
--- a/mlir/lib/Interfaces/Utils/CMakeLists.txt
+++ b/mlir/lib/Interfaces/Utils/CMakeLists.txt
@@ -9,9 +9,6 @@ add_mlir_library(MLIRInferIntRangeCommon
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces/Utils
- DEPENDS
- MLIRInferIntRangeInterfaceIncGen
-
LINK_LIBS PUBLIC
MLIRShapedOpInterfaces
MLIRInferIntRangeInterface
diff --git a/mlir/lib/Reducer/CMakeLists.txt b/mlir/lib/Reducer/CMakeLists.txt
index 68864e373c993..4e45f3225aefd 100644
--- a/mlir/lib/Reducer/CMakeLists.txt
+++ b/mlir/lib/Reducer/CMakeLists.txt
@@ -4,15 +4,16 @@ add_mlir_library(MLIRReduce
ReductionTreePass.cpp
Tester.cpp
+ DEPENDS
+ MLIRReducerIncGen
+ MLIRDialectReductionPatternInterfaceIncGen
+
LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRRewrite
MLIRTransformUtils
- DEPENDS
- MLIRReducerIncGen
- MLIRDialectReductionPatternInterfaceIncGen
)
mlir_check_all_link_libraries(MLIRReduce)
diff --git a/mlir/lib/Rewrite/CMakeLists.txt b/mlir/lib/Rewrite/CMakeLists.txt
index 15b3739e4c633..6194c7047cac2 100644
--- a/mlir/lib/Rewrite/CMakeLists.txt
+++ b/mlir/lib/Rewrite/CMakeLists.txt
@@ -9,7 +9,12 @@ add_mlir_library(MLIRRewrite
DEPENDS
mlir-generic-headers
- MLIRConversionPassIncGen
+
+ # ByteCode.cpp and FrozenRewritePatternSet.cpp include generated PDL and
+ # PDLInterp operation declarations.
+ HEADER_LIBS
+ MLIRPDLDialect
+ MLIRPDLInterpDialect
LINK_LIBS PUBLIC
MLIRIR
@@ -40,4 +45,3 @@ if(MLIR_ENABLE_PDL_IN_PATTERNMATCH)
MLIRPDLToPDLInterp
MLIRRewritePDL)
endif()
-
diff --git a/mlir/lib/Target/LLVMIR/CMakeLists.txt b/mlir/lib/Target/LLVMIR/CMakeLists.txt
index 69fd5583fac2a..ed775bc47d7bf 100644
--- a/mlir/lib/Target/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/CMakeLists.txt
@@ -29,6 +29,7 @@ add_mlir_translation_library(MLIRTargetLLVMIRExport
DEPENDS
intrinsics_gen
+ MLIRLLVMTranslationDialectInterfaceIncGen
LINK_COMPONENTS
Analysis
diff --git a/mlir/lib/Target/LLVMIR/Dialect/ArmNeon/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/ArmNeon/CMakeLists.txt
index 516fa179aa56e..edfaae4827500 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/ArmNeon/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/ArmNeon/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_translation_library(MLIRArmNeonToLLVMIRTranslation
ArmNeonToLLVMIRTranslation.cpp
- DEPENDS
- MLIRArmNeonConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/ArmSME/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/ArmSME/CMakeLists.txt
index d34cebf487271..88b802266b13e 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/ArmSME/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/ArmSME/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_translation_library(MLIRArmSMEToLLVMIRTranslation
ArmSMEToLLVMIRTranslation.cpp
- DEPENDS
- MLIRArmSMEConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/CMakeLists.txt
index 66180f9e001d5..f5f6b6905222f 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_translation_library(MLIRArmSVEToLLVMIRTranslation
ArmSVEToLLVMIRTranslation.cpp
- DEPENDS
- MLIRArmSVEConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/NVVM/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/NVVM/CMakeLists.txt
index a90de15798161..7a703e040c65d 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/NVVM/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/NVVM/CMakeLists.txt
@@ -19,9 +19,6 @@ add_mlir_translation_library(MLIRLLVMIRToNVVMTranslation
add_mlir_translation_library(MLIRNVVMToLLVMIRTranslation
NVVMToLLVMIRTranslation.cpp
- DEPENDS
- MLIRNVVMConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/ROCDL/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/ROCDL/CMakeLists.txt
index 9e69bcd4e9465..de78894a07ffe 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/ROCDL/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/ROCDL/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_translation_library(MLIRROCDLToLLVMIRTranslation
ROCDLToLLVMIRTranslation.cpp
- DEPENDS
- MLIRROCDLConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/VCIX/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/VCIX/CMakeLists.txt
index d2622af16d938..8bb678c0f2c2e 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/VCIX/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/VCIX/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_translation_library(MLIRVCIXToLLVMIRTranslation
VCIXToLLVMIRTranslation.cpp
- DEPENDS
- MLIRVCIXConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/LLVMIR/Dialect/XeVM/CMakeLists.txt b/mlir/lib/Target/LLVMIR/Dialect/XeVM/CMakeLists.txt
index 6308d7e2e4404..979f3a475af4c 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/XeVM/CMakeLists.txt
+++ b/mlir/lib/Target/LLVMIR/Dialect/XeVM/CMakeLists.txt
@@ -5,9 +5,6 @@ set(LLVM_OPTIONAL_SOURCES
add_mlir_translation_library(MLIRXeVMToLLVMIRTranslation
XeVMToLLVMIRTranslation.cpp
- DEPENDS
- MLIRXeVMConversionsIncGen
-
LINK_COMPONENTS
Core
diff --git a/mlir/lib/Target/SPIRV/CMakeLists.txt b/mlir/lib/Target/SPIRV/CMakeLists.txt
index 2926320ed286b..b65854e72ac31 100644
--- a/mlir/lib/Target/SPIRV/CMakeLists.txt
+++ b/mlir/lib/Target/SPIRV/CMakeLists.txt
@@ -10,6 +10,10 @@ set(LLVM_OPTIONAL_SOURCES
add_mlir_translation_library(MLIRSPIRVBinaryUtils
SPIRVBinaryUtils.cpp
+ # SPIRVBinaryUtils.h includes the generated SPIRVEnums.h.
+ HEADER_LIBS
+ MLIRSPIRVDialect
+
LINK_LIBS PUBLIC
MLIRIR
MLIRSupport
@@ -28,6 +32,10 @@ add_mlir_translation_library(MLIRSPIRVTranslateRegistration
add_mlir_dialect_library(MLIRSPIRVTarget
Target.cpp
+ # Target.cpp includes llvm/IR/Attributes.h.
+ DEPENDS
+ intrinsics_gen
+
LINK_LIBS PUBLIC
MLIRIR
MLIRGPUDialect
diff --git a/mlir/lib/Target/SPIRV/Deserialization/CMakeLists.txt b/mlir/lib/Target/SPIRV/Deserialization/CMakeLists.txt
index 6b35a126af169..913eb55464435 100644
--- a/mlir/lib/Target/SPIRV/Deserialization/CMakeLists.txt
+++ b/mlir/lib/Target/SPIRV/Deserialization/CMakeLists.txt
@@ -3,9 +3,6 @@ add_mlir_translation_library(MLIRSPIRVDeserialization
Deserializer.cpp
Deserialization.cpp
- DEPENDS
- MLIRSPIRVSerializationGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRSPIRVDialect
diff --git a/mlir/lib/Target/SPIRV/Serialization/CMakeLists.txt b/mlir/lib/Target/SPIRV/Serialization/CMakeLists.txt
index e912efee08763..a8def57b85622 100644
--- a/mlir/lib/Target/SPIRV/Serialization/CMakeLists.txt
+++ b/mlir/lib/Target/SPIRV/Serialization/CMakeLists.txt
@@ -3,9 +3,6 @@ add_mlir_translation_library(MLIRSPIRVSerialization
Serializer.cpp
SerializeOps.cpp
- DEPENDS
- MLIRSPIRVSerializationGen
-
LINK_LIBS PUBLIC
MLIRIR
MLIRSPIRVDialect
diff --git a/mlir/lib/Transforms/CMakeLists.txt b/mlir/lib/Transforms/CMakeLists.txt
index 66b39f53c91df..e202e9756bf39 100644
--- a/mlir/lib/Transforms/CMakeLists.txt
+++ b/mlir/lib/Transforms/CMakeLists.txt
@@ -28,7 +28,6 @@ add_mlir_library(MLIRTransforms
DEPENDS
MLIRTransformsPassIncGen
- MLIRTransformsDialectInterfaceIncGen
LINK_LIBS PUBLIC
MLIRAnalysis
diff --git a/mlir/lib/Transforms/Utils/CMakeLists.txt b/mlir/lib/Transforms/Utils/CMakeLists.txt
index 3ecf3859a7f4c..f38826690e141 100644
--- a/mlir/lib/Transforms/Utils/CMakeLists.txt
+++ b/mlir/lib/Transforms/Utils/CMakeLists.txt
@@ -15,6 +15,9 @@ add_mlir_library(MLIRTransformUtils
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms
+ DEPENDS
+ MLIRTransformsDialectInterfaceIncGen
+
LINK_LIBS PUBLIC
MLIRAnalysis
MLIRCallInterfaces
diff --git a/mlir/test/CMake/header-dependencies.test b/mlir/test/CMake/header-dependencies.test
new file mode 100644
index 0000000000000..6423ace6ef998
--- /dev/null
+++ b/mlir/test/CMake/header-dependencies.test
@@ -0,0 +1,97 @@
+# RUN: rm -rf %t
+# RUN: split-file %s %t
+# RUN: "%cmake_exe" -S %t/valid -B %t/valid-build -G "%cmake_generator" \
+# RUN: -DMLIR_DIR=%mlir_cmake_dir -DCMAKE_CXX_COMPILER=%host_cxx 2>&1 \
+# RUN: | FileCheck %s --check-prefix=VALID
+# RUN: not "%cmake_exe" -S %t/invalid -B %t/invalid-build \
+# RUN: -G "%cmake_generator" -DMLIR_DIR=%mlir_cmake_dir \
+# RUN: -DCMAKE_CXX_COMPILER=%host_cxx 2>&1 \
+# RUN: | FileCheck %s --check-prefix=INVALID
+
+# VALID: -- Generated header dependency checks passed
+# INVALID-DAG: BadConsumer: HEADER_LIBS entry 'MisspelledProvider' is not a target
+# INVALID-DAG: BadConsumer: HEADER_LIBS entry 'ProviderIncGen' is not a library
+
+#--- common.cmake
+find_package(MLIR REQUIRED CONFIG)
+list(APPEND CMAKE_MODULE_PATH "${MLIR_CMAKE_DIR}" "${LLVM_CMAKE_DIR}")
+include(TableGen)
+include(AddLLVM)
+include(AddMLIR)
+include(HandleLLVMOptions)
+set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/bin)
+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/lib)
+
+set(LLVM_TARGET_DEFINITIONS Provider.td)
+mlir_tablegen(Provider.h.inc -gen-op-decls)
+add_public_tablegen_target(ProviderIncGen)
+mlir_tablegen(Base.h.inc -gen-op-decls)
+add_public_tablegen_target(BaseIncGen)
+# Keep the libraries below from depending on every TableGen target declared in
+# this directory, so the checks only see edges added by the helpers under test.
+set(LLVM_COMMON_DEPENDS)
+
+#--- valid/CMakeLists.txt
+cmake_minimum_required(VERSION 3.20)
+project(HeaderDependencies LANGUAGES C CXX)
+include(../common.cmake)
+
+# Consumers are declared before the provider: resolution is deferred.
+add_mlir_library(LinkConsumer empty.cpp DISABLE_INSTALL
+ LINK_LIBS PRIVATE Provider PUBLIC "$<$<BOOL:1>:ProviderAlias>")
+add_mlir_library(HeaderConsumer empty.cpp DISABLE_INSTALL
+ HEADER_LIBS ProviderAlias)
+add_mlir_library(Provider empty.cpp DISABLE_INSTALL
+ DEPENDS ProviderIncGen
+ LINK_LIBS PUBLIC Base
+ HEADER_LIBS HeaderConsumer)
+add_library(ProviderAlias ALIAS Provider)
+add_mlir_library(Base empty.cpp DISABLE_INSTALL
+ DEPENDS BaseIncGen)
+
+function(expect_dependencies target expected)
+ get_target_property(actual ${target} MANUALLY_ADDED_DEPENDENCIES)
+ # Older CMake versions make a library depend on its own object library.
+ list(FILTER actual EXCLUDE REGEX "^obj\\.")
+ list(SORT actual)
+ list(SORT expected)
+ if(NOT "${actual}" STREQUAL "${expected}")
+ message(FATAL_ERROR
+ "${target}: expected dependencies '${expected}', got '${actual}'")
+ endif()
+endfunction()
+
+function(check_dependencies)
+ # PRIVATE and generator-expression LINK_LIBS both order the object library.
+ expect_dependencies(obj.LinkConsumer "Provider;mlir-generic-headers")
+ # HEADER_LIBS resolves to the TableGen targets of the provider and of what it
+ # links, not to the libraries, for both the object library and the library.
+ expect_dependencies(obj.HeaderConsumer
+ "ProviderIncGen;BaseIncGen;mlir-generic-headers")
+ expect_dependencies(HeaderConsumer
+ "ProviderIncGen;BaseIncGen;mlir-generic-headers")
+ # A provider with a header-only dependency on its own consumer gets no cycle.
+ expect_dependencies(obj.Provider
+ "ProviderIncGen;Base;BaseIncGen;mlir-generic-headers")
+ message(STATUS "Generated header dependency checks passed")
+endfunction()
+cmake_language(DEFER CALL check_dependencies)
+
+#--- valid/empty.cpp
+void empty() {}
+
+#--- valid/Provider.td
+// Only configuration is under test.
+
+#--- invalid/CMakeLists.txt
+cmake_minimum_required(VERSION 3.20)
+project(HeaderDependenciesInvalid LANGUAGES C CXX)
+include(../common.cmake)
+add_mlir_library(BadConsumer empty.cpp DISABLE_INSTALL
+ HEADER_LIBS MisspelledProvider ProviderIncGen)
+
+#--- invalid/empty.cpp
+void empty() {}
+
+#--- invalid/Provider.td
+// Only configuration is under test.
diff --git a/mlir/test/CMake/lit.local.cfg b/mlir/test/CMake/lit.local.cfg
new file mode 100644
index 0000000000000..a16efaf9cc65c
--- /dev/null
+++ b/mlir/test/CMake/lit.local.cfg
@@ -0,0 +1,3 @@
+config.substitutions.append(("%cmake_exe", config.host_cmake))
+config.substitutions.append(("%cmake_generator", config.host_cmake_generator))
+config.substitutions.append(("%mlir_cmake_dir", config.mlir_cmake_dir))
diff --git a/mlir/test/lib/Dialect/NVGPU/CMakeLists.txt b/mlir/test/lib/Dialect/NVGPU/CMakeLists.txt
index 025f1a0dbc488..8dfb44ec80bc9 100644
--- a/mlir/test/lib/Dialect/NVGPU/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/NVGPU/CMakeLists.txt
@@ -3,6 +3,12 @@ add_mlir_library(MLIRNVGPUTestPasses
TestNVGPUTransforms.cpp
EXCLUDE_FROM_LIBMLIR
+
+ # TestNVGPUTransforms.cpp includes Linalg and Vector transform headers.
+ HEADER_LIBS
+ MLIRLinalgDialect
+ MLIRLinalgTransforms
+ MLIRVectorTransforms
)
mlir_target_link_libraries(MLIRNVGPUTestPasses PUBLIC
MLIRIR
diff --git a/mlir/test/lib/Dialect/Shard/CMakeLists.txt b/mlir/test/lib/Dialect/Shard/CMakeLists.txt
index a97839b6b1ffd..0d216b41fa450 100644
--- a/mlir/test/lib/Dialect/Shard/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Shard/CMakeLists.txt
@@ -4,6 +4,10 @@ add_mlir_library(MLIRShardTest
TestReshardingPartition.cpp
EXCLUDE_FROM_LIBMLIR
+
+ # TestReshardingPartition.cpp includes SPIRVOps.h.
+ HEADER_LIBS
+ MLIRSPIRVDialect
)
mlir_target_link_libraries(MLIRShardTest PUBLIC
MLIRShardDialect
diff --git a/mlir/test/lib/Dialect/Test/CMakeLists.txt b/mlir/test/lib/Dialect/Test/CMakeLists.txt
index 4c4721193322b..ce0a8269bbc20 100644
--- a/mlir/test/lib/Dialect/Test/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Test/CMakeLists.txt
@@ -68,7 +68,10 @@ add_mlir_library(MLIRTestDialect
MLIRTestOpsIncGen
MLIRTestOpsSyntaxIncGen
MLIRTestOpsShardGen
- MLIRConvertToEmitCPatternInterfaceIncGen
+
+ # TestDialectInterfaces.cpp includes the generated ToEmitCInterface.
+ HEADER_LIBS
+ MLIRConvertToEmitC
)
mlir_target_link_libraries(MLIRTestDialect PUBLIC
MLIRControlFlowInterfaces
diff --git a/mlir/test/lib/Dialect/Tosa/CMakeLists.txt b/mlir/test/lib/Dialect/Tosa/CMakeLists.txt
index 7d40881ee6ee4..fa9508b3ebb02 100644
--- a/mlir/test/lib/Dialect/Tosa/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Tosa/CMakeLists.txt
@@ -6,8 +6,9 @@ add_mlir_dialect_library(MLIRTosaTestPasses
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Tosa/Transforms
- DEPENDS
- MLIRTosaPassIncGen
+ # TosaTestPasses.cpp includes the generated Tosa transform pass header.
+ HEADER_LIBS
+ MLIRTosaTransforms
)
mlir_target_link_libraries(MLIRTosaTestPasses PUBLIC
MLIRFuncDialect
diff --git a/mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt b/mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt
index 657fcb76815bc..85ba42b554e82 100644
--- a/mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt
+++ b/mlir/test/lib/Interfaces/TilingInterface/CMakeLists.txt
@@ -6,10 +6,10 @@ add_public_tablegen_target(MLIRTestTilingInterfaceTransformOpsIncGen)
add_mlir_library(MLIRTilingInterfaceTestPasses
TestTilingInterfaceTransformOps.cpp
+ EXCLUDE_FROM_LIBMLIR
+
DEPENDS
MLIRTestTilingInterfaceTransformOpsIncGen
-
- EXCLUDE_FROM_LIBMLIR
)
mlir_target_link_libraries(MLIRTilingInterfaceTestPasses PUBLIC
MLIRAffineDialect
diff --git a/mlir/test/python/lib/CMakeLists.txt b/mlir/test/python/lib/CMakeLists.txt
index f51a7b44e64dd..79e33b0090250 100644
--- a/mlir/test/python/lib/CMakeLists.txt
+++ b/mlir/test/python/lib/CMakeLists.txt
@@ -21,9 +21,6 @@ mlir_target_link_libraries(MLIRPythonTestDialect PUBLIC
add_mlir_public_c_api_library(MLIRCAPIPythonTestDialect
PythonTestCAPI.cpp
- DEPENDS
- MLIRPythonTestIncGen
-
LINK_LIBS PUBLIC
MLIRCAPIInterfaces
MLIRCAPIIR
diff --git a/mlir/unittests/IR/CMakeLists.txt b/mlir/unittests/IR/CMakeLists.txt
index ce9b230222f62..f48103c1c924f 100644
--- a/mlir/unittests/IR/CMakeLists.txt
+++ b/mlir/unittests/IR/CMakeLists.txt
@@ -26,9 +26,6 @@ add_mlir_unittest(MLIRIRTests
ValueTest.cpp
VerifierTest.cpp
BlobManagerTest.cpp
-
- DEPENDS
- MLIRTestInterfaceIncGen
)
target_include_directories(MLIRIRTests PRIVATE "${MLIR_BINARY_DIR}/test/lib/Dialect/Test")
mlir_target_link_libraries(MLIRIRTests PRIVATE MLIRIR)
diff --git a/mlir/unittests/Interfaces/CMakeLists.txt b/mlir/unittests/Interfaces/CMakeLists.txt
index 193edda6bf8d8..e2b90811cacde 100644
--- a/mlir/unittests/Interfaces/CMakeLists.txt
+++ b/mlir/unittests/Interfaces/CMakeLists.txt
@@ -5,9 +5,6 @@ add_mlir_unittest(MLIRInterfacesTests
MemorySlotUtilsTest.cpp
SideEffectInterfacesTest.cpp
InferTypeOpInterfaceTest.cpp
-
- DEPENDS
- MLIRTestInterfaceIncGen
)
target_include_directories(MLIRInterfacesTests PRIVATE "${MLIR_BINARY_DIR}/test/lib/Dialect/Test")
diff --git a/mlir/unittests/Parser/CMakeLists.txt b/mlir/unittests/Parser/CMakeLists.txt
index 4b3fedbb638c0..1a2037ab07b62 100644
--- a/mlir/unittests/Parser/CMakeLists.txt
+++ b/mlir/unittests/Parser/CMakeLists.txt
@@ -1,9 +1,6 @@
add_mlir_unittest(MLIRParserTests
ParserTest.cpp
ResourceTest.cpp
-
- DEPENDS
- MLIRTestInterfaceIncGen
)
target_include_directories(MLIRParserTests PRIVATE "${MLIR_BINARY_DIR}/test/lib/Dialect/Test")
More information about the cfe-commits
mailing list