diff options
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r-- | openmp/runtime/src/kmp_runtime.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/openmp/runtime/src/kmp_runtime.c b/openmp/runtime/src/kmp_runtime.c index 85c7bcc6c3c..6b2a5c69547 100644 --- a/openmp/runtime/src/kmp_runtime.c +++ b/openmp/runtime/src/kmp_runtime.c @@ -7641,7 +7641,9 @@ __kmp_determine_reduction_method( ident_t *loc, kmp_int32 global_tid, // KMP_FORCE_REDUCTION - if( __kmp_force_reduction_method != reduction_method_not_defined ) { + // If the team is serialized (team_size == 1), ignore the forced reduction + // method and stay with the unsynchronized method (empty_reduce_block) + if( __kmp_force_reduction_method != reduction_method_not_defined && team_size != 1) { PACKED_REDUCTION_METHOD_T forced_retval; @@ -7651,9 +7653,6 @@ __kmp_determine_reduction_method( ident_t *loc, kmp_int32 global_tid, { case critical_reduce_block: KMP_ASSERT( lck ); // lck should be != 0 - if( team_size <= 1 ) { - forced_retval = empty_reduce_block; - } break; case atomic_reduce_block: |