From 5e6795070ca4e9371a314b10513a768ffd535fa3 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Mon, 2 Dec 2019 09:17:51 -0800 Subject: [PATCH] Generate dialect documentations in the doc folder for every dialect Also add a mlir-doc build target to general all the docs PiperOrigin-RevId: 283353529 --- mlir/CMakeLists.txt | 21 +++++++++++++++++++ .../mlir/Dialect/AffineOps/CMakeLists.txt | 5 +---- .../mlir/Dialect/FxpMathOps/CMakeLists.txt | 5 +---- mlir/include/mlir/Dialect/GPU/CMakeLists.txt | 5 +---- .../mlir/Dialect/LLVMIR/CMakeLists.txt | 12 ++++------- .../mlir/Dialect/Linalg/IR/CMakeLists.txt | 5 +---- .../mlir/Dialect/LoopOps/CMakeLists.txt | 5 +---- .../mlir/Dialect/QuantOps/CMakeLists.txt | 5 +---- .../include/mlir/Dialect/SPIRV/CMakeLists.txt | 5 +---- .../mlir/Dialect/VectorOps/CMakeLists.txt | 5 +---- 10 files changed, 33 insertions(+), 40 deletions(-) diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt index c8ffa759376f..d6767fa75a80 100644 --- a/mlir/CMakeLists.txt +++ b/mlir/CMakeLists.txt @@ -12,6 +12,27 @@ function(mlir_tablegen ofn) PARENT_SCOPE) endfunction() +function(add_mlir_dialect dialect) + 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) + + # Generate Dialect Documentation + tablegen(MLIR ${dialect}.md -gen-op-doc "-I${MLIR_MAIN_SRC_DIR}" "-I${MLIR_INCLUDE_DIR}") + set(GEN_DOC_FILE ${MLIR_BINARY_DIR}/docs/Dialects/${dialect}.md) + add_custom_command( + OUTPUT ${GEN_DOC_FILE} + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/${dialect}.md + ${GEN_DOC_FILE} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${dialect}.md) + add_custom_target(${dialect}DocGen DEPENDS ${GEN_DOC_FILE}) + add_dependencies(mlir-doc ${dialect}DocGen) +endfunction() + +add_custom_target(mlir-doc) + # TODO: This is to handle the current static registration, but should be # factored out a bit. function(whole_archive_link target) diff --git a/mlir/include/mlir/Dialect/AffineOps/CMakeLists.txt b/mlir/include/mlir/Dialect/AffineOps/CMakeLists.txt index 6c5a58c957bf..8f812b395938 100644 --- a/mlir/include/mlir/Dialect/AffineOps/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/AffineOps/CMakeLists.txt @@ -1,4 +1 @@ -set(LLVM_TARGET_DEFINITIONS AffineOps.td) -mlir_tablegen(AffineOps.h.inc -gen-op-decls) -mlir_tablegen(AffineOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRAffineOpsIncGen) +add_mlir_dialect(AffineOps) diff --git a/mlir/include/mlir/Dialect/FxpMathOps/CMakeLists.txt b/mlir/include/mlir/Dialect/FxpMathOps/CMakeLists.txt index eaf72d214f83..a8fb5e08ee56 100644 --- a/mlir/include/mlir/Dialect/FxpMathOps/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/FxpMathOps/CMakeLists.txt @@ -1,4 +1 @@ -set(LLVM_TARGET_DEFINITIONS FxpMathOps.td) -mlir_tablegen(FxpMathOps.h.inc -gen-op-decls) -mlir_tablegen(FxpMathOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRFxpMathOpsIncGen) +add_mlir_dialect(FxpMathOps) diff --git a/mlir/include/mlir/Dialect/GPU/CMakeLists.txt b/mlir/include/mlir/Dialect/GPU/CMakeLists.txt index 5ba59a1026c7..bdb5dec79b9f 100644 --- a/mlir/include/mlir/Dialect/GPU/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/GPU/CMakeLists.txt @@ -1,4 +1 @@ -set(LLVM_TARGET_DEFINITIONS GPUOps.td) -mlir_tablegen(GPUOps.h.inc -gen-op-decls) -mlir_tablegen(GPUOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRGPUOpsIncGen) +add_mlir_dialect(GPUOps) diff --git a/mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt b/mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt index 3e5a0346ed60..4ecc71aef08d 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/LLVMIR/CMakeLists.txt @@ -4,14 +4,10 @@ mlir_tablegen(LLVMOps.cpp.inc -gen-op-defs) mlir_tablegen(LLVMOpsEnums.h.inc -gen-enum-decls) mlir_tablegen(LLVMOpsEnums.cpp.inc -gen-enum-defs) add_public_tablegen_target(MLIRLLVMOpsIncGen) -set(LLVM_TARGET_DEFINITIONS NVVMOps.td) -mlir_tablegen(NVVMOps.h.inc -gen-op-decls) -mlir_tablegen(NVVMOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRNVVMOpsIncGen) -set(LLVM_TARGET_DEFINITIONS ROCDLOps.td) -mlir_tablegen(ROCDLOps.h.inc -gen-op-decls) -mlir_tablegen(ROCDLOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRROCDLOpsIncGen) + +add_mlir_dialect(NVVMOps) +add_mlir_dialect(ROCDLOps) + set(LLVM_TARGET_DEFINITIONS LLVMOps.td) mlir_tablegen(LLVMConversions.inc -gen-llvmir-conversions) add_public_tablegen_target(MLIRLLVMConversionsIncGen) diff --git a/mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt index b175e9ad044d..2a883a138a5c 100644 --- a/mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/Linalg/IR/CMakeLists.txt @@ -1,7 +1,4 @@ -set(LLVM_TARGET_DEFINITIONS LinalgOps.td) -mlir_tablegen(LinalgOps.h.inc -gen-op-decls) -mlir_tablegen(LinalgOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRLinalgOpsIncGen) +add_mlir_dialect(LinalgOps) set(LLVM_TARGET_DEFINITIONS LinalgLibraryOps.td) mlir_tablegen(LinalgLibraryOps.h.inc -gen-op-decls) mlir_tablegen(LinalgLibraryOps.cpp.inc -gen-op-defs) diff --git a/mlir/include/mlir/Dialect/LoopOps/CMakeLists.txt b/mlir/include/mlir/Dialect/LoopOps/CMakeLists.txt index 2d699580c049..9f5863f2be90 100644 --- a/mlir/include/mlir/Dialect/LoopOps/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/LoopOps/CMakeLists.txt @@ -1,4 +1 @@ -set(LLVM_TARGET_DEFINITIONS LoopOps.td) -mlir_tablegen(LoopOps.h.inc -gen-op-decls) -mlir_tablegen(LoopOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRLoopOpsIncGen) +add_mlir_dialect(LoopOps) diff --git a/mlir/include/mlir/Dialect/QuantOps/CMakeLists.txt b/mlir/include/mlir/Dialect/QuantOps/CMakeLists.txt index 3e3b9462b885..f95532ecf6eb 100644 --- a/mlir/include/mlir/Dialect/QuantOps/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QuantOps/CMakeLists.txt @@ -1,4 +1 @@ -set(LLVM_TARGET_DEFINITIONS QuantOps.td) -mlir_tablegen(QuantOps.h.inc -gen-op-decls) -mlir_tablegen(QuantOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRQuantOpsIncGen) +add_mlir_dialect(QuantOps) diff --git a/mlir/include/mlir/Dialect/SPIRV/CMakeLists.txt b/mlir/include/mlir/Dialect/SPIRV/CMakeLists.txt index c18d6534261c..b6759a9111be 100644 --- a/mlir/include/mlir/Dialect/SPIRV/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/SPIRV/CMakeLists.txt @@ -3,10 +3,7 @@ mlir_tablegen(SPIRVLowering.h.inc -gen-struct-attr-decls) mlir_tablegen(SPIRVLowering.cpp.inc -gen-struct-attr-defs) add_public_tablegen_target(MLIRSPIRVLoweringStructGen) -set(LLVM_TARGET_DEFINITIONS SPIRVOps.td) -mlir_tablegen(SPIRVOps.h.inc -gen-op-decls) -mlir_tablegen(SPIRVOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRSPIRVOpsIncGen) +add_mlir_dialect(SPIRVOps) set(LLVM_TARGET_DEFINITIONS SPIRVBase.td) mlir_tablegen(SPIRVEnums.h.inc -gen-enum-decls) diff --git a/mlir/include/mlir/Dialect/VectorOps/CMakeLists.txt b/mlir/include/mlir/Dialect/VectorOps/CMakeLists.txt index 3849dd7ffdf1..c165c5e676d9 100644 --- a/mlir/include/mlir/Dialect/VectorOps/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/VectorOps/CMakeLists.txt @@ -1,7 +1,4 @@ -set(LLVM_TARGET_DEFINITIONS VectorOps.td) -mlir_tablegen(VectorOps.h.inc -gen-op-decls) -mlir_tablegen(VectorOps.cpp.inc -gen-op-defs) -add_public_tablegen_target(MLIRVectorOpsIncGen) +add_mlir_dialect(VectorOps) set(LLVM_TARGET_DEFINITIONS VectorTransformPatterns.td) mlir_tablegen(VectorTransformPatterns.h.inc -gen-rewriters)