summaryrefslogtreecommitdiff
path: root/openmp/libomptarget
diff options
context:
space:
mode:
authorGheorghe-Teodor Bercea <gheorghe-teod.bercea@ibm.com>2018-12-03 15:21:49 +0000
committerGheorghe-Teodor Bercea <gheorghe-teod.bercea@ibm.com>2018-12-03 15:21:49 +0000
commit2ef6af7b17f9e65db2bb1eb0300293efa3d8def6 (patch)
tree7d515507ef5bbeea2e96838ea788823c5f792824 /openmp/libomptarget
parent32487b6f32fbc7a8ece667b6d1a0faa31163837e (diff)
[OpenMP][libomptarget] Flush intermediate values during team reduction
Summary: Ensure intermediate values of a team reduction are flushed to memory. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: guansong, jfb, openmp-commits Differential Revision: https://reviews.llvm.org/D55219
Diffstat (limited to 'openmp/libomptarget')
-rw-r--r--openmp/libomptarget/deviceRTLs/nvptx/src/reduction.cu1
1 files changed, 1 insertions, 0 deletions
diff --git a/openmp/libomptarget/deviceRTLs/nvptx/src/reduction.cu b/openmp/libomptarget/deviceRTLs/nvptx/src/reduction.cu
index bbe4ad16838..a9e35a1b9fc 100644
--- a/openmp/libomptarget/deviceRTLs/nvptx/src/reduction.cu
+++ b/openmp/libomptarget/deviceRTLs/nvptx/src/reduction.cu
@@ -444,6 +444,7 @@ EXTERN int32_t __kmpc_nvptx_teams_reduce_nowait_simple(kmp_Ident *loc,
EXTERN void
__kmpc_nvptx_teams_end_reduce_nowait_simple(kmp_Ident *loc, int32_t global_tid,
kmp_CriticalName *crit) {
+ __threadfence_system();
(void)atomicExch((uint32_t *)crit, 0);
}