From 4c58e5a28f36e214144c4c76754cca666093adf3 Mon Sep 17 00:00:00 2001 From: Terry Wilmarth Date: Thu, 12 Jan 2023 10:29:20 -0600 Subject: [PATCH] [OpenMP] Fix for distributed barrier. Distributed barrier was found to cause hangs in some test cases. Found that a section updating the barrier size was improperly shifted to a different code section during patching. Restored to original location, all tests run to completion. Differential Revision: https://reviews.llvm.org/D141618 --- openmp/runtime/src/kmp_runtime.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp index be0f15f..58b5542 100644 --- a/openmp/runtime/src/kmp_runtime.cpp +++ b/openmp/runtime/src/kmp_runtime.cpp @@ -1011,6 +1011,12 @@ static void __kmp_fork_team_threads(kmp_root_t *root, kmp_team_t *team, __kmp_partition_places(team); } #endif + + if (team->t.t_nproc > 1 && + __kmp_barrier_gather_pattern[bs_forkjoin_barrier] == bp_dist_bar) { + team->t.b->update_num_threads(team->t.t_nproc); + __kmp_add_threads_to_team(team, team->t.t_nproc); + } } if (__kmp_display_affinity && team->t.t_display_affinity != 1) { @@ -2479,12 +2485,6 @@ void __kmp_join_call(ident_t *loc, int gtid parent_team->t.t_stack_id = NULL; } #endif - - if (team->t.t_nproc > 1 && - __kmp_barrier_gather_pattern[bs_forkjoin_barrier] == bp_dist_bar) { - team->t.b->update_num_threads(team->t.t_nproc); - __kmp_add_threads_to_team(team, team->t.t_nproc); - } } KMP_MB(); -- 2.7.4