Skip to content

Commit ce3bbeb

Browse files
[MLIR] refactor cmake specification of tablegen'd interfaces.
Introduce add_mlir_interface to avoid lots of boilerplate Differential Revision: https://reviews.llvm.org/D79841
1 parent c82243d commit ce3bbeb

File tree

3 files changed

+18
-41
lines changed

3 files changed

+18
-41
lines changed

mlir/cmake/modules/AddMLIR.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@ function(add_mlir_dialect dialect dialect_namespace)
1414
add_dependencies(mlir-headers MLIR${dialect}IncGen)
1515
endfunction()
1616

17+
# Declare a dialect in the include directory
18+
function(add_mlir_interface interface)
19+
set(LLVM_TARGET_DEFINITIONS ${interface}.td)
20+
mlir_tablegen(${interface}.h.inc -gen-op-interface-decls)
21+
mlir_tablegen(${interface}.cpp.inc -gen-op-interface-defs)
22+
add_public_tablegen_target(MLIR${interface}IncGen)
23+
add_dependencies(mlir-generic-headers MLIR${interface}IncGen)
24+
endfunction()
25+
26+
1727
# Generate Documentation
1828
function(add_mlir_doc doc_filename command output_file output_directory)
1929
set(LLVM_TARGET_DEFINITIONS ${doc_filename}.td)
Lines changed: 7 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,8 @@
1-
set(LLVM_TARGET_DEFINITIONS CallInterfaces.td)
2-
mlir_tablegen(CallInterfaces.h.inc -gen-op-interface-decls)
3-
mlir_tablegen(CallInterfaces.cpp.inc -gen-op-interface-defs)
4-
add_public_tablegen_target(MLIRCallInterfacesIncGen)
5-
add_dependencies(mlir-generic-headers MLIRCallInterfacesIncGen)
1+
add_mlir_interface(CallInterfaces)
2+
add_mlir_interface(ControlFlowInterfaces)
3+
add_mlir_interface(DerivedAttributeOpInterface)
4+
add_mlir_interface(InferTypeOpInterface)
5+
add_mlir_interface(LoopLikeInterface)
6+
add_mlir_interface(SideEffectInterfaces)
7+
add_mlir_interface(ViewLikeInterface)
68

7-
set(LLVM_TARGET_DEFINITIONS ControlFlowInterfaces.td)
8-
mlir_tablegen(ControlFlowInterfaces.h.inc -gen-op-interface-decls)
9-
mlir_tablegen(ControlFlowInterfaces.cpp.inc -gen-op-interface-defs)
10-
add_public_tablegen_target(MLIRControlFlowInterfacesIncGen)
11-
add_dependencies(mlir-generic-headers MLIRControlFlowInterfacesIncGen)
12-
13-
set(LLVM_TARGET_DEFINITIONS DerivedAttributeOpInterface.td)
14-
mlir_tablegen(DerivedAttributeOpInterface.h.inc -gen-op-interface-decls)
15-
mlir_tablegen(DerivedAttributeOpInterface.cpp.inc -gen-op-interface-defs)
16-
add_public_tablegen_target(MLIRDerivedAttributeOpInterfaceIncGen)
17-
add_dependencies(mlir-generic-headers MLIRDerivedAttributeOpInterfaceIncGen)
18-
19-
set(LLVM_TARGET_DEFINITIONS InferTypeOpInterface.td)
20-
mlir_tablegen(InferTypeOpInterface.h.inc -gen-op-interface-decls)
21-
mlir_tablegen(InferTypeOpInterface.cpp.inc -gen-op-interface-defs)
22-
add_public_tablegen_target(MLIRInferTypeOpInterfaceIncGen)
23-
add_dependencies(mlir-generic-headers MLIRInferTypeOpInterfaceIncGen)
24-
25-
set(LLVM_TARGET_DEFINITIONS LoopLikeInterface.td)
26-
mlir_tablegen(LoopLikeInterface.h.inc -gen-op-interface-decls)
27-
mlir_tablegen(LoopLikeInterface.cpp.inc -gen-op-interface-defs)
28-
add_public_tablegen_target(MLIRLoopLikeInterfaceIncGen)
29-
add_dependencies(mlir-generic-headers MLIRLoopLikeInterfaceIncGen)
30-
31-
set(LLVM_TARGET_DEFINITIONS SideEffectInterfaces.td)
32-
mlir_tablegen(SideEffectInterfaces.h.inc -gen-op-interface-decls)
33-
mlir_tablegen(SideEffectInterfaces.cpp.inc -gen-op-interface-defs)
34-
add_public_tablegen_target(MLIRSideEffectOpInterfacesIncGen)
35-
add_dependencies(mlir-generic-headers MLIRSideEffectOpInterfacesIncGen)
36-
37-
set(LLVM_TARGET_DEFINITIONS ViewLikeInterface.td)
38-
mlir_tablegen(ViewLikeInterface.h.inc -gen-op-interface-decls)
39-
mlir_tablegen(ViewLikeInterface.cpp.inc -gen-op-interface-defs)
40-
add_public_tablegen_target(MLIRViewLikeInterfaceIncGen)
41-
add_dependencies(mlir-generic-headers MLIRViewLikeInterfaceIncGen)

mlir/lib/Interfaces/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ add_mlir_library(MLIRSideEffects
8080
${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces
8181

8282
DEPENDS
83-
MLIRSideEffectOpInterfacesIncGen
83+
MLIRSideEffectInterfacesIncGen
8484

8585
LINK_LIBS PUBLIC
8686
MLIRIR

0 commit comments

Comments
 (0)