diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt --- a/mlir/CMakeLists.txt +++ b/mlir/CMakeLists.txt @@ -8,27 +8,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") -function(add_mlir_dialect dialect dialect_doc_filename) - set(LLVM_TARGET_DEFINITIONS ${dialect}.td) - mlir_tablegen(${dialect}.h.inc -gen-op-decls) - mlir_tablegen(${dialect}.cpp.inc -gen-op-defs) - add_public_tablegen_target(MLIR${dialect}IncGen) - add_dependencies(mlir-headers MLIR${dialect}IncGen) - - # Generate Dialect Documentation - set(LLVM_TARGET_DEFINITIONS ${dialect_doc_filename}.td) - tablegen(MLIR ${dialect_doc_filename}.md -gen-op-doc "-I${MLIR_MAIN_SRC_DIR}" "-I${MLIR_INCLUDE_DIR}") - set(GEN_DOC_FILE ${MLIR_BINARY_DIR}/docs/Dialects/${dialect_doc_filename}.md) - add_custom_command( - OUTPUT ${GEN_DOC_FILE} - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md - ${GEN_DOC_FILE} - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md) - add_custom_target(${dialect_doc_filename}DocGen DEPENDS ${GEN_DOC_FILE}) - add_dependencies(mlir-doc ${dialect_doc_filename}DocGen) -endfunction() - include(AddMLIR) # Installing the headers and docs needs to depend on generating any public diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake --- a/mlir/cmake/modules/AddMLIR.cmake +++ b/mlir/cmake/modules/AddMLIR.cmake @@ -26,3 +26,31 @@ endif() set_target_properties(${target} PROPERTIES LINK_FLAGS ${link_flags}) endfunction(whole_archive_link) + +# Declare a dialect in the include directory +function(add_mlir_dialect dialect dialect_doc_filename) + set(LLVM_TARGET_DEFINITIONS ${dialect}.td) + mlir_tablegen(${dialect}.h.inc -gen-op-decls) + mlir_tablegen(${dialect}.cpp.inc -gen-op-defs) + add_public_tablegen_target(MLIR${dialect}IncGen) + add_dependencies(mlir-headers MLIR${dialect}IncGen) + + # Generate Dialect Documentation + set(LLVM_TARGET_DEFINITIONS ${dialect_doc_filename}.td) + tablegen(MLIR ${dialect_doc_filename}.md -gen-op-doc "-I${MLIR_MAIN_SRC_DIR}" "-I${MLIR_INCLUDE_DIR}") + set(GEN_DOC_FILE ${MLIR_BINARY_DIR}/docs/Dialects/${dialect_doc_filename}.md) + add_custom_command( + OUTPUT ${GEN_DOC_FILE} + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md + ${GEN_DOC_FILE} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${dialect_doc_filename}.md) + add_custom_target(${dialect_doc_filename}DocGen DEPENDS ${GEN_DOC_FILE}) + add_dependencies(mlir-doc ${dialect_doc_filename}DocGen) +endfunction() + +# Declare the library associated with a dialect. +function(add_mlir_dialect_library name) + set_property(GLOBAL APPEND PROPERTY MLIR_DIALECT_LIBS ${name}) + add_llvm_library(${ARGV}) +endfunction(add_mlir_dialect_library) diff --git a/mlir/examples/toy/Ch5/CMakeLists.txt b/mlir/examples/toy/Ch5/CMakeLists.txt --- a/mlir/examples/toy/Ch5/CMakeLists.txt +++ b/mlir/examples/toy/Ch5/CMakeLists.txt @@ -25,12 +25,12 @@ include_directories(include/) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) target_link_libraries(toyc-ch5 PRIVATE - MLIRAllDialects + ${dialect_libs} MLIRAnalysis MLIRIR MLIRParser MLIRPass MLIRTransforms) - diff --git a/mlir/examples/toy/Ch6/CMakeLists.txt b/mlir/examples/toy/Ch6/CMakeLists.txt --- a/mlir/examples/toy/Ch6/CMakeLists.txt +++ b/mlir/examples/toy/Ch6/CMakeLists.txt @@ -27,9 +27,10 @@ include_directories(include/) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) target_link_libraries(toyc-ch6 PRIVATE - MLIRAllDialects + ${dialect_libs} MLIRAffineToStandard MLIRAnalysis MLIRExecutionEngine @@ -42,4 +43,3 @@ MLIRTargetLLVMIR MLIRTransforms ) - diff --git a/mlir/examples/toy/Ch7/CMakeLists.txt b/mlir/examples/toy/Ch7/CMakeLists.txt --- a/mlir/examples/toy/Ch7/CMakeLists.txt +++ b/mlir/examples/toy/Ch7/CMakeLists.txt @@ -27,9 +27,10 @@ include_directories(include/) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) target_link_libraries(toyc-ch7 PRIVATE - MLIRAllDialects + ${dialect_libs} MLIRAffineToStandard MLIRAnalysis MLIRExecutionEngine diff --git a/mlir/lib/Dialect/AffineOps/CMakeLists.txt b/mlir/lib/Dialect/AffineOps/CMakeLists.txt --- a/mlir/lib/Dialect/AffineOps/CMakeLists.txt +++ b/mlir/lib/Dialect/AffineOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRAffineOps +add_mlir_dialect_library(MLIRAffineOps AffineOps.cpp AffineValueMap.cpp EDSC/Builders.cpp diff --git a/mlir/lib/Dialect/CMakeLists.txt b/mlir/lib/Dialect/CMakeLists.txt --- a/mlir/lib/Dialect/CMakeLists.txt +++ b/mlir/lib/Dialect/CMakeLists.txt @@ -24,29 +24,3 @@ ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect ) target_link_libraries(MLIRDialect MLIRIR) - -# Create a dummy MLIRAllDialects library for the purpose -# of having an easy tracking of all dialects when linking -# them in tools. -# Empty libraries aren't possible with CMake, create a dummy file. -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/all_dialects.c "typedef int make_iso_compilers_happy;\n") -add_llvm_library(MLIRAllDialects - ${CMAKE_CURRENT_BINARY_DIR}/all_dialects.c -) -target_link_libraries(MLIRAllDialects - MLIRAffineOps - MLIRFxpMathOps - MLIRGPU - MLIRLLVMIR - MLIRNVVMIR - MLIRROCDLIR - MLIRLinalgOps - MLIRLoopOps - MLIROpenMP - MLIRQuantOps - MLIRSDBM - MLIRShape - MLIRSPIRV - MLIRStandardOps - MLIRVectorOps -) diff --git a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt --- a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt +++ b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRFxpMathOps +add_mlir_dialect_library(MLIRFxpMathOps IR/FxpMathOps.cpp Transforms/LowerUniformRealMath.cpp diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt --- a/mlir/lib/Dialect/GPU/CMakeLists.txt +++ b/mlir/lib/Dialect/GPU/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRGPU +add_mlir_dialect_library(MLIRGPU IR/GPUDialect.cpp Transforms/AllReduceLowering.cpp Transforms/KernelOutlining.cpp diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt --- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt +++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLLVMIR +add_mlir_dialect_library(MLIRLLVMIR IR/LLVMDialect.cpp ADDITIONAL_HEADER_DIRS @@ -7,7 +7,7 @@ add_dependencies(MLIRLLVMIR MLIRLLVMOpsIncGen MLIRLLVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport) target_link_libraries(MLIRLLVMIR LLVMAsmParser LLVMCore LLVMSupport MLIRIR) -add_llvm_library(MLIRNVVMIR +add_mlir_dialect_library(MLIRNVVMIR IR/NVVMDialect.cpp ADDITIONAL_HEADER_DIRS @@ -16,7 +16,7 @@ add_dependencies(MLIRNVVMIR MLIRNVVMOpsIncGen MLIRNVVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport) target_link_libraries(MLIRNVVMIR LLVMAsmParser MLIRIR MLIRLLVMIR LLVMSupport LLVMCore) -add_llvm_library(MLIRROCDLIR +add_mlir_dialect_library(MLIRROCDLIR IR/ROCDLDialect.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt @@ -5,7 +5,7 @@ ) -add_llvm_library(MLIRLinalgAnalysis +add_mlir_dialect_library(MLIRLinalgAnalysis DependenceAnalysis.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt @@ -8,7 +8,7 @@ MLIRStandardOps ) -add_llvm_library(MLIRLinalgEDSC +add_mlir_dialect_library(MLIRLinalgEDSC Builders.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt @@ -4,7 +4,7 @@ MLIRStandardOps ) -add_llvm_library(MLIRLinalgOps +add_mlir_dialect_library(MLIRLinalgOps LinalgOps.cpp LinalgTypes.cpp diff --git a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt @@ -16,7 +16,7 @@ MLIRVectorOps ) -add_llvm_library(MLIRLinalgTransforms +add_mlir_dialect_library(MLIRLinalgTransforms Fusion.cpp LinalgTransforms.cpp LinalgToLoops.cpp diff --git a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt --- a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt +++ b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt @@ -9,7 +9,7 @@ MLIRTransformUtils ) -add_llvm_library(MLIRLinalgUtils +add_mlir_dialect_library(MLIRLinalgUtils Utils.cpp diff --git a/mlir/lib/Dialect/LoopOps/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/CMakeLists.txt --- a/mlir/lib/Dialect/LoopOps/CMakeLists.txt +++ b/mlir/lib/Dialect/LoopOps/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRLoopOps +add_mlir_dialect_library(MLIRLoopOps ${globbed} EDSC/Builders.cpp diff --git a/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt --- a/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt +++ b/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRLoopOpsTransforms +add_mlir_dialect_library(MLIRLoopOpsTransforms ParallelLoopFusion.cpp ParallelLoopSpecialization.cpp ParallelLoopTiling.cpp diff --git a/mlir/lib/Dialect/OpenMP/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/CMakeLists.txt --- a/mlir/lib/Dialect/OpenMP/CMakeLists.txt +++ b/mlir/lib/Dialect/OpenMP/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIROpenMP +add_mlir_dialect_library(MLIROpenMP IR/OpenMPDialect.cpp ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/QuantOps/CMakeLists.txt b/mlir/lib/Dialect/QuantOps/CMakeLists.txt --- a/mlir/lib/Dialect/QuantOps/CMakeLists.txt +++ b/mlir/lib/Dialect/QuantOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRQuantOps +add_mlir_dialect_library(MLIRQuantOps IR/QuantOps.cpp IR/QuantTypes.cpp IR/TypeDetail.h diff --git a/mlir/lib/Dialect/SDBM/CMakeLists.txt b/mlir/lib/Dialect/SDBM/CMakeLists.txt --- a/mlir/lib/Dialect/SDBM/CMakeLists.txt +++ b/mlir/lib/Dialect/SDBM/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSDBM +add_mlir_dialect_library(MLIRSDBM SDBM.cpp SDBMExpr.cpp diff --git a/mlir/lib/Dialect/SPIRV/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/CMakeLists.txt @@ -2,7 +2,7 @@ mlir_tablegen(SPIRVCanonicalization.inc -gen-rewriters) add_public_tablegen_target(MLIRSPIRVCanonicalizationIncGen) -add_llvm_library(MLIRSPIRV +add_mlir_dialect_library(MLIRSPIRV LayoutUtils.cpp SPIRVCanonicalization.cpp SPIRVDialect.cpp diff --git a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSPIRVSerialization +add_mlir_dialect_library(MLIRSPIRVSerialization Deserializer.cpp Serializer.cpp SPIRVBinaryUtils.cpp diff --git a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt --- a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt +++ b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRSPIRVTransforms +add_mlir_dialect_library(MLIRSPIRVTransforms DecorateSPIRVCompositeTypeLayoutPass.cpp LowerABIAttributesPass.cpp diff --git a/mlir/lib/Dialect/Shape/CMakeLists.txt b/mlir/lib/Dialect/Shape/CMakeLists.txt --- a/mlir/lib/Dialect/Shape/CMakeLists.txt +++ b/mlir/lib/Dialect/Shape/CMakeLists.txt @@ -1,5 +1,5 @@ file(GLOB globbed *.c *.cpp) -add_llvm_library(MLIRShape +add_mlir_dialect_library(MLIRShape ${globbed} ADDITIONAL_HEADER_DIRS diff --git a/mlir/lib/Dialect/StandardOps/CMakeLists.txt b/mlir/lib/Dialect/StandardOps/CMakeLists.txt --- a/mlir/lib/Dialect/StandardOps/CMakeLists.txt +++ b/mlir/lib/Dialect/StandardOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRStandardOps +add_mlir_dialect_library(MLIRStandardOps IR/Ops.cpp EDSC/Builders.cpp EDSC/Intrinsics.cpp diff --git a/mlir/lib/Dialect/VectorOps/CMakeLists.txt b/mlir/lib/Dialect/VectorOps/CMakeLists.txt --- a/mlir/lib/Dialect/VectorOps/CMakeLists.txt +++ b/mlir/lib/Dialect/VectorOps/CMakeLists.txt @@ -1,4 +1,4 @@ -add_llvm_library(MLIRVectorOps +add_mlir_dialect_library(MLIRVectorOps VectorOps.cpp VectorTransforms.cpp VectorUtils.cpp diff --git a/mlir/tools/mlir-cpu-runner/CMakeLists.txt b/mlir/tools/mlir-cpu-runner/CMakeLists.txt --- a/mlir/tools/mlir-cpu-runner/CMakeLists.txt +++ b/mlir/tools/mlir-cpu-runner/CMakeLists.txt @@ -2,8 +2,9 @@ mlir-cpu-runner.cpp ) llvm_update_compile_flags(mlir-cpu-runner) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) target_link_libraries(mlir-cpu-runner PRIVATE - MLIRAllDialects + ${dialect_libs} MLIRAnalysis MLIREDSC MLIRExecutionEngine diff --git a/mlir/tools/mlir-cuda-runner/CMakeLists.txt b/mlir/tools/mlir-cuda-runner/CMakeLists.txt --- a/mlir/tools/mlir-cuda-runner/CMakeLists.txt +++ b/mlir/tools/mlir-cuda-runner/CMakeLists.txt @@ -35,29 +35,20 @@ ${CUDA_RUNTIME_LIBRARY} ) + get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS + ${dialect_libs} LLVMCore LLVMSupport MLIRJitRunner - MLIRAffineOps MLIRAnalysis MLIREDSC MLIRExecutionEngine - MLIRFxpMathOps - MLIRGPU MLIRGPUtoCUDATransforms MLIRGPUtoNVVMTransforms MLIRIR - MLIRLLVMIR - MLIRLinalgOps MLIRLoopToStandard - MLIROpenMP MLIRParser - MLIRQuantOps - MLIRROCDLIR - MLIRSPIRV - MLIRSPIRV - MLIRStandardOps MLIRStandardToLLVM MLIRSupport MLIRTargetLLVMIR diff --git a/mlir/tools/mlir-opt/CMakeLists.txt b/mlir/tools/mlir-opt/CMakeLists.txt --- a/mlir/tools/mlir-opt/CMakeLists.txt +++ b/mlir/tools/mlir-opt/CMakeLists.txt @@ -18,11 +18,12 @@ ${LIB_LIBS} ) +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS + ${dialect_libs} MLIRLoopOpsTransforms MLIRLoopAnalysis MLIRAnalysis - MLIRAffineOps MLIRAffineToStandard MLIRDialect MLIRLoopsToGPU @@ -30,36 +31,22 @@ MLIRLoopToStandard MLIREDSC - MLIRFxpMathOps - MLIRGPU MLIRGPUtoCUDATransforms MLIRGPUtoNVVMTransforms MLIRGPUtoROCDLTransforms MLIRGPUtoSPIRVTransforms MLIRGPUtoVulkanTransforms - MLIRLinalgOps - MLIRLinalgAnalysis - MLIRLinalgEDSC - MLIRLinalgTransforms - MLIRLinalgUtils - MLIRLLVMIR - MLIRLoopOps - MLIRNVVMIR - MLIROpenMP MLIROptLib MLIRParser MLIRPass MLIRQuantizerFxpMathConfig MLIRQuantizerSupport MLIRQuantizerTransforms - MLIRQuantOps - MLIRROCDLIR MLIRSPIRV MLIRLinalgToSPIRVTransforms MLIRStandardToSPIRVTransforms MLIRSPIRVTestPasses MLIRSPIRVTransforms - MLIRStandardOps MLIRStandardToLLVM MLIRTransforms MLIRTransformUtils @@ -68,7 +55,6 @@ MLIRTestPass MLIRTestTransforms MLIRSupport - MLIRVectorOps MLIRVectorToLLVM MLIRVectorToLoops MLIRIR diff --git a/mlir/tools/mlir-translate/CMakeLists.txt b/mlir/tools/mlir-translate/CMakeLists.txt --- a/mlir/tools/mlir-translate/CMakeLists.txt +++ b/mlir/tools/mlir-translate/CMakeLists.txt @@ -1,5 +1,6 @@ +get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS - MLIRAllDialects + ${dialect_libs} MLIRParser MLIRPass MLIRSPIRV diff --git a/mlir/tools/mlir-vulkan-runner/CMakeLists.txt b/mlir/tools/mlir-vulkan-runner/CMakeLists.txt --- a/mlir/tools/mlir-vulkan-runner/CMakeLists.txt +++ b/mlir/tools/mlir-vulkan-runner/CMakeLists.txt @@ -51,31 +51,24 @@ ${Vulkan_LIBRARY} ) + get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) set(LIBS + ${dialect_libs} LLVMCore LLVMSupport MLIRJitRunner - MLIRAffineOps MLIRAnalysis MLIREDSC MLIRExecutionEngine - MLIRFxpMathOps - MLIRGPU MLIRGPUtoCUDATransforms MLIRGPUtoNVVMTransforms MLIRGPUtoSPIRVTransforms MLIRGPUtoVulkanTransforms MLIRIR MLIRLLVMIR - MLIRLinalgOps MLIRLoopToStandard - MLIROpenMP MLIRParser - MLIRQuantOps - MLIRROCDLIR - MLIRSPIRV MLIRSPIRVTransforms - MLIRStandardOps MLIRStandardToLLVM MLIRSupport MLIRTargetLLVMIR