if(MLIR_CUDA_CONVERSIONS_ENABLED)
- llvm_map_components_to_libnames(nvptx "NVPTX")
-
add_llvm_library(MLIRGPUtoCUDATransforms
ConvertKernelFuncToCubin.cpp
ConvertLaunchFuncToCudaCalls.cpp
)
target_link_libraries(MLIRGPUtoCUDATransforms
+ LLVMNVPTXCodeGen
+ LLVMNVPTXDesc
+ LLVMNVPTXInfo
MLIRGPU
MLIRLLVMIR
MLIRNVVMIR
MLIRPass
MLIRTargetNVVMIR
- ${nvptx}
)
endif()
${LIB_LIBS}
)
-set(LIBS
+set(FULL_LINK_LIBS
MLIRAnalysis
MLIRAffineOps
MLIRAffineToStandard
MLIRVectorToLLVM
MLIRVectorToLoops
)
+set(LIBS
+ MLIRIR
+ MLIROptMain
+ LLVMSupport
+ LLVMCore
+ LLVMAsmParser
+)
+
if(MLIR_CUDA_CONVERSIONS_ENABLED)
list(APPEND LIBS
+ LLVMNVPTXCodeGen
+ LLVMNVPTXDesc
+ LLVMNVPTXInfo
+ MLIRTargetNVVMIR
+ )
+ # Order matters here, so insert at front.
+ list(INSERT FULL_LINK_LIBS 0
MLIRGPUtoCUDATransforms
)
endif()
)
llvm_update_compile_flags(mlir-opt)
# It is necessary to use whole_archive_link to ensure that all static
-# initializers are called. However, whole_archive_link libraries cannot
-# also be target_link_libraries
-whole_archive_link(mlir-opt ${LIBS})
-target_link_libraries(mlir-opt PRIVATE MLIRIR MLIROptMain LLVMSupport LLVMCore LLVMAsmParser)
+# initializers are called. However, whole_archive_link libraries cannot
+# also be target_link_libraries.
+whole_archive_link(mlir-opt ${FULL_LINK_LIBS})
+target_link_libraries(mlir-opt PRIVATE ${LIBS})