[clang] d5f72dd - [CMake] Link only the MLIR dialects ClangIR uses (#221616)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 7 13:07:30 PDT 2026
Author: Fangrui Song
Date: 2026-09-07T13:07:25-07:00
New Revision: d5f72dd27f20499b050a7f855750a7dc2013e1d5
URL: https://github.com/llvm/llvm-project/commit/d5f72dd27f20499b050a7f855750a7dc2013e1d5
DIFF: https://github.com/llvm/llvm-project/commit/d5f72dd27f20499b050a7f855750a7dc2013e1d5.diff
LOG: [CMake] Link only the MLIR dialects ClangIR uses (#221616)
CIR's sources reference Arith, DLTI, Func, LLVM, OpenACC, OpenMP and
Ptr, and cir-opt registers only the CIR dialects plus MemRef and LLVM.
Link those instead, which keeps Linalg, Vector, SPIRV, SparseTensor,
Tosa and GPU out of the clang build graph.
CLANG_ENABLE_CIR=ON adds 2135 build edges to the clang target; this
removes 694 of them.
LLM-aided
Added:
Modified:
clang/lib/CIR/CodeGen/CMakeLists.txt
clang/lib/CIR/FrontendAction/CMakeLists.txt
clang/lib/CIR/Interfaces/CMakeLists.txt
clang/lib/CIR/Lowering/CMakeLists.txt
clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
clang/tools/cir-opt/CMakeLists.txt
Removed:
################################################################################
diff --git a/clang/lib/CIR/CodeGen/CMakeLists.txt b/clang/lib/CIR/CodeGen/CMakeLists.txt
index 0fd5cdfb02540..c4bd520fc61b7 100644
--- a/clang/lib/CIR/CodeGen/CMakeLists.txt
+++ b/clang/lib/CIR/CodeGen/CMakeLists.txt
@@ -1,11 +1,10 @@
set(
LLVM_LINK_COMPONENTS
Core
+ FrontendOpenMP
Support
)
-get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
-
add_clang_library(clangCIR
CIRDataLayoutSpec.cpp
CIRGenerator.cpp
@@ -64,18 +63,23 @@ add_clang_library(clangCIR
DEPENDS
MLIRCIR
MLIRCIROpInterfacesIncGen
- ${dialect_libs}
LINK_LIBS
clangAST
clangBasic
clangCodeGenUtils
clangLex
- ${dialect_libs}
CIRRegisterAllDialects
CIROpenACCSupport
CIROpenMPSupport
+ MLIRArithDialect
MLIRCIR
MLIRCIRInterfaces
+ MLIRDLTIDialect
+ MLIRLLVMDialect
+ MLIROpenACCDialect
+ MLIROpenMPDialect
+ MLIROpenMPUtils
+ MLIRPtrMemorySpaceInterfaces
MLIRTargetLLVMIRImport
)
diff --git a/clang/lib/CIR/FrontendAction/CMakeLists.txt b/clang/lib/CIR/FrontendAction/CMakeLists.txt
index 9577a907c9334..d221771fd4086 100644
--- a/clang/lib/CIR/FrontendAction/CMakeLists.txt
+++ b/clang/lib/CIR/FrontendAction/CMakeLists.txt
@@ -5,8 +5,6 @@ set(LLVM_LINK_COMPONENTS
Support
)
-get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
-
add_clang_library(clangCIRFrontendAction
CIRGenAction.cpp
CIRDiagnosticHandler.cpp
diff --git a/clang/lib/CIR/Interfaces/CMakeLists.txt b/clang/lib/CIR/Interfaces/CMakeLists.txt
index 33eb169708a4f..8eec8b05aa951 100644
--- a/clang/lib/CIR/Interfaces/CMakeLists.txt
+++ b/clang/lib/CIR/Interfaces/CMakeLists.txt
@@ -15,7 +15,6 @@ add_clang_library(MLIRCIRInterfaces
MLIRCIROpInterfacesIncGen
LINK_LIBS
- ${dialect_libs}
MLIRIR
MLIRSupport
)
diff --git a/clang/lib/CIR/Lowering/CMakeLists.txt b/clang/lib/CIR/Lowering/CMakeLists.txt
index 28ec3c551018c..2713af9ba3d6c 100644
--- a/clang/lib/CIR/Lowering/CMakeLists.txt
+++ b/clang/lib/CIR/Lowering/CMakeLists.txt
@@ -3,15 +3,12 @@ set(LLVM_LINK_COMPONENTS
Support
)
-get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
-
add_clang_library(clangCIRLoweringCommon
CIRPasses.cpp
LoweringHelpers.cpp
LINK_LIBS
clangCIR
- ${dialect_libs}
MLIRCIR
MLIRCIRTransforms
MLIRTransforms
diff --git a/clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt b/clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
index 26d9f65f865be..d3d0805afb4d8 100644
--- a/clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
+++ b/clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
@@ -3,8 +3,6 @@ set(LLVM_LINK_COMPONENTS
Support
)
-get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
-
add_clang_library(clangCIRLoweringDirectToLLVM
LowerToLLVM.cpp
LowerToLLVMIR.cpp
@@ -18,12 +16,16 @@ add_clang_library(clangCIRLoweringDirectToLLVM
LINK_LIBS
clangCIRLoweringCommon
- ${dialect_libs}
MLIRCIR
MLIRCIRTargetLowering
MLIRCIRTransforms
MLIRBuiltinToLLVMIRTranslation
+ MLIRDLTIDialect
+ MLIRFuncDialect
+ MLIRLLVMCommonConversion
+ MLIRLLVMDialect
MLIRLLVMToLLVMIRTranslation
+ MLIROpenMPDialect
MLIROpenMPToLLVM
MLIROpenMPToLLVMIRTranslation
MLIROpenMPTransforms
diff --git a/clang/tools/cir-opt/CMakeLists.txt b/clang/tools/cir-opt/CMakeLists.txt
index 72cfff1800d41..b4ae75cfbb118 100644
--- a/clang/tools/cir-opt/CMakeLists.txt
+++ b/clang/tools/cir-opt/CMakeLists.txt
@@ -1,6 +1,3 @@
-get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
-get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
-
include_directories(${LLVM_MAIN_SRC_DIR}/../mlir/include)
include_directories(${CMAKE_BINARY_DIR}/tools/mlir/include)
@@ -39,16 +36,16 @@ clang_target_link_libraries(cir-opt
target_link_libraries(cir-opt
PRIVATE
- ${dialect_libs}
- ${conversion_libs}
MLIRAnalysis
MLIRDialect
MLIRIR
+ MLIRLLVMDialect
MLIRMemRefDialect
MLIROpenMPTransforms
MLIROptLib
MLIRParser
MLIRPass
+ MLIRReconcileUnrealizedCasts
MLIRSideEffectInterfaces
MLIRTransforms
MLIRTransformUtils
More information about the cfe-commits
mailing list