diff --git a/openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt b/openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt --- a/openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt +++ b/openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt @@ -88,7 +88,7 @@ set(BUILD_SHARED_LIBS OFF) set(CUDA_SEPARABLE_COMPILATION ON) list(APPEND CUDA_NVCC_FLAGS -I${devicertl_base_directory}) - cuda_add_library(omptarget-nvptx STATIC ${cuda_src_files} ${omp_data_objects} + cuda_add_library(omptarget-nvptx STATIC unity.cu OPTIONS ${CUDA_ARCH} ${CUDA_DEBUG}) # Install device RTL under the lib destination folder. diff --git a/openmp/libomptarget/deviceRTLs/nvptx/unity.cu b/openmp/libomptarget/deviceRTLs/nvptx/unity.cu new file mode 100644 --- /dev/null +++ b/openmp/libomptarget/deviceRTLs/nvptx/unity.cu @@ -0,0 +1,25 @@ +//===------ unity.cu - Unity build of NVPTX deviceRTL ------------ CUDA -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Support compilers, specifically NVCC, which have not implemented link time +// optimisation. This removes the runtime cost of moving inline functions into +// source files in exchange for preventing efficient incremental builds. +// +//===----------------------------------------------------------------------===// + +#include "src/cancel.cu" +#include "src/critical.cu" +#include "src/data_sharing.cu" +#include "src/libcall.cu" +#include "src/loop.cu" +#include "src/omp_data.cu" +#include "src/omptarget-nvptx.cu" +#include "src/parallel.cu" +#include "src/reduction.cu" +#include "src/sync.cu" +#include "src/task.cu"