Author: Mehdi Amini Date: 2025-07-29T12:26:11+02:00 New Revision: f7ac2b89efa61b44c42dad62ae71a43733d895f4
URL: https://github.com/llvm/llvm-project/commit/f7ac2b89efa61b44c42dad62ae71a43733d895f4 DIFF: https://github.com/llvm/llvm-project/commit/f7ac2b89efa61b44c42dad62ae71a43733d895f4.diff LOG: Revert "[mlir][core] Move `InitAll***` implementation into static library. (#…" This reverts commit ace42cf063a52d097f505b7d9afeb53d02bc04db. Added: Modified: clang/tools/cir-lsp-server/CMakeLists.txt clang/tools/cir-opt/cir-opt.cpp flang/include/flang/Optimizer/Support/InitFIR.h flang/lib/Optimizer/Support/CMakeLists.txt mlir/examples/standalone/standalone-opt/CMakeLists.txt mlir/examples/standalone/standalone-opt/standalone-opt.cpp mlir/examples/toy/Ch5/CMakeLists.txt mlir/examples/toy/Ch5/toyc.cpp mlir/examples/toy/Ch6/CMakeLists.txt mlir/examples/toy/Ch6/toyc.cpp mlir/examples/toy/Ch7/CMakeLists.txt mlir/examples/toy/Ch7/toyc.cpp mlir/examples/transform-opt/CMakeLists.txt mlir/examples/transform-opt/mlir-transform-opt.cpp mlir/include/mlir/InitAllDialects.h mlir/include/mlir/InitAllExtensions.h mlir/include/mlir/InitAllPasses.h mlir/lib/CAPI/RegisterEverything/CMakeLists.txt mlir/lib/CMakeLists.txt mlir/tools/mlir-lsp-server/CMakeLists.txt mlir/tools/mlir-lsp-server/mlir-lsp-server.cpp mlir/tools/mlir-opt/CMakeLists.txt mlir/tools/mlir-query/CMakeLists.txt mlir/tools/mlir-reduce/CMakeLists.txt mlir/tools/mlir-rewrite/CMakeLists.txt mlir/tools/mlir-rewrite/mlir-rewrite.cpp mlir/unittests/ExecutionEngine/CMakeLists.txt mlir/unittests/Target/LLVM/CMakeLists.txt Removed: mlir/lib/RegisterAllDialects.cpp mlir/lib/RegisterAllExtensions.cpp mlir/lib/RegisterAllPasses.cpp ################################################################################ diff --git a/clang/tools/cir-lsp-server/CMakeLists.txt b/clang/tools/cir-lsp-server/CMakeLists.txt index f421215173e62..aad2646ce0187 100644 --- a/clang/tools/cir-lsp-server/CMakeLists.txt +++ b/clang/tools/cir-lsp-server/CMakeLists.txt @@ -1,23 +1,26 @@ +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) set(LIBS + ${dialect_libs} + ${conversion_libs} ${test_libs} clangCIR clangCIRLoweringDirectToLLVM + MLIRCIR MLIRAffineAnalysis MLIRAnalysis - MLIRCIR MLIRDialect - MLIRIR MLIRLspServerLib MLIRParser MLIRPass - MLIRRegisterAllDialects - MLIRRegisterAllPasses - MLIRSupport - MLIRTransformUtils MLIRTransforms + MLIRTransformUtils + MLIRSupport + MLIRIR ) add_mlir_tool(cir-lsp-server diff --git a/clang/tools/cir-opt/cir-opt.cpp b/clang/tools/cir-opt/cir-opt.cpp index c4d29a2117c75..3dad3b18f7082 100644 --- a/clang/tools/cir-opt/cir-opt.cpp +++ b/clang/tools/cir-opt/cir-opt.cpp @@ -17,12 +17,11 @@ #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/Dialect/MemRef/IR/MemRef.h" -#include "mlir/IR/BuiltinDialect.h" +#include "mlir/InitAllPasses.h" #include "mlir/Pass/PassManager.h" #include "mlir/Pass/PassOptions.h" #include "mlir/Pass/PassRegistry.h" #include "mlir/Tools/mlir-opt/MlirOptMain.h" -#include "mlir/Transforms/Passes.h" #include "clang/CIR/Dialect/IR/CIRDialect.h" #include "clang/CIR/Dialect/Passes.h" #include "clang/CIR/Passes.h" diff --git a/flang/include/flang/Optimizer/Support/InitFIR.h b/flang/include/flang/Optimizer/Support/InitFIR.h index 3e42ffd41591e..aacba233a2b32 100644 --- a/flang/include/flang/Optimizer/Support/InitFIR.h +++ b/flang/include/flang/Optimizer/Support/InitFIR.h @@ -20,20 +20,12 @@ #include "flang/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.h" #include "flang/Optimizer/OpenMP/Support/RegisterOpenMPExtensions.h" #include "mlir/Conversion/Passes.h" -#include "mlir/Dialect/Affine/IR/AffineOps.h" #include "mlir/Dialect/Affine/Passes.h" #include "mlir/Dialect/Complex/IR/Complex.h" -#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h" -#include "mlir/Dialect/DLTI/DLTI.h" #include "mlir/Dialect/Func/Extensions/InlinerExtension.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/Index/IR/IndexDialect.h" #include "mlir/Dialect/LLVMIR/NVVMDialect.h" -#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h" -#include "mlir/Dialect/Math/IR/Math.h" -#include "mlir/Dialect/OpenACC/OpenACC.h" #include "mlir/Dialect/OpenACC/Transforms/Passes.h" -#include "mlir/Dialect/SCF/IR/SCF.h" #include "mlir/Dialect/SCF/Transforms/Passes.h" #include "mlir/InitAllDialects.h" #include "mlir/Pass/Pass.h" diff --git a/flang/lib/Optimizer/Support/CMakeLists.txt b/flang/lib/Optimizer/Support/CMakeLists.txt index 38038e1e9821d..7ccdd4fd9c25c 100644 --- a/flang/lib/Optimizer/Support/CMakeLists.txt +++ b/flang/lib/Optimizer/Support/CMakeLists.txt @@ -1,3 +1,6 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) + add_flang_library(FIRSupport DataLayout.cpp InitFIR.cpp @@ -20,12 +23,12 @@ add_flang_library(FIRSupport ${extension_libs} MLIR_LIBS + ${dialect_libs} + ${extension_libs} MLIRBuiltinToLLVMIRTranslation - MLIRLLVMToLLVMIRTranslation MLIROpenACCToLLVMIRTranslation MLIROpenMPToLLVMIRTranslation - MLIRRegisterAllDialects - MLIRRegisterAllExtensions + MLIRLLVMToLLVMIRTranslation MLIRTargetLLVMIRExport MLIRTargetLLVMIRImport ) diff --git a/mlir/examples/standalone/standalone-opt/CMakeLists.txt b/mlir/examples/standalone/standalone-opt/CMakeLists.txt index 4b38de7d12fbe..27f81284c4d9f 100644 --- a/mlir/examples/standalone/standalone-opt/CMakeLists.txt +++ b/mlir/examples/standalone/standalone-opt/CMakeLists.txt @@ -1,10 +1,12 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) set(LIBS - MLIRArithDialect - MLIROptLib - MLIRRegisterAllDialects - MLIRRegisterAllPasses - MLIRStandalone - ) + ${dialect_libs} + ${conversion_libs} + MLIRArithDialect + MLIROptLib + MLIRStandalone + ) add_llvm_executable(standalone-opt standalone-opt.cpp) llvm_update_compile_flags(standalone-opt) diff --git a/mlir/examples/standalone/standalone-opt/standalone-opt.cpp b/mlir/examples/standalone/standalone-opt/standalone-opt.cpp index eebfcb7b776b2..e39fa967019a8 100644 --- a/mlir/examples/standalone/standalone-opt/standalone-opt.cpp +++ b/mlir/examples/standalone/standalone-opt/standalone-opt.cpp @@ -6,8 +6,6 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Dialect/Arith/IR/Arith.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/IR/MLIRContext.h" #include "mlir/InitAllDialects.h" #include "mlir/InitAllPasses.h" diff --git a/mlir/examples/toy/Ch5/CMakeLists.txt b/mlir/examples/toy/Ch5/CMakeLists.txt index 454ca56c2dd47..f4f0fec712f5b 100644 --- a/mlir/examples/toy/Ch5/CMakeLists.txt +++ b/mlir/examples/toy/Ch5/CMakeLists.txt @@ -27,8 +27,12 @@ add_toy_chapter(toyc-ch5 include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) target_link_libraries(toyc-ch5 PRIVATE + ${dialect_libs} + ${extension_libs} MLIRAnalysis MLIRCallInterfaces MLIRCastInterfaces @@ -36,9 +40,6 @@ target_link_libraries(toyc-ch5 MLIRIR MLIRParser MLIRPass - MLIRRegisterAllDialects - MLIRRegisterAllExtensions MLIRSideEffectInterfaces MLIRSupport - MLIRTransforms - ) + MLIRTransforms) diff --git a/mlir/examples/toy/Ch5/toyc.cpp b/mlir/examples/toy/Ch5/toyc.cpp index afdf782d8ea47..6a0c6318bae2a 100644 --- a/mlir/examples/toy/Ch5/toyc.cpp +++ b/mlir/examples/toy/Ch5/toyc.cpp @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// #include "mlir/Dialect/Func/Extensions/AllExtensions.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/IR/Diagnostics.h" #include "toy/AST.h" #include "toy/Dialect.h" diff --git a/mlir/examples/toy/Ch6/CMakeLists.txt b/mlir/examples/toy/Ch6/CMakeLists.txt index 73df6028329d5..283b895eb6bf4 100644 --- a/mlir/examples/toy/Ch6/CMakeLists.txt +++ b/mlir/examples/toy/Ch6/CMakeLists.txt @@ -37,8 +37,14 @@ add_toy_chapter(toyc-ch6 include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) target_link_libraries(toyc-ch6 PRIVATE + ${dialect_libs} + ${conversion_libs} + ${extension_libs} MLIRAnalysis MLIRBuiltinToLLVMIRTranslation MLIRCallInterfaces @@ -52,11 +58,8 @@ target_link_libraries(toyc-ch6 MLIRMemRefDialect MLIRParser MLIRPass - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses MLIRSideEffectInterfaces MLIRSupport MLIRTargetLLVMIRExport MLIRTransforms - ) + ) diff --git a/mlir/examples/toy/Ch6/toyc.cpp b/mlir/examples/toy/Ch6/toyc.cpp index 4a5e10973f0c0..dccab91944fe1 100644 --- a/mlir/examples/toy/Ch6/toyc.cpp +++ b/mlir/examples/toy/Ch6/toyc.cpp @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// #include "mlir/Dialect/Func/Extensions/AllExtensions.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h" #include "toy/AST.h" diff --git a/mlir/examples/toy/Ch7/CMakeLists.txt b/mlir/examples/toy/Ch7/CMakeLists.txt index a489ae5b2d368..362ab512b6b2e 100644 --- a/mlir/examples/toy/Ch7/CMakeLists.txt +++ b/mlir/examples/toy/Ch7/CMakeLists.txt @@ -36,8 +36,14 @@ add_toy_chapter(toyc-ch7 include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) target_link_libraries(toyc-ch7 PRIVATE + ${dialect_libs} + ${conversion_libs} + ${extension_libs} MLIRAnalysis MLIRBuiltinToLLVMIRTranslation MLIRCallInterfaces @@ -50,10 +56,7 @@ target_link_libraries(toyc-ch7 MLIRMemRefDialect MLIRParser MLIRPass - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses MLIRSideEffectInterfaces MLIRTargetLLVMIRExport MLIRTransforms - ) + ) diff --git a/mlir/examples/toy/Ch7/toyc.cpp b/mlir/examples/toy/Ch7/toyc.cpp index 32208eccaba5f..dd862656b9db8 100644 --- a/mlir/examples/toy/Ch7/toyc.cpp +++ b/mlir/examples/toy/Ch7/toyc.cpp @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// #include "mlir/Dialect/Func/Extensions/AllExtensions.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h" #include "toy/AST.h" diff --git a/mlir/examples/transform-opt/CMakeLists.txt b/mlir/examples/transform-opt/CMakeLists.txt index 07d58f612f3f9..8e23555d0b5d7 100644 --- a/mlir/examples/transform-opt/CMakeLists.txt +++ b/mlir/examples/transform-opt/CMakeLists.txt @@ -1,14 +1,18 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) + set(LIBS MLIRAnalysis MLIRIR MLIRParser - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses MLIRSupport MLIRTransformDialect MLIRTransformDialectTransforms MLIRTransforms + ${dialect_libs} + ${conversion_libs} + ${extension_libs} ) add_mlir_tool(mlir-transform-opt diff --git a/mlir/examples/transform-opt/mlir-transform-opt.cpp b/mlir/examples/transform-opt/mlir-transform-opt.cpp index 4b12e7610d0a8..1a29913b9e144 100644 --- a/mlir/examples/transform-opt/mlir-transform-opt.cpp +++ b/mlir/examples/transform-opt/mlir-transform-opt.cpp @@ -22,7 +22,6 @@ #include "mlir/Tools/mlir-opt/MlirOptMain.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/InitLLVM.h" -#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Support/ToolOutputFile.h" #include <cstdlib> diff --git a/mlir/include/mlir/InitAllDialects.h b/mlir/include/mlir/InitAllDialects.h index 76281712a3df9..856170e9308da 100644 --- a/mlir/include/mlir/InitAllDialects.h +++ b/mlir/include/mlir/InitAllDialects.h @@ -14,15 +14,200 @@ #ifndef MLIR_INITALLDIALECTS_H_ #define MLIR_INITALLDIALECTS_H_ +#include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h" +#include "mlir/Dialect/AMX/AMXDialect.h" +#include "mlir/Dialect/Affine/IR/AffineOps.h" +#include "mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/Arith/IR/Arith.h" +#include "mlir/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/Arith/Transforms/BufferDeallocationOpInterfaceImpl.h" +#include "mlir/Dialect/Arith/Transforms/BufferViewFlowOpInterfaceImpl.h" +#include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h" +#include "mlir/Dialect/ArmNeon/ArmNeonDialect.h" +#include "mlir/Dialect/ArmSME/IR/ArmSME.h" +#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h" +#include "mlir/Dialect/Async/IR/Async.h" +#include "mlir/Dialect/Bufferization/IR/Bufferization.h" +#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Complex/IR/Complex.h" +#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h" +#include "mlir/Dialect/ControlFlow/Transforms/BufferDeallocationOpInterfaceImpl.h" +#include "mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/DLTI/DLTI.h" +#include "mlir/Dialect/EmitC/IR/EmitC.h" +#include "mlir/Dialect/Func/IR/FuncOps.h" +#include "mlir/Dialect/GPU/IR/GPUDialect.h" +#include "mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/GPU/Transforms/BufferDeallocationOpInterfaceImpl.h" +#include "mlir/Dialect/IRDL/IR/IRDL.h" +#include "mlir/Dialect/Index/IR/IndexDialect.h" +#include "mlir/Dialect/LLVMIR/LLVMDialect.h" +#include "mlir/Dialect/LLVMIR/NVVMDialect.h" +#include "mlir/Dialect/LLVMIR/ROCDLDialect.h" +#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h" +#include "mlir/Dialect/LLVMIR/XeVMDialect.h" +#include "mlir/Dialect/Linalg/IR/Linalg.h" +#include "mlir/Dialect/Linalg/Transforms/AllInterfaces.h" +#include "mlir/Dialect/Linalg/Transforms/RuntimeOpVerification.h" +#include "mlir/Dialect/MLProgram/IR/MLProgram.h" +#include "mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/MPI/IR/MPI.h" +#include "mlir/Dialect/Math/IR/Math.h" +#include "mlir/Dialect/MemRef/IR/MemRef.h" +#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h" +#include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h" +#include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h" +#include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h" +#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h" +#include "mlir/Dialect/OpenACC/OpenACC.h" +#include "mlir/Dialect/OpenMP/OpenMPDialect.h" +#include "mlir/Dialect/PDL/IR/PDL.h" +#include "mlir/Dialect/PDLInterp/IR/PDLInterp.h" +#include "mlir/Dialect/Ptr/IR/PtrDialect.h" +#include "mlir/Dialect/Quant/IR/Quant.h" +#include "mlir/Dialect/SCF/IR/SCF.h" +#include "mlir/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h" +#include "mlir/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.h" +#include "mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/SMT/IR/SMTDialect.h" +#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h" +#include "mlir/Dialect/Shape/IR/Shape.h" +#include "mlir/Dialect/Shape/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Shard/IR/ShardDialect.h" +#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h" +#include "mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Tensor/IR/Tensor.h" +#include "mlir/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.h" +#include "mlir/Dialect/Tensor/IR/TensorTilingInterfaceImpl.h" +#include "mlir/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h" +#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Tensor/Transforms/RuntimeOpVerification.h" +#include "mlir/Dialect/Tensor/Transforms/SubsetInsertionOpInterfaceImpl.h" +#include "mlir/Dialect/Tosa/IR/ShardingInterfaceImpl.h" +#include "mlir/Dialect/Tosa/IR/TosaOps.h" +#include "mlir/Dialect/Transform/IR/TransformDialect.h" +#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h" +#include "mlir/Dialect/UB/IR/UBOps.h" +#include "mlir/Dialect/Vector/IR/ValueBoundsOpInterfaceImpl.h" +#include "mlir/Dialect/Vector/IR/VectorOps.h" +#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h" +#include "mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h" +#include "mlir/Dialect/X86Vector/X86VectorDialect.h" +#include "mlir/Dialect/XeGPU/IR/XeGPU.h" +#include "mlir/IR/Dialect.h" +#include "mlir/Interfaces/CastInterfaces.h" +#include "mlir/Target/LLVM/NVVM/Target.h" +#include "mlir/Target/LLVM/ROCDL/Target.h" +#include "mlir/Target/SPIRV/Target.h" + namespace mlir { -class DialectRegistry; -class MLIRContext; /// Add all the MLIR dialects to the provided registry. -void registerAllDialects(DialectRegistry ®istry); +inline void registerAllDialects(DialectRegistry ®istry) { + // clang-format off + registry.insert<acc::OpenACCDialect, + affine::AffineDialect, + amdgpu::AMDGPUDialect, + amx::AMXDialect, + arith::ArithDialect, + arm_neon::ArmNeonDialect, + arm_sme::ArmSMEDialect, + arm_sve::ArmSVEDialect, + async::AsyncDialect, + bufferization::BufferizationDialect, + cf::ControlFlowDialect, + complex::ComplexDialect, + DLTIDialect, + emitc::EmitCDialect, + func::FuncDialect, + gpu::GPUDialect, + index::IndexDialect, + irdl::IRDLDialect, + linalg::LinalgDialect, + LLVM::LLVMDialect, + math::MathDialect, + memref::MemRefDialect, + shard::ShardDialect, + ml_program::MLProgramDialect, + mpi::MPIDialect, + nvgpu::NVGPUDialect, + NVVM::NVVMDialect, + omp::OpenMPDialect, + pdl::PDLDialect, + pdl_interp::PDLInterpDialect, + ptr::PtrDialect, + quant::QuantDialect, + ROCDL::ROCDLDialect, + scf::SCFDialect, + shape::ShapeDialect, + smt::SMTDialect, + sparse_tensor::SparseTensorDialect, + spirv::SPIRVDialect, + tensor::TensorDialect, + tosa::TosaDialect, + transform::TransformDialect, + ub::UBDialect, + vector::VectorDialect, + x86vector::X86VectorDialect, + xegpu::XeGPUDialect, + xevm::XeVMDialect>(); + // clang-format on + + // Register all external models. + affine::registerValueBoundsOpInterfaceExternalModels(registry); + arith::registerBufferDeallocationOpInterfaceExternalModels(registry); + arith::registerBufferizableOpInterfaceExternalModels(registry); + arith::registerBufferViewFlowOpInterfaceExternalModels(registry); + arith::registerShardingInterfaceExternalModels(registry); + arith::registerValueBoundsOpInterfaceExternalModels(registry); + bufferization::func_ext::registerBufferizableOpInterfaceExternalModels( + registry); + builtin::registerCastOpInterfaceExternalModels(registry); + cf::registerBufferizableOpInterfaceExternalModels(registry); + cf::registerBufferDeallocationOpInterfaceExternalModels(registry); + gpu::registerBufferDeallocationOpInterfaceExternalModels(registry); + gpu::registerValueBoundsOpInterfaceExternalModels(registry); + LLVM::registerInlinerInterface(registry); + NVVM::registerInlinerInterface(registry); + linalg::registerAllDialectInterfaceImplementations(registry); + linalg::registerRuntimeVerifiableOpInterfaceExternalModels(registry); + memref::registerAllocationOpInterfaceExternalModels(registry); + memref::registerBufferViewFlowOpInterfaceExternalModels(registry); + memref::registerRuntimeVerifiableOpInterfaceExternalModels(registry); + memref::registerValueBoundsOpInterfaceExternalModels(registry); + memref::registerMemorySlotExternalModels(registry); + ml_program::registerBufferizableOpInterfaceExternalModels(registry); + scf::registerBufferDeallocationOpInterfaceExternalModels(registry); + scf::registerBufferizableOpInterfaceExternalModels(registry); + scf::registerValueBoundsOpInterfaceExternalModels(registry); + shape::registerBufferizableOpInterfaceExternalModels(registry); + sparse_tensor::registerBufferizableOpInterfaceExternalModels(registry); + tensor::registerBufferizableOpInterfaceExternalModels(registry); + tensor::registerFindPayloadReplacementOpInterfaceExternalModels(registry); + tensor::registerInferTypeOpInterfaceExternalModels(registry); + tensor::registerRuntimeVerifiableOpInterfaceExternalModels(registry); + tensor::registerSubsetOpInterfaceExternalModels(registry); + tensor::registerTilingInterfaceExternalModels(registry); + tensor::registerValueBoundsOpInterfaceExternalModels(registry); + tosa::registerShardingInterfaceExternalModels(registry); + vector::registerBufferizableOpInterfaceExternalModels(registry); + vector::registerSubsetOpInterfaceExternalModels(registry); + vector::registerValueBoundsOpInterfaceExternalModels(registry); + NVVM::registerNVVMTargetInterfaceExternalModels(registry); + ROCDL::registerROCDLTargetInterfaceExternalModels(registry); + spirv::registerSPIRVTargetInterfaceExternalModels(registry); +} /// Append all the MLIR dialects to the registry contained in the given context. -void registerAllDialects(MLIRContext &context); +inline void registerAllDialects(MLIRContext &context) { + DialectRegistry registry; + registerAllDialects(registry); + context.appendDialectRegistry(registry); +} } // namespace mlir diff --git a/mlir/include/mlir/InitAllExtensions.h b/mlir/include/mlir/InitAllExtensions.h index a7f64d9c16083..d5a9a2c3aeba7 100644 --- a/mlir/include/mlir/InitAllExtensions.h +++ b/mlir/include/mlir/InitAllExtensions.h @@ -14,15 +14,110 @@ #ifndef MLIR_INITALLEXTENSIONS_H_ #define MLIR_INITALLEXTENSIONS_H_ +#include "mlir/Conversion/ArithToEmitC/ArithToEmitC.h" +#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h" +#include "mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h" +#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h" +#include "mlir/Conversion/FuncToEmitC/FuncToEmitC.h" +#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h" +#include "mlir/Conversion/GPUCommon/GPUToLLVM.h" +#include "mlir/Conversion/GPUToNVVM/GPUToNVVM.h" +#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h" +#include "mlir/Conversion/MPIToLLVM/MPIToLLVM.h" +#include "mlir/Conversion/MathToLLVM/MathToLLVM.h" +#include "mlir/Conversion/MemRefToEmitC/MemRefToEmitC.h" +#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h" +#include "mlir/Conversion/NVVMToLLVM/NVVMToLLVM.h" +#include "mlir/Conversion/OpenMPToLLVM/ConvertOpenMPToLLVM.h" +#include "mlir/Conversion/SCFToEmitC/SCFToEmitC.h" +#include "mlir/Conversion/UBToLLVM/UBToLLVM.h" +#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h" +#include "mlir/Conversion/XeVMToLLVM/XeVMToLLVM.h" +#include "mlir/Dialect/AMX/Transforms.h" +#include "mlir/Dialect/Affine/TransformOps/AffineTransformOps.h" +#include "mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.h" +#include "mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.h" +#include "mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h" +#include "mlir/Dialect/DLTI/TransformOps/DLTITransformOps.h" +#include "mlir/Dialect/Func/Extensions/AllExtensions.h" +#include "mlir/Dialect/Func/TransformOps/FuncTransformOps.h" +#include "mlir/Dialect/GPU/TransformOps/GPUTransformOps.h" +#include "mlir/Dialect/Linalg/TransformOps/DialectExtension.h" +#include "mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h" +#include "mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h" +#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h" +#include "mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h" +#include "mlir/Dialect/Tensor/Extensions/AllExtensions.h" +#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h" +#include "mlir/Dialect/Transform/DebugExtension/DebugExtension.h" +#include "mlir/Dialect/Transform/IRDLExtension/IRDLExtension.h" +#include "mlir/Dialect/Transform/LoopExtension/LoopExtension.h" +#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h" +#include "mlir/Dialect/Transform/TuneExtension/TuneExtension.h" +#include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.h" +#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h" + +#include <cstdlib> + namespace mlir { -class DialectRegistry; /// This function may be called to register all MLIR dialect extensions with the /// provided registry. /// If you're building a compiler, you generally shouldn't use this: you would /// individually register the specific extensions that are useful for the /// pipelines and transformations you are using. -void registerAllExtensions(DialectRegistry ®istry); +inline void registerAllExtensions(DialectRegistry ®istry) { + // Register all conversions to LLVM extensions. + registerConvertArithToEmitCInterface(registry); + arith::registerConvertArithToLLVMInterface(registry); + registerConvertComplexToLLVMInterface(registry); + cf::registerConvertControlFlowToLLVMInterface(registry); + func::registerAllExtensions(registry); + tensor::registerAllExtensions(registry); + registerConvertFuncToEmitCInterface(registry); + registerConvertFuncToLLVMInterface(registry); + index::registerConvertIndexToLLVMInterface(registry); + registerConvertMathToLLVMInterface(registry); + mpi::registerConvertMPIToLLVMInterface(registry); + registerConvertMemRefToEmitCInterface(registry); + registerConvertMemRefToLLVMInterface(registry); + registerConvertNVVMToLLVMInterface(registry); + registerConvertOpenMPToLLVMInterface(registry); + registerConvertSCFToEmitCInterface(registry); + ub::registerConvertUBToLLVMInterface(registry); + registerConvertAMXToLLVMInterface(registry); + gpu::registerConvertGpuToLLVMInterface(registry); + NVVM::registerConvertGpuToNVVMInterface(registry); + vector::registerConvertVectorToLLVMInterface(registry); + registerConvertXeVMToLLVMInterface(registry); + + // Register all transform dialect extensions. + affine::registerTransformDialectExtension(registry); + bufferization::registerTransformDialectExtension(registry); + dlti::registerTransformDialectExtension(registry); + func::registerTransformDialectExtension(registry); + gpu::registerTransformDialectExtension(registry); + linalg::registerTransformDialectExtension(registry); + memref::registerTransformDialectExtension(registry); + nvgpu::registerTransformDialectExtension(registry); + scf::registerTransformDialectExtension(registry); + sparse_tensor::registerTransformDialectExtension(registry); + tensor::registerTransformDialectExtension(registry); + transform::registerDebugExtension(registry); + transform::registerIRDLExtension(registry); + transform::registerLoopExtension(registry); + transform::registerPDLExtension(registry); + transform::registerTuneExtension(registry); + vector::registerTransformDialectExtension(registry); + arm_neon::registerTransformDialectExtension(registry); + arm_sve::registerTransformDialectExtension(registry); + + // Translation extensions need to be registered by calling + // `registerAllToLLVMIRTranslations` (see All.h). +} } // namespace mlir diff --git a/mlir/include/mlir/InitAllPasses.h b/mlir/include/mlir/InitAllPasses.h index 455429030003f..002ff61fb87dd 100644 --- a/mlir/include/mlir/InitAllPasses.h +++ b/mlir/include/mlir/InitAllPasses.h @@ -1,4 +1,4 @@ -//===- InitAllPasses.h - MLIR Registration ----------------------*- C++ -*-===// +//===- LinkAllPassesAndDialects.h - MLIR Registration -----------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -6,14 +6,50 @@ // //===----------------------------------------------------------------------===// // -// This file defines a helper to trigger the registration of all passes to the -// system. +// This file defines a helper to trigger the registration of all dialects and +// passes to the system. // //===----------------------------------------------------------------------===// #ifndef MLIR_INITALLPASSES_H_ #define MLIR_INITALLPASSES_H_ +#include "mlir/Conversion/Passes.h" +#include "mlir/Dialect/AMDGPU/Transforms/Passes.h" +#include "mlir/Dialect/Affine/Passes.h" +#include "mlir/Dialect/Arith/Transforms/Passes.h" +#include "mlir/Dialect/ArmSME/Transforms/Passes.h" +#include "mlir/Dialect/ArmSVE/Transforms/Passes.h" +#include "mlir/Dialect/Async/Passes.h" +#include "mlir/Dialect/Bufferization/Pipelines/Passes.h" +#include "mlir/Dialect/Bufferization/Transforms/Passes.h" +#include "mlir/Dialect/EmitC/Transforms/Passes.h" +#include "mlir/Dialect/Func/Transforms/Passes.h" +#include "mlir/Dialect/GPU/Pipelines/Passes.h" +#include "mlir/Dialect/GPU/Transforms/Passes.h" +#include "mlir/Dialect/LLVMIR/Transforms/Passes.h" +#include "mlir/Dialect/Linalg/Passes.h" +#include "mlir/Dialect/MLProgram/Transforms/Passes.h" +#include "mlir/Dialect/Math/Transforms/Passes.h" +#include "mlir/Dialect/MemRef/Transforms/Passes.h" +#include "mlir/Dialect/NVGPU/Transforms/Passes.h" +#include "mlir/Dialect/OpenACC/Transforms/Passes.h" +#include "mlir/Dialect/Quant/Transforms/Passes.h" +#include "mlir/Dialect/SCF/Transforms/Passes.h" +#include "mlir/Dialect/SPIRV/Transforms/Passes.h" +#include "mlir/Dialect/Shape/Transforms/Passes.h" +#include "mlir/Dialect/Shard/Transforms/Passes.h" +#include "mlir/Dialect/SparseTensor/Pipelines/Passes.h" +#include "mlir/Dialect/SparseTensor/Transforms/Passes.h" +#include "mlir/Dialect/Tensor/Transforms/Passes.h" +#include "mlir/Dialect/Tosa/Transforms/Passes.h" +#include "mlir/Dialect/Transform/Transforms/Passes.h" +#include "mlir/Dialect/Vector/Transforms/Passes.h" +#include "mlir/Dialect/XeGPU/Transforms/Passes.h" +#include "mlir/Transforms/Passes.h" + +#include <cstdlib> + namespace mlir { // This function may be called to register the MLIR passes with the @@ -23,7 +59,49 @@ namespace mlir { // registry, since it would already be calling the creation routine of the // individual passes. // The global registry is interesting to interact with the command-line tools. -void registerAllPasses(); +inline void registerAllPasses() { + // General passes + registerTransformsPasses(); + + // Conversion passes + registerConversionPasses(); + + // Dialect passes + acc::registerOpenACCPasses(); + affine::registerAffinePasses(); + amdgpu::registerAMDGPUPasses(); + registerAsyncPasses(); + arith::registerArithPasses(); + bufferization::registerBufferizationPasses(); + func::registerFuncPasses(); + registerGPUPasses(); + registerLinalgPasses(); + registerNVGPUPasses(); + registerSparseTensorPasses(); + LLVM::registerLLVMPasses(); + math::registerMathPasses(); + memref::registerMemRefPasses(); + shard::registerShardPasses(); + ml_program::registerMLProgramPasses(); + quant::registerQuantPasses(); + registerSCFPasses(); + registerShapePasses(); + spirv::registerSPIRVPasses(); + tensor::registerTensorPasses(); + tosa::registerTosaOptPasses(); + transform::registerTransformPasses(); + vector::registerVectorPasses(); + arm_sme::registerArmSMEPasses(); + arm_sve::registerArmSVEPasses(); + emitc::registerEmitCPasses(); + xegpu::registerXeGPUPasses(); + + // Dialect pipelines + bufferization::registerBufferizationPipelines(); + sparse_tensor::registerSparseTensorPipelines(); + tosa::registerTosaToLinalgPipelines(); + gpu::registerGPUToNVVMPipeline(); +} } // namespace mlir diff --git a/mlir/lib/CAPI/RegisterEverything/CMakeLists.txt b/mlir/lib/CAPI/RegisterEverything/CMakeLists.txt index ccda668ece3d4..8b9a39558a03f 100644 --- a/mlir/lib/CAPI/RegisterEverything/CMakeLists.txt +++ b/mlir/lib/CAPI/RegisterEverything/CMakeLists.txt @@ -1,16 +1,19 @@ # Dialect registration. +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) get_property(translation_libs GLOBAL PROPERTY MLIR_TRANSLATION_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) add_mlir_upstream_c_api_library(MLIRCAPIRegisterEverything RegisterEverything.cpp LINK_LIBS PUBLIC + ${dialect_libs} ${translation_libs} + ${conversion_libs} + ${extension_libs} MLIRBuiltinToLLVMIRTranslation MLIRCAPIIR - MLIRCAPITransforms MLIRLLVMToLLVMIRTranslation - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses + MLIRCAPITransforms ) diff --git a/mlir/lib/CMakeLists.txt b/mlir/lib/CMakeLists.txt index 19f589968232a..d25c84a3975db 100644 --- a/mlir/lib/CMakeLists.txt +++ b/mlir/lib/CMakeLists.txt @@ -20,35 +20,3 @@ add_subdirectory(Target) add_subdirectory(Tools) add_subdirectory(Transforms) add_subdirectory(ExecutionEngine) - -get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) -get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) -get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) - -add_mlir_library(MLIRRegisterAllDialects - RegisterAllDialects.cpp - - PARTIAL_SOURCES_INTENDED - - LINK_LIBS PUBLIC - ${dialect_libs} - ) - -add_mlir_library(MLIRRegisterAllPasses - RegisterAllPasses.cpp - - PARTIAL_SOURCES_INTENDED - - LINK_LIBS PUBLIC - ${dialect_libs} # Some passes are part of the dialect libs - ${conversion_libs} - ) - -add_mlir_library(MLIRRegisterAllExtensions - RegisterAllExtensions.cpp - - PARTIAL_SOURCES_INTENDED - - LINK_LIBS PUBLIC - ${extension_libs} - ) diff --git a/mlir/lib/RegisterAllDialects.cpp b/mlir/lib/RegisterAllDialects.cpp deleted file mode 100644 index 7a345ed1349a7..0000000000000 --- a/mlir/lib/RegisterAllDialects.cpp +++ /dev/null @@ -1,207 +0,0 @@ -//===- RegisterAllDialects.cpp - MLIR Dialects Registration -----*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file defines a helper to trigger the registration of all dialects and -// passes to the system. -// -//===----------------------------------------------------------------------===// - -#include "mlir/InitAllDialects.h" - -#include "mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h" -#include "mlir/Dialect/AMX/AMXDialect.h" -#include "mlir/Dialect/Affine/IR/AffineOps.h" -#include "mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/Arith/IR/Arith.h" -#include "mlir/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/Arith/Transforms/BufferDeallocationOpInterfaceImpl.h" -#include "mlir/Dialect/Arith/Transforms/BufferViewFlowOpInterfaceImpl.h" -#include "mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h" -#include "mlir/Dialect/ArmNeon/ArmNeonDialect.h" -#include "mlir/Dialect/ArmSME/IR/ArmSME.h" -#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h" -#include "mlir/Dialect/Async/IR/Async.h" -#include "mlir/Dialect/Bufferization/IR/Bufferization.h" -#include "mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Complex/IR/Complex.h" -#include "mlir/Dialect/ControlFlow/IR/ControlFlow.h" -#include "mlir/Dialect/ControlFlow/Transforms/BufferDeallocationOpInterfaceImpl.h" -#include "mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/DLTI/DLTI.h" -#include "mlir/Dialect/EmitC/IR/EmitC.h" -#include "mlir/Dialect/Func/IR/FuncOps.h" -#include "mlir/Dialect/GPU/IR/GPUDialect.h" -#include "mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/GPU/Transforms/BufferDeallocationOpInterfaceImpl.h" -#include "mlir/Dialect/IRDL/IR/IRDL.h" -#include "mlir/Dialect/Index/IR/IndexDialect.h" -#include "mlir/Dialect/LLVMIR/LLVMDialect.h" -#include "mlir/Dialect/LLVMIR/NVVMDialect.h" -#include "mlir/Dialect/LLVMIR/ROCDLDialect.h" -#include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h" -#include "mlir/Dialect/LLVMIR/XeVMDialect.h" -#include "mlir/Dialect/Linalg/IR/Linalg.h" -#include "mlir/Dialect/Linalg/Transforms/AllInterfaces.h" -#include "mlir/Dialect/Linalg/Transforms/RuntimeOpVerification.h" -#include "mlir/Dialect/MLProgram/IR/MLProgram.h" -#include "mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/MPI/IR/MPI.h" -#include "mlir/Dialect/Math/IR/Math.h" -#include "mlir/Dialect/MemRef/IR/MemRef.h" -#include "mlir/Dialect/MemRef/IR/MemRefMemorySlot.h" -#include "mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h" -#include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h" -#include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h" -#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h" -#include "mlir/Dialect/OpenACC/OpenACC.h" -#include "mlir/Dialect/OpenMP/OpenMPDialect.h" -#include "mlir/Dialect/PDL/IR/PDL.h" -#include "mlir/Dialect/PDLInterp/IR/PDLInterp.h" -#include "mlir/Dialect/Ptr/IR/PtrDialect.h" -#include "mlir/Dialect/Quant/IR/Quant.h" -#include "mlir/Dialect/SCF/IR/SCF.h" -#include "mlir/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h" -#include "mlir/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.h" -#include "mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/SMT/IR/SMTDialect.h" -#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h" -#include "mlir/Dialect/Shape/IR/Shape.h" -#include "mlir/Dialect/Shape/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Shard/IR/ShardDialect.h" -#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h" -#include "mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Tensor/IR/Tensor.h" -#include "mlir/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.h" -#include "mlir/Dialect/Tensor/IR/TensorTilingInterfaceImpl.h" -#include "mlir/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h" -#include "mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Tensor/Transforms/RuntimeOpVerification.h" -#include "mlir/Dialect/Tensor/Transforms/SubsetInsertionOpInterfaceImpl.h" -#include "mlir/Dialect/Tosa/IR/ShardingInterfaceImpl.h" -#include "mlir/Dialect/Tosa/IR/TosaOps.h" -#include "mlir/Dialect/Transform/IR/TransformDialect.h" -#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h" -#include "mlir/Dialect/UB/IR/UBOps.h" -#include "mlir/Dialect/Vector/IR/ValueBoundsOpInterfaceImpl.h" -#include "mlir/Dialect/Vector/IR/VectorOps.h" -#include "mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h" -#include "mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h" -#include "mlir/Dialect/X86Vector/X86VectorDialect.h" -#include "mlir/Dialect/XeGPU/IR/XeGPU.h" -#include "mlir/IR/Dialect.h" -#include "mlir/Interfaces/CastInterfaces.h" -#include "mlir/Target/LLVM/NVVM/Target.h" -#include "mlir/Target/LLVM/ROCDL/Target.h" -#include "mlir/Target/SPIRV/Target.h" - -/// Add all the MLIR dialects to the provided registry. -void mlir::registerAllDialects(DialectRegistry ®istry) { - // clang-format off - registry.insert<acc::OpenACCDialect, - affine::AffineDialect, - amdgpu::AMDGPUDialect, - amx::AMXDialect, - arith::ArithDialect, - arm_neon::ArmNeonDialect, - arm_sme::ArmSMEDialect, - arm_sve::ArmSVEDialect, - async::AsyncDialect, - bufferization::BufferizationDialect, - cf::ControlFlowDialect, - complex::ComplexDialect, - DLTIDialect, - emitc::EmitCDialect, - func::FuncDialect, - gpu::GPUDialect, - index::IndexDialect, - irdl::IRDLDialect, - linalg::LinalgDialect, - LLVM::LLVMDialect, - math::MathDialect, - memref::MemRefDialect, - shard::ShardDialect, - ml_program::MLProgramDialect, - mpi::MPIDialect, - nvgpu::NVGPUDialect, - NVVM::NVVMDialect, - omp::OpenMPDialect, - pdl::PDLDialect, - pdl_interp::PDLInterpDialect, - ptr::PtrDialect, - quant::QuantDialect, - ROCDL::ROCDLDialect, - scf::SCFDialect, - shape::ShapeDialect, - smt::SMTDialect, - sparse_tensor::SparseTensorDialect, - spirv::SPIRVDialect, - tensor::TensorDialect, - tosa::TosaDialect, - transform::TransformDialect, - ub::UBDialect, - vector::VectorDialect, - x86vector::X86VectorDialect, - xegpu::XeGPUDialect, - xevm::XeVMDialect>(); - // clang-format on - - // Register all external models. - affine::registerValueBoundsOpInterfaceExternalModels(registry); - arith::registerBufferDeallocationOpInterfaceExternalModels(registry); - arith::registerBufferizableOpInterfaceExternalModels(registry); - arith::registerBufferViewFlowOpInterfaceExternalModels(registry); - arith::registerShardingInterfaceExternalModels(registry); - arith::registerValueBoundsOpInterfaceExternalModels(registry); - bufferization::func_ext::registerBufferizableOpInterfaceExternalModels( - registry); - builtin::registerCastOpInterfaceExternalModels(registry); - cf::registerBufferizableOpInterfaceExternalModels(registry); - cf::registerBufferDeallocationOpInterfaceExternalModels(registry); - gpu::registerBufferDeallocationOpInterfaceExternalModels(registry); - gpu::registerValueBoundsOpInterfaceExternalModels(registry); - LLVM::registerInlinerInterface(registry); - NVVM::registerInlinerInterface(registry); - linalg::registerAllDialectInterfaceImplementations(registry); - linalg::registerRuntimeVerifiableOpInterfaceExternalModels(registry); - memref::registerAllocationOpInterfaceExternalModels(registry); - memref::registerBufferViewFlowOpInterfaceExternalModels(registry); - memref::registerRuntimeVerifiableOpInterfaceExternalModels(registry); - memref::registerValueBoundsOpInterfaceExternalModels(registry); - memref::registerMemorySlotExternalModels(registry); - ml_program::registerBufferizableOpInterfaceExternalModels(registry); - scf::registerBufferDeallocationOpInterfaceExternalModels(registry); - scf::registerBufferizableOpInterfaceExternalModels(registry); - scf::registerValueBoundsOpInterfaceExternalModels(registry); - shape::registerBufferizableOpInterfaceExternalModels(registry); - sparse_tensor::registerBufferizableOpInterfaceExternalModels(registry); - tensor::registerBufferizableOpInterfaceExternalModels(registry); - tensor::registerFindPayloadReplacementOpInterfaceExternalModels(registry); - tensor::registerInferTypeOpInterfaceExternalModels(registry); - tensor::registerRuntimeVerifiableOpInterfaceExternalModels(registry); - tensor::registerSubsetOpInterfaceExternalModels(registry); - tensor::registerTilingInterfaceExternalModels(registry); - tensor::registerValueBoundsOpInterfaceExternalModels(registry); - tosa::registerShardingInterfaceExternalModels(registry); - vector::registerBufferizableOpInterfaceExternalModels(registry); - vector::registerSubsetOpInterfaceExternalModels(registry); - vector::registerValueBoundsOpInterfaceExternalModels(registry); - NVVM::registerNVVMTargetInterfaceExternalModels(registry); - ROCDL::registerROCDLTargetInterfaceExternalModels(registry); - spirv::registerSPIRVTargetInterfaceExternalModels(registry); -} - -/// Append all the MLIR dialects to the registry contained in the given context. -void mlir::registerAllDialects(MLIRContext &context) { - DialectRegistry registry; - registerAllDialects(registry); - context.appendDialectRegistry(registry); -} diff --git a/mlir/lib/RegisterAllExtensions.cpp b/mlir/lib/RegisterAllExtensions.cpp deleted file mode 100644 index 8f7c67c8cd031..0000000000000 --- a/mlir/lib/RegisterAllExtensions.cpp +++ /dev/null @@ -1,115 +0,0 @@ -//===- RegisterAllExtensions.cpp - MLIR Extension Registration --*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file defines a helper to trigger the registration of all dialect -// extensions to the system. -// -//===----------------------------------------------------------------------===// - -#include "mlir/InitAllExtensions.h" - -#include "mlir/Conversion/ArithToEmitC/ArithToEmitC.h" -#include "mlir/Conversion/ArithToLLVM/ArithToLLVM.h" -#include "mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h" -#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h" -#include "mlir/Conversion/FuncToEmitC/FuncToEmitC.h" -#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h" -#include "mlir/Conversion/GPUCommon/GPUToLLVM.h" -#include "mlir/Conversion/GPUToNVVM/GPUToNVVM.h" -#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h" -#include "mlir/Conversion/MPIToLLVM/MPIToLLVM.h" -#include "mlir/Conversion/MathToLLVM/MathToLLVM.h" -#include "mlir/Conversion/MemRefToEmitC/MemRefToEmitC.h" -#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h" -#include "mlir/Conversion/NVVMToLLVM/NVVMToLLVM.h" -#include "mlir/Conversion/OpenMPToLLVM/ConvertOpenMPToLLVM.h" -#include "mlir/Conversion/SCFToEmitC/SCFToEmitC.h" -#include "mlir/Conversion/UBToLLVM/UBToLLVM.h" -#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h" -#include "mlir/Conversion/XeVMToLLVM/XeVMToLLVM.h" -#include "mlir/Dialect/AMX/Transforms.h" -#include "mlir/Dialect/Affine/TransformOps/AffineTransformOps.h" -#include "mlir/Dialect/ArmNeon/TransformOps/ArmNeonVectorTransformOps.h" -#include "mlir/Dialect/ArmSVE/TransformOps/ArmSVEVectorTransformOps.h" -#include "mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h" -#include "mlir/Dialect/DLTI/TransformOps/DLTITransformOps.h" -#include "mlir/Dialect/Func/Extensions/AllExtensions.h" -#include "mlir/Dialect/Func/TransformOps/FuncTransformOps.h" -#include "mlir/Dialect/GPU/TransformOps/GPUTransformOps.h" -#include "mlir/Dialect/Linalg/TransformOps/DialectExtension.h" -#include "mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h" -#include "mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h" -#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h" -#include "mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h" -#include "mlir/Dialect/Tensor/Extensions/AllExtensions.h" -#include "mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h" -#include "mlir/Dialect/Transform/DebugExtension/DebugExtension.h" -#include "mlir/Dialect/Transform/IRDLExtension/IRDLExtension.h" -#include "mlir/Dialect/Transform/LoopExtension/LoopExtension.h" -#include "mlir/Dialect/Transform/PDLExtension/PDLExtension.h" -#include "mlir/Dialect/Transform/TuneExtension/TuneExtension.h" -#include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.h" -#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h" -#include "mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h" -#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h" -#include "mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h" - -/// This function may be called to register all MLIR dialect extensions with the -/// provided registry. -/// If you're building a compiler, you generally shouldn't use this: you would -/// individually register the specific extensions that are useful for the -/// pipelines and transformations you are using. -void mlir::registerAllExtensions(DialectRegistry ®istry) { - // Register all conversions to LLVM extensions. - registerConvertArithToEmitCInterface(registry); - arith::registerConvertArithToLLVMInterface(registry); - registerConvertComplexToLLVMInterface(registry); - cf::registerConvertControlFlowToLLVMInterface(registry); - func::registerAllExtensions(registry); - tensor::registerAllExtensions(registry); - registerConvertFuncToEmitCInterface(registry); - registerConvertFuncToLLVMInterface(registry); - index::registerConvertIndexToLLVMInterface(registry); - registerConvertMathToLLVMInterface(registry); - mpi::registerConvertMPIToLLVMInterface(registry); - registerConvertMemRefToEmitCInterface(registry); - registerConvertMemRefToLLVMInterface(registry); - registerConvertNVVMToLLVMInterface(registry); - registerConvertOpenMPToLLVMInterface(registry); - registerConvertSCFToEmitCInterface(registry); - ub::registerConvertUBToLLVMInterface(registry); - registerConvertAMXToLLVMInterface(registry); - gpu::registerConvertGpuToLLVMInterface(registry); - NVVM::registerConvertGpuToNVVMInterface(registry); - vector::registerConvertVectorToLLVMInterface(registry); - registerConvertXeVMToLLVMInterface(registry); - - // Register all transform dialect extensions. - affine::registerTransformDialectExtension(registry); - bufferization::registerTransformDialectExtension(registry); - dlti::registerTransformDialectExtension(registry); - func::registerTransformDialectExtension(registry); - gpu::registerTransformDialectExtension(registry); - linalg::registerTransformDialectExtension(registry); - memref::registerTransformDialectExtension(registry); - nvgpu::registerTransformDialectExtension(registry); - scf::registerTransformDialectExtension(registry); - sparse_tensor::registerTransformDialectExtension(registry); - tensor::registerTransformDialectExtension(registry); - transform::registerDebugExtension(registry); - transform::registerIRDLExtension(registry); - transform::registerLoopExtension(registry); - transform::registerPDLExtension(registry); - transform::registerTuneExtension(registry); - vector::registerTransformDialectExtension(registry); - arm_neon::registerTransformDialectExtension(registry); - arm_sve::registerTransformDialectExtension(registry); - - // Translation extensions need to be registered by calling - // `registerAllToLLVMIRTranslations` (see All.h). -} diff --git a/mlir/lib/RegisterAllPasses.cpp b/mlir/lib/RegisterAllPasses.cpp deleted file mode 100644 index 1ed3a3798b0d2..0000000000000 --- a/mlir/lib/RegisterAllPasses.cpp +++ /dev/null @@ -1,99 +0,0 @@ -//===- RegisterAllPasses.cpp - MLIR Registration ----------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file defines a helper to trigger the registration of all passes to the -// system. -// -//===----------------------------------------------------------------------===// - -#include "mlir/InitAllPasses.h" - -#include "mlir/Conversion/Passes.h" -#include "mlir/Dialect/AMDGPU/Transforms/Passes.h" -#include "mlir/Dialect/Affine/Passes.h" -#include "mlir/Dialect/Arith/Transforms/Passes.h" -#include "mlir/Dialect/ArmSME/Transforms/Passes.h" -#include "mlir/Dialect/ArmSVE/Transforms/Passes.h" -#include "mlir/Dialect/Async/Passes.h" -#include "mlir/Dialect/Bufferization/Pipelines/Passes.h" -#include "mlir/Dialect/Bufferization/Transforms/Passes.h" -#include "mlir/Dialect/EmitC/Transforms/Passes.h" -#include "mlir/Dialect/Func/Transforms/Passes.h" -#include "mlir/Dialect/GPU/Pipelines/Passes.h" -#include "mlir/Dialect/GPU/Transforms/Passes.h" -#include "mlir/Dialect/LLVMIR/Transforms/Passes.h" -#include "mlir/Dialect/Linalg/Passes.h" -#include "mlir/Dialect/MLProgram/Transforms/Passes.h" -#include "mlir/Dialect/Math/Transforms/Passes.h" -#include "mlir/Dialect/MemRef/Transforms/Passes.h" -#include "mlir/Dialect/NVGPU/Transforms/Passes.h" -#include "mlir/Dialect/OpenACC/Transforms/Passes.h" -#include "mlir/Dialect/Quant/Transforms/Passes.h" -#include "mlir/Dialect/SCF/Transforms/Passes.h" -#include "mlir/Dialect/SPIRV/Transforms/Passes.h" -#include "mlir/Dialect/Shape/Transforms/Passes.h" -#include "mlir/Dialect/Shard/Transforms/Passes.h" -#include "mlir/Dialect/SparseTensor/Pipelines/Passes.h" -#include "mlir/Dialect/SparseTensor/Transforms/Passes.h" -#include "mlir/Dialect/Tensor/Transforms/Passes.h" -#include "mlir/Dialect/Tosa/Transforms/Passes.h" -#include "mlir/Dialect/Transform/Transforms/Passes.h" -#include "mlir/Dialect/Vector/Transforms/Passes.h" -#include "mlir/Dialect/XeGPU/Transforms/Passes.h" -#include "mlir/Transforms/Passes.h" - -// This function may be called to register the MLIR passes with the -// global registry. -// If you're building a compiler, you likely don't need this: you would build a -// pipeline programmatically without the need to register with the global -// registry, since it would already be calling the creation routine of the -// individual passes. -// The global registry is interesting to interact with the command-line tools. -void mlir::registerAllPasses() { - // General passes - registerTransformsPasses(); - - // Conversion passes - registerConversionPasses(); - - // Dialect passes - acc::registerOpenACCPasses(); - affine::registerAffinePasses(); - amdgpu::registerAMDGPUPasses(); - registerAsyncPasses(); - arith::registerArithPasses(); - bufferization::registerBufferizationPasses(); - func::registerFuncPasses(); - registerGPUPasses(); - registerLinalgPasses(); - registerNVGPUPasses(); - registerSparseTensorPasses(); - LLVM::registerLLVMPasses(); - math::registerMathPasses(); - memref::registerMemRefPasses(); - shard::registerShardPasses(); - ml_program::registerMLProgramPasses(); - quant::registerQuantPasses(); - registerSCFPasses(); - registerShapePasses(); - spirv::registerSPIRVPasses(); - tensor::registerTensorPasses(); - tosa::registerTosaOptPasses(); - transform::registerTransformPasses(); - vector::registerVectorPasses(); - arm_sme::registerArmSMEPasses(); - arm_sve::registerArmSVEPasses(); - emitc::registerEmitCPasses(); - xegpu::registerXeGPUPasses(); - - // Dialect pipelines - bufferization::registerBufferizationPipelines(); - sparse_tensor::registerSparseTensorPipelines(); - tosa::registerTosaToLinalgPipelines(); - gpu::registerGPUToNVVMPipeline(); -} diff --git a/mlir/tools/mlir-lsp-server/CMakeLists.txt b/mlir/tools/mlir-lsp-server/CMakeLists.txt index 0518620699ae0..6932e0f397795 100644 --- a/mlir/tools/mlir-lsp-server/CMakeLists.txt +++ b/mlir/tools/mlir-lsp-server/CMakeLists.txt @@ -2,6 +2,8 @@ set(LLVM_OPTIONAL_SOURCES null.cpp ) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) set(LLVM_LINK_COMPONENTS Core Support @@ -33,11 +35,22 @@ if(MLIR_INCLUDE_TESTS) endif() set(LIBS - MLIRLspServerLib + ${conversion_libs} + ${dialect_libs} + ${extension_libs} - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses + MLIRAffineAnalysis + MLIRAnalysis + MLIRDialect + MLIRFuncAllExtensions + MLIRLspServerLib + MLIRParser + MLIRPass + MLIRTensorAllExtensions + MLIRTransforms + MLIRTransformUtils + MLIRSupport + MLIRIR ) add_mlir_tool(mlir-lsp-server diff --git a/mlir/tools/mlir-lsp-server/mlir-lsp-server.cpp b/mlir/tools/mlir-lsp-server/mlir-lsp-server.cpp index 10d602fdfe728..6a759d9e0d60f 100644 --- a/mlir/tools/mlir-lsp-server/mlir-lsp-server.cpp +++ b/mlir/tools/mlir-lsp-server/mlir-lsp-server.cpp @@ -6,7 +6,6 @@ // //===----------------------------------------------------------------------===// -#include "mlir/IR/DialectRegistry.h" #include "mlir/IR/MLIRContext.h" #include "mlir/InitAllDialects.h" #include "mlir/InitAllExtensions.h" diff --git a/mlir/tools/mlir-opt/CMakeLists.txt b/mlir/tools/mlir-opt/CMakeLists.txt index 7cc6e78ca08c2..6958fe3001b89 100644 --- a/mlir/tools/mlir-opt/CMakeLists.txt +++ b/mlir/tools/mlir-opt/CMakeLists.txt @@ -2,6 +2,9 @@ set(LLVM_OPTIONAL_SOURCES null.cpp ) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS) set(LLVM_LINK_COMPONENTS Core Support @@ -62,11 +65,21 @@ if(MLIR_INCLUDE_TESTS) endif() set(LIBS + ${dialect_libs} + ${conversion_libs} + ${extension_libs} + MLIRAffineAnalysis + MLIRAnalysis + MLIRCastInterfaces + MLIRDialect MLIROptLib - MLIRRegisterAllDialects - MLIRRegisterAllExtensions - MLIRRegisterAllPasses + MLIRParser + MLIRPass + MLIRTransforms + MLIRTransformUtils + MLIRSupport + MLIRIR # TODO: Remove when registerAllGPUToLLVMIRTranslations is no longer # registered directly in mlir-opt.cpp. diff --git a/mlir/tools/mlir-query/CMakeLists.txt b/mlir/tools/mlir-query/CMakeLists.txt index 1668bbac23d16..18263970a7bbc 100644 --- a/mlir/tools/mlir-query/CMakeLists.txt +++ b/mlir/tools/mlir-query/CMakeLists.txt @@ -1,3 +1,5 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) + if(MLIR_INCLUDE_TESTS) set(test_libs MLIRTestDialect @@ -10,8 +12,8 @@ add_mlir_tool(mlir-query llvm_update_compile_flags(mlir-query) mlir_target_link_libraries(mlir-query PRIVATE + ${dialect_libs} MLIRQueryLib - MLIRRegisterAllDialects ) target_link_libraries(mlir-query PRIVATE ${test_libs}) diff --git a/mlir/tools/mlir-reduce/CMakeLists.txt b/mlir/tools/mlir-reduce/CMakeLists.txt index 349d75b84df0e..d71ac861a29dc 100644 --- a/mlir/tools/mlir-reduce/CMakeLists.txt +++ b/mlir/tools/mlir-reduce/CMakeLists.txt @@ -1,3 +1,6 @@ +get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) + if(MLIR_INCLUDE_TESTS) set(test_libs MLIRTestDialect @@ -5,9 +8,12 @@ if(MLIR_INCLUDE_TESTS) endif() set(LIBS + ${conversion_libs} + ${dialect_libs} + MLIRDialect + MLIRIR + MLIRPass MLIRReduceLib - MLIRRegisterAllDialects - MLIRRegisterAllPasses ) add_mlir_tool(mlir-reduce diff --git a/mlir/tools/mlir-rewrite/CMakeLists.txt b/mlir/tools/mlir-rewrite/CMakeLists.txt index 4120b175da306..216491eb432af 100644 --- a/mlir/tools/mlir-rewrite/CMakeLists.txt +++ b/mlir/tools/mlir-rewrite/CMakeLists.txt @@ -1,19 +1,21 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LLVM_LINK_COMPONENTS Support ) set(LIBS + ${dialect_libs} + MLIRAffineAnalysis MLIRAnalysis MLIRCastInterfaces MLIRDialect - MLIRIR MLIRParser MLIRPass - MLIRRegisterAllDialects - MLIRSupport - MLIRTransformUtils MLIRTransforms + MLIRTransformUtils + MLIRSupport + MLIRIR ) include_directories(../../../clang/include) diff --git a/mlir/tools/mlir-rewrite/mlir-rewrite.cpp b/mlir/tools/mlir-rewrite/mlir-rewrite.cpp index fd8ae7e0ca89b..87df9e19d1842 100644 --- a/mlir/tools/mlir-rewrite/mlir-rewrite.cpp +++ b/mlir/tools/mlir-rewrite/mlir-rewrite.cpp @@ -24,7 +24,6 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/LineIterator.h" -#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Regex.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Support/ToolOutputFile.h" diff --git a/mlir/unittests/ExecutionEngine/CMakeLists.txt b/mlir/unittests/ExecutionEngine/CMakeLists.txt index b83163e39c014..4ef69a8ea042d 100644 --- a/mlir/unittests/ExecutionEngine/CMakeLists.txt +++ b/mlir/unittests/ExecutionEngine/CMakeLists.txt @@ -10,13 +10,14 @@ add_mlir_unittest(MLIRExecutionEngineTests StridedMemRef.cpp Invoke.cpp ) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) mlir_target_link_libraries(MLIRExecutionEngineTests PRIVATE MLIRArithToLLVM MLIRMemRefToLLVM MLIRReconcileUnrealizedCasts - MLIRRegisterAllDialects + ${dialect_libs} ) target_link_libraries(MLIRExecutionEngineTests PRIVATE diff --git a/mlir/unittests/Target/LLVM/CMakeLists.txt b/mlir/unittests/Target/LLVM/CMakeLists.txt index 0a77deb9ee9ea..0daac1114677a 100644 --- a/mlir/unittests/Target/LLVM/CMakeLists.txt +++ b/mlir/unittests/Target/LLVM/CMakeLists.txt @@ -1,11 +1,13 @@ set(LLVM_LINK_COMPONENTS nativecodegen BitReader) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) + add_mlir_unittest(MLIRTargetLLVMTests SerializeNVVMTarget.cpp SerializeROCDLTarget.cpp SerializeToLLVMBitcode.cpp DEPENDS - MLIRRegisterAllDialects + ${dialect_libs} ) mlir_target_link_libraries(MLIRTargetLLVMTests _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits