[llvm] 5ea1c37 - [libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is available

Joachim Protze via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 30 08:33:50 PDT 2021


Author: Joachim Protze
Date: 2021-08-30T17:32:11+02:00
New Revision: 5ea1c37118699f0ed1da17e0d8562011d0002edd

URL: https://github.com/llvm/llvm-project/commit/5ea1c37118699f0ed1da17e0d8562011d0002edd
DIFF: https://github.com/llvm/llvm-project/commit/5ea1c37118699f0ed1da17e0d8562011d0002edd.diff

LOG: [libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is available

In some build configurations, the target we depend on is not available for declaring the build dependency.
We only need to declare the build dependency, if the build target is available in the same build.

Fixes the issue raised in https://reviews.llvm.org/D107156#2969862
This patch should go into release/13 together with D108404

Differential Revision: https://reviews.llvm.org/D108868

Added: 
    

Modified: 
    llvm/runtimes/CMakeLists.txt
    openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index b972933b1f795..3436cd8bdfbef 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -350,9 +350,14 @@ if(runtimes)
   # Create a runtimes target that uses this file as its top-level CMake file.
   # The runtimes target is a configuration of all the runtime libraries
   # together in a single CMake invocaiton.
+  set(extra_deps "")
   if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
-    message(STATUS "Adding dependencies opt llvm-link")
-    set(extra_deps opt llvm-link)
+    if(TARGET opt)
+      list(APPEND extra_deps opt)
+    endif()
+    if(TARGET llvm-link)
+      list(APPEND extra_deps llvm-link)
+    endif()
   endif()
   if(NOT LLVM_RUNTIME_TARGETS)
     runtime_default_target(

diff  --git a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
index a0aa471594f70..ec830b0961dd5 100644
--- a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+++ b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
@@ -163,6 +163,14 @@ endmacro()
 
 set(libname "omptarget-amdgcn")
 
+set(toolchain_deps "")
+if(TARGET llvm-link)
+  list(APPEND toolchain_deps llvm-link)
+endif()
+if(TARGET opt)
+  list(APPEND toolchain_deps opt)
+endif()
+
 foreach(mcpu ${mcpus})
   set(bc_files)
   add_cuda_bc_library(${cuda_sources})
@@ -171,7 +179,7 @@ foreach(mcpu ${mcpus})
   add_custom_command(
     OUTPUT ${bc_libname}
     COMMAND ${LINK_TOOL} ${bc_files} | ${OPT_TOOL} --always-inline -o ${OUTPUTDIR}/${bc_libname}
-    DEPENDS ${bc_files} llvm-link opt)
+    DEPENDS ${bc_files} ${toolchain_deps})
 
   add_custom_target(lib${libname}-${mcpu} ALL DEPENDS ${bc_libname})
 


        


More information about the llvm-commits mailing list