Skip to content

Commit

Permalink
[libomptarget][amdcgn] Add build dependency for llvm-link and opt
Browse files Browse the repository at this point in the history
D107156 and D107320 are not sufficient when OpenMP is built as llvm runtime
(LLVM_ENABLE_RUNTIMES=openmp) because dependencies only work within the same
cmake instance.

We could limit the dependency to cases where libomptarget/plugins are really
built. But compared to the whole llvm project, building openmp runtime is
negligible and postponing the build of OpenMP runtime after the dependencies
are ready seems reasonable.

The direct dependency introduced in D107156 and D107320 is necessary for the
case where OpenMP is built as llvm project (LLVM_ENABLE_PROJECTS=openmp).

Differential Revision: https://reviews.llvm.org/D108404
  • Loading branch information
jprotze committed Aug 19, 2021
1 parent 77b435a commit 4bb36df
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
8 changes: 6 additions & 2 deletions llvm/runtimes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -350,15 +350,19 @@ 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.
if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
message(STATUS "Adding dependencies opt llvm-link")
set(extra_deps opt llvm-link)
endif()
if(NOT LLVM_RUNTIME_TARGETS)
runtime_default_target(
DEPENDS ${deps}
DEPENDS ${deps} ${extra_deps}
PREFIXES ${prefixes})
set(test_targets check-runtimes)
else()
if("default" IN_LIST LLVM_RUNTIME_TARGETS)
runtime_default_target(
DEPENDS ${deps}
DEPENDS ${deps} ${extra_deps}
PREFIXES ${prefixes})
list(REMOVE_ITEM LLVM_RUNTIME_TARGETS "default")
else()
Expand Down
2 changes: 2 additions & 0 deletions openmp/libomptarget/DeviceRTL/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ endif()

# Create target to build all Bitcode libraries.
add_custom_target(omptarget-new-nvptx-bc)
add_dependencies(omptarget-new-nvptx-bc opt llvm-link)

# Generate a Bitcode library for all the compute capabilities the user requested
foreach(sm ${nvptx_sm_list})
Expand Down Expand Up @@ -197,6 +198,7 @@ foreach(sm ${nvptx_sm_list})

add_custom_target(${bclib_target_name} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${bclib_name}_opt)
add_dependencies(omptarget-new-nvptx-bc ${bclib_target_name})
add_dependencies(${bclib_target_name} opt llvm-link)

# Copy library to destination.
add_custom_command(TARGET ${bclib_target_name} POST_BUILD
Expand Down
2 changes: 1 addition & 1 deletion openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,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} opt)
DEPENDS ${bc_files} llvm-link opt)

add_custom_target(lib${libname}-${mcpu} ALL DEPENDS ${bc_libname})

Expand Down

0 comments on commit 4bb36df

Please sign in to comment.