llvm/mlir/tools/mlir-cuda-runner/CMakeLists.txt
Alex Zinenko e0d78eac23 NFC: rename Conversion/ControlFlowToCFG to Conversion/LoopToStandard
This makes the name of the conversion pass more consistent with the naming
scheme, since it actually converts from the Loop dialect to the Standard
dialect rather than working with arbitrary control flow operations.

PiperOrigin-RevId: 272612112
2019-10-03 01:35:03 -07:00

74 lines
1.8 KiB
CMake

set(LLVM_OPTIONAL_SOURCES
cuda-runtime-wrappers.cpp
mlir-cuda-runner.cpp
)
if(MLIR_CUDA_RUNNER_ENABLED)
if (NOT ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD))
message(SEND_ERROR
"Building the mlir cuda runner requires the NVPTX backend")
endif()
# Configure CUDA runner support. Using check_language first allows us to give
# a custom error message.
include(CheckLanguage)
check_language(CUDA)
if (CMAKE_CUDA_COMPILER)
enable_language(CUDA)
else()
message(SEND_ERROR
"Building the mlir cuda runner requires a working CUDA install")
endif()
# We need the libcuda.so library.
find_library(CUDA_RUNTIME_LIBRARY cuda)
add_llvm_library(cuda-runtime-wrappers SHARED
cuda-runtime-wrappers.cpp
)
target_include_directories(cuda-runtime-wrappers
PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
LLVMSupport
)
target_link_libraries(cuda-runtime-wrappers
LLVMSupport
${CUDA_RUNTIME_LIBRARY}
)
set(FULL_LINK_LIBS
MLIRAffineOps
MLIRLoopToStandard
MLIRGPU
MLIRGPUtoCUDATransforms
MLIRGPUtoNVVMTransforms
MLIRLLVMIR
MLIRStandardOps
MLIRStandardToLLVM
MLIRTargetLLVMIR
MLIRTransforms
MLIRTranslation
)
set(LIBS
MLIRIR
MLIRParser
MLIREDSC
MLIRAnalysis
MLIRExecutionEngine
MLIRJitRunner
MLIRSupport
LLVMCore
LLVMSupport
${CUDA_RUNTIME_LIBRARY}
)
add_llvm_executable(mlir-cuda-runner
mlir-cuda-runner.cpp
)
add_dependencies(mlir-cuda-runner cuda-runtime-wrappers)
target_include_directories(mlir-cuda-runner
PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
)
llvm_update_compile_flags(mlir-cuda-runner)
whole_archive_link(mlir-cuda-runner ${FULL_LINK_LIBS})
target_link_libraries(mlir-cuda-runner PRIVATE ${FULL_LINK_LIBS} ${LIBS})
endif()