Commit 58695528 authored by Stephen Neuendorffer's avatar Stephen Neuendorffer
Browse files

[MLIR] Refactor handling of dialect libraries

Instead of creating extra libraries we don't really need, collect a
list of all dialects and use that instead.

Differential Revision: https://reviews.llvm.org/D75221
parent 4dc39ae7
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -8,27 +8,6 @@ set(MLIR_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})

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
+28 −0
Original line number Diff line number Diff line
@@ -26,3 +26,31 @@ function(whole_archive_link target)
  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)
+2 −2
Original line number Diff line number Diff line
@@ -25,12 +25,12 @@ add_dependencies(toyc-ch5 MLIRCallOpInterfacesIncGen)
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)
+2 −2
Original line number Diff line number Diff line
@@ -27,9 +27,10 @@ add_dependencies(toyc-ch6 MLIRCallOpInterfacesIncGen)
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 @@ target_link_libraries(toyc-ch6
    MLIRTargetLLVMIR
    MLIRTransforms
    )
+2 −1
Original line number Diff line number Diff line
@@ -27,9 +27,10 @@ add_dependencies(toyc-ch7 MLIRCallOpInterfacesIncGen)
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
Loading