diff --git a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt --- a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt +++ b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt @@ -56,7 +56,11 @@ set(cuda_sources ${devicertl_base_directory}/common/src/cancel.cu - ${devicertl_base_directory}/common/src/critical.cu) + ${devicertl_base_directory}/common/src/critical.cu + ${devicertl_base_directory}/common/src/loop.cu + ${devicertl_base_directory}/common/src/omptarget.cu + ${devicertl_base_directory}/common/src/sync.cu + ${devicertl_base_directory}/common/src/task.cu) set(h_files ${CMAKE_CURRENT_SOURCE_DIR}/src/amdgcn_interface.h @@ -64,6 +68,8 @@ ${CMAKE_CURRENT_SOURCE_DIR}/src/target_impl.h ${devicertl_base_directory}/common/debug.h ${devicertl_base_directory}/common/device_environment.h + ${devicertl_base_directory}/common/omptarget.h + ${devicertl_base_directory}/common/omptargeti.h ${devicertl_base_directory}/common/state-queue.h ${devicertl_base_directory}/common/state-queuei.h ${devicertl_base_directory}/common/support.h) diff --git a/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h b/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h --- a/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h +++ b/openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h @@ -121,6 +121,10 @@ INLINE void __kmpc_impl_syncthreads() { __builtin_amdgcn_s_barrier(); } +INLINE void __kmpc_impl_syncwarp(__kmpc_impl_lanemask_t) { + // AMDGCN doesn't need to sync threads in a warp +} + INLINE void __kmpc_impl_named_sync(int barrier, uint32_t num_threads) { // we have protected the master warp from releasing from its barrier // due to a full workgroup barrier in the middle of a work function.