Lines Matching refs:team

86 static void __kmp_initialize_team(kmp_team_t *team, int new_nproc,
90 static void __kmp_partition_places(kmp_team_t *team,
96 void __kmp_setup_icv_copy(kmp_team_t *team, int new_nproc,
502 static void __kmp_print_team_storage_map(const char *header, kmp_team_t *team, in __kmp_print_team_storage_map() argument
504 int num_disp_buff = team->t.t_max_nproc > 1 ? __kmp_dispatch_num_buffers : 2; in __kmp_print_team_storage_map()
505 __kmp_print_storage_map_gtid(-1, team, team + 1, sizeof(kmp_team_t), "%s_%d", in __kmp_print_team_storage_map()
508 __kmp_print_storage_map_gtid(-1, &team->t.t_bar[0], in __kmp_print_team_storage_map()
509 &team->t.t_bar[bs_last_barrier], in __kmp_print_team_storage_map()
513 __kmp_print_storage_map_gtid(-1, &team->t.t_bar[bs_plain_barrier], in __kmp_print_team_storage_map()
514 &team->t.t_bar[bs_plain_barrier + 1], in __kmp_print_team_storage_map()
518 __kmp_print_storage_map_gtid(-1, &team->t.t_bar[bs_forkjoin_barrier], in __kmp_print_team_storage_map()
519 &team->t.t_bar[bs_forkjoin_barrier + 1], in __kmp_print_team_storage_map()
524 __kmp_print_storage_map_gtid(-1, &team->t.t_bar[bs_reduction_barrier], in __kmp_print_team_storage_map()
525 &team->t.t_bar[bs_reduction_barrier + 1], in __kmp_print_team_storage_map()
531 -1, &team->t.t_dispatch[0], &team->t.t_dispatch[num_thr], in __kmp_print_team_storage_map()
535 -1, &team->t.t_threads[0], &team->t.t_threads[num_thr], in __kmp_print_team_storage_map()
538 __kmp_print_storage_map_gtid(-1, &team->t.t_disp_buffer[0], in __kmp_print_team_storage_map()
539 &team->t.t_disp_buffer[num_disp_buff], in __kmp_print_team_storage_map()
608 kmp_team_t *team = __kmp_team_from_gtid(gtid); in __kmp_parallel_deo() local
620 if (!team->t.t_serialized) { in __kmp_parallel_deo()
622 KMP_WAIT(&team->t.t_ordered.dt.t_value, __kmp_tid_from_gtid(gtid), KMP_EQ, in __kmp_parallel_deo()
634 kmp_team_t *team = __kmp_team_from_gtid(gtid); in __kmp_parallel_dxo() local
642 if (!team->t.t_serialized) { in __kmp_parallel_dxo()
647 team->t.t_ordered.dt.t_value = ((tid + 1) % team->t.t_nproc); in __kmp_parallel_dxo()
660 kmp_team_t *team; in __kmp_enter_single() local
667 team = th->th.th_team; in __kmp_enter_single()
672 if (team->t.t_serialized) { in __kmp_enter_single()
681 if (team->t.t_construct == old_this) { in __kmp_enter_single()
682 status = __kmp_atomic_compare_store_acq(&team->t.t_construct, old_this, in __kmp_enter_single()
688 team->t.t_active_level == 1) { in __kmp_enter_single()
912 static void __kmp_fork_team_threads(kmp_root_t *root, kmp_team_t *team, in __kmp_fork_team_threads() argument
917 KA_TRACE(10, ("__kmp_fork_team_threads: new_nprocs = %d\n", team->t.t_nproc)); in __kmp_fork_team_threads()
923 master_th->th.th_team = team; in __kmp_fork_team_threads()
924 master_th->th.th_team_nproc = team->t.t_nproc; in __kmp_fork_team_threads()
927 master_th->th.th_dispatch = &team->t.t_dispatch[0]; in __kmp_fork_team_threads()
935 int level = team->t.t_active_level - 1; // index in array of hot teams in __kmp_fork_team_threads()
941 if (team->t.t_pkfn != (microtask_t)__kmp_teams_master && in __kmp_fork_team_threads()
942 master_th->th.th_teams_level == team->t.t_level) { in __kmp_fork_team_threads()
950 KMP_DEBUG_ASSERT(hot_teams[level].hot_team == team); in __kmp_fork_team_threads()
954 hot_teams[level].hot_team = team; // remember new hot team in __kmp_fork_team_threads()
955 hot_teams[level].hot_team_nth = team->t.t_nproc; in __kmp_fork_team_threads()
962 use_hot_team = team == root->r.r_hot_team; in __kmp_fork_team_threads()
967 team->t.t_threads[0] = master_th; in __kmp_fork_team_threads()
968 __kmp_initialize_info(master_th, team, 0, master_gtid); in __kmp_fork_team_threads()
971 for (i = 1; i < team->t.t_nproc; i++) { in __kmp_fork_team_threads()
974 kmp_info_t *thr = __kmp_allocate_thread(root, team, i); in __kmp_fork_team_threads()
975 team->t.t_threads[i] = thr; in __kmp_fork_team_threads()
977 KMP_DEBUG_ASSERT(thr->th.th_team == team); in __kmp_fork_team_threads()
981 __kmp_gtid_from_tid(0, team), team->t.t_id, 0, in __kmp_fork_team_threads()
982 __kmp_gtid_from_tid(i, team), team->t.t_id, i, in __kmp_fork_team_threads()
983 team->t.t_bar[bs_forkjoin_barrier].b_arrived, in __kmp_fork_team_threads()
984 team->t.t_bar[bs_plain_barrier].b_arrived)); in __kmp_fork_team_threads()
990 kmp_balign_t *balign = team->t.t_threads[i]->th.th_bar; in __kmp_fork_team_threads()
992 balign[b].bb.b_arrived = team->t.t_bar[b].b_arrived; in __kmp_fork_team_threads()
995 balign[b].bb.b_worker_arrived = team->t.t_bar[b].b_team_arrived; in __kmp_fork_team_threads()
1002 __kmp_partition_places(team); in __kmp_fork_team_threads()
1006 if (__kmp_display_affinity && team->t.t_display_affinity != 1) { in __kmp_fork_team_threads()
1007 for (i = 0; i < team->t.t_nproc; i++) { in __kmp_fork_team_threads()
1008 kmp_info_t *thr = team->t.t_threads[i]; in __kmp_fork_team_threads()
1009 if (thr->th.th_prev_num_threads != team->t.t_nproc || in __kmp_fork_team_threads()
1010 thr->th.th_prev_level != team->t.t_level) { in __kmp_fork_team_threads()
1011 team->t.t_display_affinity = 1; in __kmp_fork_team_threads()
1024 inline static void propagateFPControl(kmp_team_t *team) { in propagateFPControl() argument
1043 KMP_CHECK_UPDATE(team->t.t_x87_fpu_control_word, x87_fpu_control_word); in propagateFPControl()
1044 KMP_CHECK_UPDATE(team->t.t_mxcsr, mxcsr); in propagateFPControl()
1047 KMP_CHECK_UPDATE(team->t.t_fp_control_saved, TRUE); in propagateFPControl()
1051 KMP_CHECK_UPDATE(team->t.t_fp_control_saved, FALSE); in propagateFPControl()
1057 inline static void updateHWFPControl(kmp_team_t *team) { in updateHWFPControl() argument
1058 if (__kmp_inherit_fp_control && team->t.t_fp_control_saved) { in updateHWFPControl()
1067 if (team->t.t_x87_fpu_control_word != x87_fpu_control_word) { in updateHWFPControl()
1069 __kmp_load_x87_fpu_control_word(&team->t.t_x87_fpu_control_word); in updateHWFPControl()
1072 if (team->t.t_mxcsr != mxcsr) { in updateHWFPControl()
1073 __kmp_load_mxcsr(&team->t.t_mxcsr); in updateHWFPControl()
1082 static void __kmp_alloc_argv_entries(int argc, kmp_team_t *team,
1353 kmp_team_t *team; in __kmp_fork_call() local
1783 team = master_th->th.th_team; in __kmp_fork_call()
1785 team->t.t_invoke = invoker; in __kmp_fork_call()
1786 __kmp_alloc_argv_entries(argc, team, TRUE); in __kmp_fork_call()
1787 team->t.t_argc = argc; in __kmp_fork_call()
1788 argv = (void **)team->t.t_argv; in __kmp_fork_call()
1799 team->t.t_level--; in __kmp_fork_call()
1980 team = __kmp_allocate_team(root, nthreads, nthreads, in __kmp_fork_call()
1989 team = __kmp_allocate_team(root, nthreads, nthreads, in __kmp_fork_call()
1998 10, ("__kmp_fork_call: after __kmp_allocate_team - team = %p\n", team)); in __kmp_fork_call()
2001 KMP_CHECK_UPDATE(team->t.t_master_tid, master_tid); in __kmp_fork_call()
2002 KMP_CHECK_UPDATE(team->t.t_master_this_cons, master_this_cons); in __kmp_fork_call()
2003 KMP_CHECK_UPDATE(team->t.t_ident, loc); in __kmp_fork_call()
2004 KMP_CHECK_UPDATE(team->t.t_parent, parent_team); in __kmp_fork_call()
2005 KMP_CHECK_UPDATE_SYNC(team->t.t_pkfn, microtask); in __kmp_fork_call()
2007 KMP_CHECK_UPDATE_SYNC(team->t.ompt_team_info.master_return_address, in __kmp_fork_call()
2010 KMP_CHECK_UPDATE(team->t.t_invoke, invoker); // TODO move to root, maybe in __kmp_fork_call()
2014 KMP_CHECK_UPDATE(team->t.t_level, new_level); in __kmp_fork_call()
2016 KMP_CHECK_UPDATE(team->t.t_active_level, new_level); in __kmp_fork_call()
2020 KMP_CHECK_UPDATE(team->t.t_level, new_level); in __kmp_fork_call()
2022 KMP_CHECK_UPDATE(team->t.t_active_level, new_level); in __kmp_fork_call()
2026 KMP_CHECK_UPDATE(team->t.t_sched.sched, new_sched.sched); in __kmp_fork_call()
2028 KMP_CHECK_UPDATE(team->t.t_cancel_request, cancel_noreq); in __kmp_fork_call()
2029 KMP_CHECK_UPDATE(team->t.t_def_allocator, master_th->th.th_def_allocator); in __kmp_fork_call()
2032 propagateFPControl(team); in __kmp_fork_call()
2047 team->t.t_task_team[master_th->th.th_task_state], team)); in __kmp_fork_call()
2078 team == master_th->th.th_hot_teams[active_level].hot_team) { in __kmp_fork_call()
2092 (team == root->r.r_hot_team)); in __kmp_fork_call()
2099 gtid, parent_team->t.t_id, team->t.t_master_tid, team->t.t_id, in __kmp_fork_call()
2100 team->t.t_nproc)); in __kmp_fork_call()
2101 KMP_DEBUG_ASSERT(team != root->r.r_hot_team || in __kmp_fork_call()
2102 (team->t.t_master_tid == 0 && in __kmp_fork_call()
2103 (team->t.t_parent == root->r.r_root_team || in __kmp_fork_call()
2104 team->t.t_parent->t.t_serialized))); in __kmp_fork_call()
2108 argv = (void **)team->t.t_argv; in __kmp_fork_call()
2118 KMP_CHECK_UPDATE(argv[i], team->t.t_parent->t.t_argv[i]); in __kmp_fork_call()
2123 KMP_CHECK_UPDATE(team->t.t_master_active, master_active); in __kmp_fork_call()
2127 __kmp_fork_team_threads(root, team, master_th, gtid); in __kmp_fork_call()
2128 __kmp_setup_icv_copy(team, nthreads, in __kmp_fork_call()
2138 if (team->t.t_active_level == 1 // only report frames at level 1 in __kmp_fork_call()
2150 team->t.t_region_time = tmp_time; in __kmp_fork_call()
2157 __kmp_itt_region_forking(gtid, team->t.t_nproc, 0); in __kmp_fork_call()
2163 KMP_DEBUG_ASSERT(team == __kmp_threads[gtid]->th.th_team); in __kmp_fork_call()
2167 root, team, master_th, gtid)); in __kmp_fork_call()
2173 KMP_DEBUG_ASSERT(team->t.t_stack_id == NULL); in __kmp_fork_call()
2174 team->t.t_stack_id = __kmp_itt_stack_caller_create(); in __kmp_fork_call()
2189 __kmp_internal_fork(loc, gtid, team); in __kmp_fork_call()
2192 root, team, master_th, gtid)); in __kmp_fork_call()
2202 team->t.t_id, team->t.t_pkfn)); in __kmp_fork_call()
2213 if (!team->t.t_invoke(gtid)) { in __kmp_fork_call()
2225 team->t.t_id, team->t.t_pkfn)); in __kmp_fork_call()
2240 kmp_team_t *team) { in __kmp_join_restore_state() argument
2243 ((team->t.t_serialized) ? ompt_state_work_serial in __kmp_join_restore_state()
2248 kmp_team_t *team, ompt_data_t *parallel_data, in __kmp_join_ompt() argument
2257 __kmp_join_restore_state(thread, team); in __kmp_join_ompt()
2269 kmp_team_t *team; in __kmp_join_call() local
2280 team = master_th->th.th_team; in __kmp_join_call()
2281 parent_team = team->t.t_parent; in __kmp_join_call()
2286 void *team_microtask = (void *)team->t.t_pkfn; in __kmp_join_call()
2291 !(team->t.t_serialized && fork_context == fork_context_gnu)) { in __kmp_join_call()
2300 __kmp_gtid_from_thread(master_th), team, in __kmp_join_call()
2301 team->t.t_task_team[master_th->th.th_task_state], in __kmp_join_call()
2304 team->t.t_task_team[master_th->th.th_task_state]); in __kmp_join_call()
2308 if (team->t.t_serialized) { in __kmp_join_call()
2311 int level = team->t.t_level; in __kmp_join_call()
2316 team->t.t_level++; in __kmp_join_call()
2321 team->t.t_serialized++; in __kmp_join_call()
2335 master_active = team->t.t_master_active; in __kmp_join_call()
2340 __kmp_internal_join(loc, gtid, team); in __kmp_join_call()
2343 KMP_DEBUG_ASSERT(team->t.t_stack_id != NULL); in __kmp_join_call()
2345 __kmp_itt_stack_caller_destroy((__itt_caller)team->t.t_stack_id); in __kmp_join_call()
2346 team->t.t_stack_id = NULL; in __kmp_join_call()
2367 ompt_data_t *parallel_data = &(team->t.ompt_team_info.parallel_data); in __kmp_join_call()
2368 void *codeptr = team->t.ompt_team_info.master_return_address; in __kmp_join_call()
2373 if (team->t.t_active_level == 1 && in __kmp_join_call()
2381 __kmp_itt_frame_submit(gtid, team->t.t_region_time, in __kmp_join_call()
2391 team->t.t_pkfn != (microtask_t)__kmp_teams_master && in __kmp_join_call()
2392 team->t.t_level == master_th->th.th_teams_level + 1) { in __kmp_join_call()
2401 int ompt_team_size = team->t.t_nproc; in __kmp_join_call()
2413 team->t.t_level--; in __kmp_join_call()
2414 team->t.t_active_level--; in __kmp_join_call()
2424 kmp_info_t **other_threads = team->t.t_threads; in __kmp_join_call()
2425 team->t.t_nproc = new_num; in __kmp_join_call()
2435 balign[b].bb.b_arrived = team->t.t_bar[b].b_arrived; in __kmp_join_call()
2438 balign[b].bb.b_worker_arrived = team->t.t_bar[b].b_team_arrived; in __kmp_join_call()
2459 master_th->th.th_info.ds.ds_tid = team->t.t_master_tid; in __kmp_join_call()
2460 master_th->th.th_local.this_construct = team->t.t_master_this_cons; in __kmp_join_call()
2462 master_th->th.th_dispatch = &parent_team->t.t_dispatch[team->t.t_master_tid]; in __kmp_join_call()
2470 team->t.t_level > master_th->th.th_teams_level) { in __kmp_join_call()
2483 int ompt_team_size = (flags == ompt_task_initial) ? 0 : team->t.t_nproc; in __kmp_join_call()
2494 master_th, team)); in __kmp_join_call()
2499 master_th->th.th_first_place = team->t.t_first_place; in __kmp_join_call()
2500 master_th->th.th_last_place = team->t.t_last_place; in __kmp_join_call()
2502 master_th->th.th_def_allocator = team->t.t_def_allocator; in __kmp_join_call()
2508 updateHWFPControl(team); in __kmp_join_call()
2513 __kmp_free_team(root, team USE_NESTED_HOT_ARG( in __kmp_join_call()
2866 kmp_team_t *team; in __kmp_get_ancestor_thread_num() local
2878 team = thr->th.th_team; in __kmp_get_ancestor_thread_num()
2879 ii = team->t.t_level; in __kmp_get_ancestor_thread_num()
2902 dd = team->t.t_serialized; in __kmp_get_ancestor_thread_num()
2905 for (dd = team->t.t_serialized; (dd > 0) && (ii > level); dd--, ii--) { in __kmp_get_ancestor_thread_num()
2907 if ((team->t.t_serialized) && (!dd)) { in __kmp_get_ancestor_thread_num()
2908 team = team->t.t_parent; in __kmp_get_ancestor_thread_num()
2912 team = team->t.t_parent; in __kmp_get_ancestor_thread_num()
2913 dd = team->t.t_serialized; in __kmp_get_ancestor_thread_num()
2918 return (dd > 1) ? (0) : (team->t.t_master_tid); in __kmp_get_ancestor_thread_num()
2924 kmp_team_t *team; in __kmp_get_team_size() local
2936 team = thr->th.th_team; in __kmp_get_team_size()
2937 ii = team->t.t_level; in __kmp_get_team_size()
2958 for (dd = team->t.t_serialized; (dd > 0) && (ii > level); dd--, ii--) { in __kmp_get_team_size()
2960 if (team->t.t_serialized && (!dd)) { in __kmp_get_team_size()
2961 team = team->t.t_parent; in __kmp_get_team_size()
2965 team = team->t.t_parent; in __kmp_get_team_size()
2970 return team->t.t_nproc; in __kmp_get_team_size()
3009 static void __kmp_alloc_argv_entries(int argc, kmp_team_t *team, int realloc) { in __kmp_alloc_argv_entries() argument
3011 KMP_DEBUG_ASSERT(team); in __kmp_alloc_argv_entries()
3012 if (!realloc || argc > team->t.t_max_argc) { in __kmp_alloc_argv_entries()
3016 team->t.t_id, argc, (realloc) ? team->t.t_max_argc : 0)); in __kmp_alloc_argv_entries()
3018 if (realloc && team->t.t_argv != &team->t.t_inline_argv[0]) in __kmp_alloc_argv_entries()
3019 __kmp_free((void *)team->t.t_argv); in __kmp_alloc_argv_entries()
3023 team->t.t_max_argc = KMP_INLINE_ARGV_ENTRIES; in __kmp_alloc_argv_entries()
3026 team->t.t_id, team->t.t_max_argc)); in __kmp_alloc_argv_entries()
3027 team->t.t_argv = &team->t.t_inline_argv[0]; in __kmp_alloc_argv_entries()
3030 -1, &team->t.t_inline_argv[0], in __kmp_alloc_argv_entries()
3031 &team->t.t_inline_argv[KMP_INLINE_ARGV_ENTRIES], in __kmp_alloc_argv_entries()
3033 team->t.t_id); in __kmp_alloc_argv_entries()
3037 team->t.t_max_argc = (argc <= (KMP_MIN_MALLOC_ARGV_ENTRIES >> 1)) in __kmp_alloc_argv_entries()
3042 team->t.t_id, team->t.t_max_argc)); in __kmp_alloc_argv_entries()
3043 team->t.t_argv = in __kmp_alloc_argv_entries()
3044 (void **)__kmp_page_allocate(sizeof(void *) * team->t.t_max_argc); in __kmp_alloc_argv_entries()
3046 __kmp_print_storage_map_gtid(-1, &team->t.t_argv[0], in __kmp_alloc_argv_entries()
3047 &team->t.t_argv[team->t.t_max_argc], in __kmp_alloc_argv_entries()
3048 sizeof(void *) * team->t.t_max_argc, in __kmp_alloc_argv_entries()
3049 "team_%d.t_argv", team->t.t_id); in __kmp_alloc_argv_entries()
3055 static void __kmp_allocate_team_arrays(kmp_team_t *team, int max_nth) { in __kmp_allocate_team_arrays() argument
3058 team->t.t_threads = in __kmp_allocate_team_arrays()
3060 team->t.t_disp_buffer = (dispatch_shared_info_t *)__kmp_allocate( in __kmp_allocate_team_arrays()
3062 team->t.t_dispatch = in __kmp_allocate_team_arrays()
3064 team->t.t_implicit_task_taskdata = in __kmp_allocate_team_arrays()
3066 team->t.t_max_nproc = max_nth; in __kmp_allocate_team_arrays()
3070 team->t.t_disp_buffer[i].buffer_index = i; in __kmp_allocate_team_arrays()
3071 team->t.t_disp_buffer[i].doacross_buf_idx = i; in __kmp_allocate_team_arrays()
3075 static void __kmp_free_team_arrays(kmp_team_t *team) { in __kmp_free_team_arrays() argument
3078 for (i = 0; i < team->t.t_max_nproc; ++i) { in __kmp_free_team_arrays()
3079 if (team->t.t_dispatch[i].th_disp_buffer != NULL) { in __kmp_free_team_arrays()
3080 __kmp_free(team->t.t_dispatch[i].th_disp_buffer); in __kmp_free_team_arrays()
3081 team->t.t_dispatch[i].th_disp_buffer = NULL; in __kmp_free_team_arrays()
3085 __kmp_dispatch_free_hierarchies(team); in __kmp_free_team_arrays()
3087 __kmp_free(team->t.t_threads); in __kmp_free_team_arrays()
3088 __kmp_free(team->t.t_disp_buffer); in __kmp_free_team_arrays()
3089 __kmp_free(team->t.t_dispatch); in __kmp_free_team_arrays()
3090 __kmp_free(team->t.t_implicit_task_taskdata); in __kmp_free_team_arrays()
3091 team->t.t_threads = NULL; in __kmp_free_team_arrays()
3092 team->t.t_disp_buffer = NULL; in __kmp_free_team_arrays()
3093 team->t.t_dispatch = NULL; in __kmp_free_team_arrays()
3094 team->t.t_implicit_task_taskdata = 0; in __kmp_free_team_arrays()
3097 static void __kmp_reallocate_team_arrays(kmp_team_t *team, int max_nth) { in __kmp_reallocate_team_arrays() argument
3098 kmp_info_t **oldThreads = team->t.t_threads; in __kmp_reallocate_team_arrays()
3100 __kmp_free(team->t.t_disp_buffer); in __kmp_reallocate_team_arrays()
3101 __kmp_free(team->t.t_dispatch); in __kmp_reallocate_team_arrays()
3102 __kmp_free(team->t.t_implicit_task_taskdata); in __kmp_reallocate_team_arrays()
3103 __kmp_allocate_team_arrays(team, max_nth); in __kmp_reallocate_team_arrays()
3105 KMP_MEMCPY(team->t.t_threads, oldThreads, in __kmp_reallocate_team_arrays()
3106 team->t.t_nproc * sizeof(kmp_info_t *)); in __kmp_reallocate_team_arrays()
3145 static kmp_internal_control_t __kmp_get_x_global_icvs(const kmp_team_t *team) { in __kmp_get_x_global_icvs() argument
3150 copy_icvs(&gx_icvs, &team->t.t_threads[0]->th.th_current_task->td_icvs); in __kmp_get_x_global_icvs()
3258 kmp_team_p const *team // Team to add. in __kmp_print_structure_team_accum() argument
3269 if (team == NULL) { in __kmp_print_structure_team_accum()
3273 __kmp_print_structure_team_accum(list, team->t.t_parent); in __kmp_print_structure_team_accum()
3274 __kmp_print_structure_team_accum(list, team->t.t_next_pool); in __kmp_print_structure_team_accum()
3278 while (l->next != NULL && l->entry != team) { in __kmp_print_structure_team_accum()
3287 while (l->next != NULL && l->entry->t.t_id <= team->t.t_id) { in __kmp_print_structure_team_accum()
3296 l->entry = team; in __kmp_print_structure_team_accum()
3301 static void __kmp_print_structure_team(char const *title, kmp_team_p const *team in __kmp_print_structure_team() argument
3305 if (team != NULL) { in __kmp_print_structure_team()
3306 __kmp_printf("%2x %p\n", team->t.t_id, team); in __kmp_print_structure_team()
3406 kmp_team_p const *team = list->entry; in __kmp_print_structure() local
3408 __kmp_printf("Team %2x %p:\n", team->t.t_id, team); in __kmp_print_structure()
3409 __kmp_print_structure_team(" Parent Team: ", team->t.t_parent); in __kmp_print_structure()
3410 __kmp_printf(" Primary TID: %2d\n", team->t.t_master_tid); in __kmp_print_structure()
3411 __kmp_printf(" Max threads: %2d\n", team->t.t_max_nproc); in __kmp_print_structure()
3412 __kmp_printf(" Levels of serial: %2d\n", team->t.t_serialized); in __kmp_print_structure()
3413 __kmp_printf(" Number threads: %2d\n", team->t.t_nproc); in __kmp_print_structure()
3414 for (i = 0; i < team->t.t_nproc; ++i) { in __kmp_print_structure()
3416 __kmp_print_structure_thread("", team->t.t_threads[i]); in __kmp_print_structure()
3418 __kmp_print_structure_team(" Next in pool: ", team->t.t_next_pool); in __kmp_print_structure()
3881 kmp_team_t *team = hot_teams[level].hot_team; in __kmp_free_hot_teams() local
3886 kmp_info_t *th = team->t.t_threads[i]; in __kmp_free_hot_teams()
3894 __kmp_free_team(root, team, NULL); in __kmp_free_hot_teams()
4017 kmp_team_t *team = thread->th.th_team; in __kmp_unregister_root_current_thread() local
4026 __kmp_task_team_wait(thread, team USE_ITT_BUILD_ARG(NULL)); in __kmp_unregister_root_current_thread()
4066 kmp_team_t *team = this_thr->th.th_team; in __kmp_task_info() local
4071 gtid, tid, this_thr, team, steam, this_thr->th.th_current_task, in __kmp_task_info()
4072 team->t.t_implicit_task_taskdata[tid].td_parent); in __kmp_task_info()
4079 static void __kmp_initialize_info(kmp_info_t *this_thr, kmp_team_t *team, in __kmp_initialize_info() argument
4086 KMP_DEBUG_ASSERT(team); in __kmp_initialize_info()
4087 KMP_DEBUG_ASSERT(team->t.t_threads); in __kmp_initialize_info()
4088 KMP_DEBUG_ASSERT(team->t.t_dispatch); in __kmp_initialize_info()
4089 kmp_info_t *master = team->t.t_threads[0]; in __kmp_initialize_info()
4095 TCW_SYNC_PTR(this_thr->th.th_team, team); in __kmp_initialize_info()
4112 this_thr->th.th_team_nproc = team->t.t_nproc; in __kmp_initialize_info()
4114 this_thr->th.th_team_serialized = team->t.t_serialized; in __kmp_initialize_info()
4117 KMP_DEBUG_ASSERT(team->t.t_implicit_task_taskdata); in __kmp_initialize_info()
4123 team, tid, TRUE); in __kmp_initialize_info()
4131 this_thr->th.th_dispatch = &team->t.t_dispatch[tid]; in __kmp_initialize_info()
4179 (team->t.t_max_nproc == 1 ? 1 : __kmp_dispatch_num_buffers); in __kmp_initialize_info()
4181 team->t.t_max_nproc)); in __kmp_initialize_info()
4183 KMP_DEBUG_ASSERT(team->t.t_dispatch); in __kmp_initialize_info()
4184 KMP_DEBUG_ASSERT(dispatch == &team->t.t_dispatch[tid]); in __kmp_initialize_info()
4195 &dispatch->th_disp_buffer[team->t.t_max_nproc == 1 in __kmp_initialize_info()
4201 gtid, team->t.t_id, gtid); in __kmp_initialize_info()
4238 kmp_info_t *__kmp_allocate_thread(kmp_root_t *root, kmp_team_t *team, in __kmp_allocate_thread() argument
4245 KMP_DEBUG_ASSERT(root && team); in __kmp_allocate_thread()
4274 __kmp_initialize_info(new_thr, team, new_tid, in __kmp_allocate_thread()
4405 kmp_internal_control_t r_icvs = __kmp_get_x_global_icvs(team); in __kmp_allocate_thread()
4424 __kmp_initialize_info(new_thr, team, new_tid, new_gtid); in __kmp_allocate_thread()
4446 balign[b].bb.team = NULL; in __kmp_allocate_thread()
4517 static void __kmp_reinitialize_team(kmp_team_t *team, in __kmp_reinitialize_team() argument
4521 team->t.t_threads[0], team)); in __kmp_reinitialize_team()
4522 KMP_DEBUG_ASSERT(team && new_icvs); in __kmp_reinitialize_team()
4524 KMP_CHECK_UPDATE(team->t.t_ident, loc); in __kmp_reinitialize_team()
4526 KMP_CHECK_UPDATE(team->t.t_id, KMP_GEN_TEAM_ID()); in __kmp_reinitialize_team()
4528 __kmp_init_implicit_task(loc, team->t.t_threads[0], team, 0, FALSE); in __kmp_reinitialize_team()
4529 copy_icvs(&team->t.t_implicit_task_taskdata[0].td_icvs, new_icvs); in __kmp_reinitialize_team()
4532 team->t.t_threads[0], team)); in __kmp_reinitialize_team()
4538 static void __kmp_initialize_team(kmp_team_t *team, int new_nproc, in __kmp_initialize_team() argument
4541 KF_TRACE(10, ("__kmp_initialize_team: enter: team=%p\n", team)); in __kmp_initialize_team()
4544 KMP_DEBUG_ASSERT(team); in __kmp_initialize_team()
4545 KMP_DEBUG_ASSERT(new_nproc <= team->t.t_max_nproc); in __kmp_initialize_team()
4546 KMP_DEBUG_ASSERT(team->t.t_threads); in __kmp_initialize_team()
4549 team->t.t_master_tid = 0; /* not needed */ in __kmp_initialize_team()
4551 team->t.t_serialized = new_nproc > 1 ? 0 : 1; in __kmp_initialize_team()
4552 team->t.t_nproc = new_nproc; in __kmp_initialize_team()
4555 team->t.t_next_pool = NULL; in __kmp_initialize_team()
4559 TCW_SYNC_PTR(team->t.t_pkfn, NULL); /* not needed */ in __kmp_initialize_team()
4560 team->t.t_invoke = NULL; /* not needed */ in __kmp_initialize_team()
4563 team->t.t_sched.sched = new_icvs->sched.sched; in __kmp_initialize_team()
4566 team->t.t_fp_control_saved = FALSE; /* not needed */ in __kmp_initialize_team()
4567 team->t.t_x87_fpu_control_word = 0; /* not needed */ in __kmp_initialize_team()
4568 team->t.t_mxcsr = 0; /* not needed */ in __kmp_initialize_team()
4571 team->t.t_construct = 0; in __kmp_initialize_team()
4573 team->t.t_ordered.dt.t_value = 0; in __kmp_initialize_team()
4574 team->t.t_master_active = FALSE; in __kmp_initialize_team()
4577 team->t.t_copypriv_data = NULL; /* not necessary, but nice for debugging */ in __kmp_initialize_team()
4580 team->t.t_copyin_counter = 0; /* for barrier-free copyin implementation */ in __kmp_initialize_team()
4583 team->t.t_control_stack_top = NULL; in __kmp_initialize_team()
4585 __kmp_reinitialize_team(team, new_icvs, loc); in __kmp_initialize_team()
4588 KF_TRACE(10, ("__kmp_initialize_team: exit: team=%p\n", team)); in __kmp_initialize_team()
4616 static void __kmp_partition_places(kmp_team_t *team, int update_master_only) { in __kmp_partition_places() argument
4618 if (KMP_HIDDEN_HELPER_TEAM(team)) in __kmp_partition_places()
4621 kmp_info_t *master_th = team->t.t_threads[0]; in __kmp_partition_places()
4623 kmp_proc_bind_t proc_bind = team->t.t_proc_bind; in __kmp_partition_places()
4627 team->t.t_first_place = first_place; in __kmp_partition_places()
4628 team->t.t_last_place = last_place; in __kmp_partition_places()
4632 proc_bind, __kmp_gtid_from_thread(team->t.t_threads[0]), in __kmp_partition_places()
4633 team->t.t_id, masters_place, first_place, last_place)); in __kmp_partition_places()
4640 KMP_DEBUG_ASSERT(team->t.t_nproc == 1); in __kmp_partition_places()
4645 int n_th = team->t.t_nproc; in __kmp_partition_places()
4647 kmp_info_t *th = team->t.t_threads[f]; in __kmp_partition_places()
4653 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4654 team->t.t_display_affinity = 1; in __kmp_partition_places()
4659 __kmp_gtid_from_thread(team->t.t_threads[f]), team->t.t_id, in __kmp_partition_places()
4666 int n_th = team->t.t_nproc; in __kmp_partition_places()
4676 kmp_info_t *th = team->t.t_threads[f]; in __kmp_partition_places()
4690 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4691 team->t.t_display_affinity = 1; in __kmp_partition_places()
4696 __kmp_gtid_from_thread(team->t.t_threads[f]), in __kmp_partition_places()
4697 team->t.t_id, f, place, first_place, last_place)); in __kmp_partition_places()
4708 kmp_info_t *th = team->t.t_threads[f]; in __kmp_partition_places()
4715 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4716 team->t.t_display_affinity = 1; in __kmp_partition_places()
4749 __kmp_gtid_from_thread(team->t.t_threads[f]), team->t.t_id, f, in __kmp_partition_places()
4758 int n_th = team->t.t_nproc; in __kmp_partition_places()
4781 kmp_info_t *th = team->t.t_threads[f]; in __kmp_partition_places()
4787 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4788 team->t.t_display_affinity = 1; in __kmp_partition_places()
4826 __kmp_gtid_from_thread(team->t.t_threads[f]), team->t.t_id, in __kmp_partition_places()
4876 th = team->t.t_threads[f]; in __kmp_partition_places()
4882 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4883 team->t.t_display_affinity = 1; in __kmp_partition_places()
4888 __kmp_gtid_from_thread(team->t.t_threads[f]), in __kmp_partition_places()
4889 team->t.t_id, f, th->th.th_new_place, in __kmp_partition_places()
4907 kmp_info_t *th = team->t.t_threads[f]; in __kmp_partition_places()
4914 team->t.t_display_affinity != 1) { in __kmp_partition_places()
4915 team->t.t_display_affinity = 1; in __kmp_partition_places()
4947 __kmp_gtid_from_thread(team->t.t_threads[f]), in __kmp_partition_places()
4948 team->t.t_id, f, th->th.th_new_place, in __kmp_partition_places()
4959 KA_TRACE(20, ("__kmp_partition_places: exit T#%d\n", team->t.t_id)); in __kmp_partition_places()
4976 kmp_team_t *team; in __kmp_allocate_team() local
4988 team = master->th.th_team; in __kmp_allocate_team()
4989 level = team->t.t_active_level; in __kmp_allocate_team()
4993 team->t.t_pkfn == in __kmp_allocate_team()
4996 team->t.t_level)) { // or nested parallel inside the teams in __kmp_allocate_team()
5018 team = hot_teams[level].hot_team; in __kmp_allocate_team()
5020 team = root->r.r_hot_team; in __kmp_allocate_team()
5026 team->t.t_task_team[0], team->t.t_task_team[1])); in __kmp_allocate_team()
5033 if (team->t.t_nproc == new_nproc) { // Check changes in number of threads in __kmp_allocate_team()
5037 if (team->t.t_size_changed == -1) { in __kmp_allocate_team()
5038 team->t.t_size_changed = 1; in __kmp_allocate_team()
5040 KMP_CHECK_UPDATE(team->t.t_size_changed, 0); in __kmp_allocate_team()
5046 KMP_CHECK_UPDATE(team->t.t_sched.sched, new_sched.sched); in __kmp_allocate_team()
5048 __kmp_reinitialize_team(team, new_icvs, in __kmp_allocate_team()
5052 team->t.t_threads[0], team)); in __kmp_allocate_team()
5053 __kmp_push_current_task_to_thread(team->t.t_threads[0], team, 0); in __kmp_allocate_team()
5056 if ((team->t.t_size_changed == 0) && in __kmp_allocate_team()
5057 (team->t.t_proc_bind == new_proc_bind)) { in __kmp_allocate_team()
5060 team, 1); // add flag to update only master for spread in __kmp_allocate_team()
5064 team->t.t_id, new_proc_bind, team->t.t_first_place, in __kmp_allocate_team()
5065 team->t.t_last_place)); in __kmp_allocate_team()
5067 KMP_CHECK_UPDATE(team->t.t_proc_bind, new_proc_bind); in __kmp_allocate_team()
5068 __kmp_partition_places(team); in __kmp_allocate_team()
5071 KMP_CHECK_UPDATE(team->t.t_proc_bind, new_proc_bind); in __kmp_allocate_team()
5073 } else if (team->t.t_nproc > new_nproc) { in __kmp_allocate_team()
5078 team->t.t_size_changed = 1; in __kmp_allocate_team()
5083 KMP_DEBUG_ASSERT(hot_teams[level].hot_team_nth == team->t.t_nproc); in __kmp_allocate_team()
5087 for (f = new_nproc; f < team->t.t_nproc; f++) { in __kmp_allocate_team()
5088 KMP_DEBUG_ASSERT(team->t.t_threads[f]); in __kmp_allocate_team()
5092 team->t.t_threads[f]->th.th_task_team = NULL; in __kmp_allocate_team()
5094 __kmp_free_thread(team->t.t_threads[f]); in __kmp_allocate_team()
5095 team->t.t_threads[f] = NULL; in __kmp_allocate_team()
5102 for (f = new_nproc; f < team->t.t_nproc; ++f) { in __kmp_allocate_team()
5103 KMP_DEBUG_ASSERT(team->t.t_threads[f]); in __kmp_allocate_team()
5104 kmp_balign_t *balign = team->t.t_threads[f]->th.th_bar; in __kmp_allocate_team()
5114 team->t.t_nproc = new_nproc; in __kmp_allocate_team()
5116 KMP_CHECK_UPDATE(team->t.t_sched.sched, new_icvs->sched.sched); in __kmp_allocate_team()
5117 __kmp_reinitialize_team(team, new_icvs, in __kmp_allocate_team()
5122 team->t.t_threads[f]->th.th_team_nproc = new_nproc; in __kmp_allocate_team()
5128 team->t.t_threads[0], team)); in __kmp_allocate_team()
5130 __kmp_push_current_task_to_thread(team->t.t_threads[0], team, 0); in __kmp_allocate_team()
5133 for (f = 0; f < team->t.t_nproc; f++) { in __kmp_allocate_team()
5134 KMP_DEBUG_ASSERT(team->t.t_threads[f] && in __kmp_allocate_team()
5135 team->t.t_threads[f]->th.th_team_nproc == in __kmp_allocate_team()
5136 team->t.t_nproc); in __kmp_allocate_team()
5140 KMP_CHECK_UPDATE(team->t.t_proc_bind, new_proc_bind); in __kmp_allocate_team()
5142 __kmp_partition_places(team); in __kmp_allocate_team()
5156 team->t.t_size_changed = 1; in __kmp_allocate_team()
5162 kmp_info_t **other_threads = team->t.t_threads; in __kmp_allocate_team()
5163 for (f = team->t.t_nproc; f < avail_threads; ++f) { in __kmp_allocate_team()
5169 balign[b].bb.b_arrived = team->t.t_bar[b].b_arrived; in __kmp_allocate_team()
5172 balign[b].bb.b_worker_arrived = team->t.t_bar[b].b_team_arrived; in __kmp_allocate_team()
5180 team->t.t_nproc = new_nproc; // just get reserved threads involved in __kmp_allocate_team()
5183 team->t.t_nproc = in __kmp_allocate_team()
5188 if (team->t.t_max_nproc < new_nproc) { in __kmp_allocate_team()
5190 __kmp_reallocate_team_arrays(team, new_nproc); in __kmp_allocate_team()
5191 __kmp_reinitialize_team(team, new_icvs, NULL); in __kmp_allocate_team()
5204 for (f = team->t.t_nproc; f < new_nproc; f++) { in __kmp_allocate_team()
5205 kmp_info_t *new_worker = __kmp_allocate_thread(root, team, f); in __kmp_allocate_team()
5207 team->t.t_threads[f] = new_worker; in __kmp_allocate_team()
5212 team->t.t_id, __kmp_gtid_from_tid(f, team), team->t.t_id, f, in __kmp_allocate_team()
5213 team->t.t_bar[bs_forkjoin_barrier].b_arrived, in __kmp_allocate_team()
5214 team->t.t_bar[bs_plain_barrier].b_arrived)); in __kmp_allocate_team()
5220 balign[b].bb.b_arrived = team->t.t_bar[b].b_arrived; in __kmp_allocate_team()
5224 balign[b].bb.b_worker_arrived = team->t.t_bar[b].b_team_arrived; in __kmp_allocate_team()
5241 int old_nproc = team->t.t_nproc; // save old value and use to update only in __kmp_allocate_team()
5243 __kmp_initialize_team(team, new_nproc, new_icvs, in __kmp_allocate_team()
5247 KMP_DEBUG_ASSERT(team->t.t_nproc == new_nproc); in __kmp_allocate_team()
5248 for (f = 0; f < team->t.t_nproc; ++f) in __kmp_allocate_team()
5249 __kmp_initialize_info(team->t.t_threads[f], team, f, in __kmp_allocate_team()
5250 __kmp_gtid_from_tid(f, team)); in __kmp_allocate_team()
5258 for (f = old_nproc; f < team->t.t_nproc; ++f) in __kmp_allocate_team()
5259 team->t.t_threads[f]->th.th_task_state = in __kmp_allocate_team()
5260 team->t.t_threads[0]->th.th_task_state_memo_stack[level]; in __kmp_allocate_team()
5263 kmp_uint8 old_state = team->t.t_threads[0]->th.th_task_state; in __kmp_allocate_team()
5264 for (f = old_nproc; f < team->t.t_nproc; ++f) in __kmp_allocate_team()
5265 team->t.t_threads[f]->th.th_task_state = old_state; in __kmp_allocate_team()
5269 for (f = 0; f < team->t.t_nproc; ++f) { in __kmp_allocate_team()
5270 KMP_DEBUG_ASSERT(team->t.t_threads[f] && in __kmp_allocate_team()
5271 team->t.t_threads[f]->th.th_team_nproc == in __kmp_allocate_team()
5272 team->t.t_nproc); in __kmp_allocate_team()
5276 KMP_CHECK_UPDATE(team->t.t_proc_bind, new_proc_bind); in __kmp_allocate_team()
5278 __kmp_partition_places(team); in __kmp_allocate_team()
5282 kmp_info_t *master = team->t.t_threads[0]; in __kmp_allocate_team()
5286 kmp_info_t *thr = team->t.t_threads[f]; in __kmp_allocate_team()
5297 kmp_info_t *thr = team->t.t_threads[f]; in __kmp_allocate_team()
5301 balign[b].bb.b_arrived = team->t.t_bar[b].b_arrived; in __kmp_allocate_team()
5304 balign[b].bb.b_worker_arrived = team->t.t_bar[b].b_team_arrived; in __kmp_allocate_team()
5312 __kmp_alloc_argv_entries(argc, team, TRUE); in __kmp_allocate_team()
5313 KMP_CHECK_UPDATE(team->t.t_argc, argc); in __kmp_allocate_team()
5317 KF_TRACE(10, (" hot_team = %p\n", team)); in __kmp_allocate_team()
5323 team->t.t_task_team[0], team->t.t_task_team[1])); in __kmp_allocate_team()
5328 __ompt_team_assign_id(team, ompt_parallel_data); in __kmp_allocate_team()
5333 return team; in __kmp_allocate_team()
5338 for (team = CCAST(kmp_team_t *, __kmp_team_pool); (team);) { in __kmp_allocate_team()
5341 if (team->t.t_max_nproc >= max_nproc) { in __kmp_allocate_team()
5343 __kmp_team_pool = team->t.t_next_pool; in __kmp_allocate_team()
5346 __kmp_initialize_team(team, new_nproc, new_icvs, NULL); in __kmp_allocate_team()
5350 &team->t.t_task_team[0], &team->t.t_task_team[1])); in __kmp_allocate_team()
5351 team->t.t_task_team[0] = NULL; in __kmp_allocate_team()
5352 team->t.t_task_team[1] = NULL; in __kmp_allocate_team()
5355 __kmp_alloc_argv_entries(argc, team, TRUE); in __kmp_allocate_team()
5356 KMP_CHECK_UPDATE(team->t.t_argc, argc); in __kmp_allocate_team()
5360 team->t.t_id, KMP_INIT_BARRIER_STATE, KMP_INIT_BARRIER_STATE)); in __kmp_allocate_team()
5364 team->t.t_bar[b].b_arrived = KMP_INIT_BARRIER_STATE; in __kmp_allocate_team()
5366 team->t.t_bar[b].b_master_arrived = 0; in __kmp_allocate_team()
5367 team->t.t_bar[b].b_team_arrived = 0; in __kmp_allocate_team()
5372 team->t.t_proc_bind = new_proc_bind; in __kmp_allocate_team()
5375 team->t.t_id)); in __kmp_allocate_team()
5378 __ompt_team_assign_id(team, ompt_parallel_data); in __kmp_allocate_team()
5383 return team; in __kmp_allocate_team()
5390 team = __kmp_reap_team(team); in __kmp_allocate_team()
5391 __kmp_team_pool = team; in __kmp_allocate_team()
5396 team = (kmp_team_t *)__kmp_allocate(sizeof(kmp_team_t)); in __kmp_allocate_team()
5399 team->t.t_max_nproc = max_nproc; in __kmp_allocate_team()
5402 __kmp_allocate_team_arrays(team, max_nproc); in __kmp_allocate_team()
5405 __kmp_initialize_team(team, new_nproc, new_icvs, NULL); in __kmp_allocate_team()
5409 &team->t.t_task_team[0], &team->t.t_task_team[1])); in __kmp_allocate_team()
5410 team->t.t_task_team[0] = NULL; // to be removed, as __kmp_allocate zeroes in __kmp_allocate_team()
5412 team->t.t_task_team[1] = NULL; // to be removed, as __kmp_allocate zeroes in __kmp_allocate_team()
5416 __kmp_print_team_storage_map("team", team, team->t.t_id, new_nproc); in __kmp_allocate_team()
5420 __kmp_alloc_argv_entries(argc, team, FALSE); in __kmp_allocate_team()
5421 team->t.t_argc = argc; in __kmp_allocate_team()
5425 team->t.t_id, KMP_INIT_BARRIER_STATE, KMP_INIT_BARRIER_STATE)); in __kmp_allocate_team()
5429 team->t.t_bar[b].b_arrived = KMP_INIT_BARRIER_STATE; in __kmp_allocate_team()
5431 team->t.t_bar[b].b_master_arrived = 0; in __kmp_allocate_team()
5432 team->t.t_bar[b].b_team_arrived = 0; in __kmp_allocate_team()
5437 team->t.t_proc_bind = new_proc_bind; in __kmp_allocate_team()
5440 __ompt_team_assign_id(team, ompt_parallel_data); in __kmp_allocate_team()
5441 team->t.ompt_serialized_team_info = NULL; in __kmp_allocate_team()
5447 team->t.t_id)); in __kmp_allocate_team()
5449 return team; in __kmp_allocate_team()
5458 kmp_team_t *team USE_NESTED_HOT_ARG(kmp_info_t *master)) { in __kmp_free_team()
5461 team->t.t_id)); in __kmp_free_team()
5465 KMP_DEBUG_ASSERT(team); in __kmp_free_team()
5466 KMP_DEBUG_ASSERT(team->t.t_nproc <= team->t.t_max_nproc); in __kmp_free_team()
5467 KMP_DEBUG_ASSERT(team->t.t_threads); in __kmp_free_team()
5469 int use_hot_team = team == root->r.r_hot_team; in __kmp_free_team()
5474 level = team->t.t_active_level - 1; in __kmp_free_team()
5480 if (team->t.t_pkfn != (microtask_t)__kmp_teams_master && in __kmp_free_team()
5481 master->th.th_teams_level == team->t.t_level) { in __kmp_free_team()
5488 KMP_DEBUG_ASSERT(team == hot_teams[level].hot_team); in __kmp_free_team()
5495 TCW_SYNC_PTR(team->t.t_pkfn, in __kmp_free_team()
5498 team->t.t_copyin_counter = 0; // init counter for possible reuse in __kmp_free_team()
5506 for (f = 1; f < team->t.t_nproc; ++f) { in __kmp_free_team()
5507 KMP_DEBUG_ASSERT(team->t.t_threads[f]); in __kmp_free_team()
5508 kmp_info_t *th = team->t.t_threads[f]; in __kmp_free_team()
5530 kmp_task_team_t *task_team = team->t.t_task_team[tt_idx]; in __kmp_free_team()
5532 for (f = 0; f < team->t.t_nproc; ++f) { // threads unref task teams in __kmp_free_team()
5533 KMP_DEBUG_ASSERT(team->t.t_threads[f]); in __kmp_free_team()
5534 team->t.t_threads[f]->th.th_task_team = NULL; in __kmp_free_team()
5539 __kmp_get_gtid(), task_team, team->t.t_id)); in __kmp_free_team()
5543 team->t.t_task_team[tt_idx] = NULL; in __kmp_free_team()
5549 team->t.t_parent = NULL; in __kmp_free_team()
5550 team->t.t_level = 0; in __kmp_free_team()
5551 team->t.t_active_level = 0; in __kmp_free_team()
5554 for (f = 1; f < team->t.t_nproc; ++f) { in __kmp_free_team()
5555 KMP_DEBUG_ASSERT(team->t.t_threads[f]); in __kmp_free_team()
5556 __kmp_free_thread(team->t.t_threads[f]); in __kmp_free_team()
5557 team->t.t_threads[f] = NULL; in __kmp_free_team()
5562 team->t.t_next_pool = CCAST(kmp_team_t *, __kmp_team_pool); in __kmp_free_team()
5563 __kmp_team_pool = (volatile kmp_team_t *)team; in __kmp_free_team()
5566 KMP_DEBUG_ASSERT(team->t.t_threads[1] && in __kmp_free_team()
5567 team->t.t_threads[1]->th.th_cg_roots); in __kmp_free_team()
5568 if (team->t.t_threads[1]->th.th_cg_roots->cg_root == team->t.t_threads[1]) { in __kmp_free_team()
5570 for (f = 1; f < team->t.t_nproc; ++f) { in __kmp_free_team()
5571 kmp_info_t *thr = team->t.t_threads[f]; in __kmp_free_team()
5596 kmp_team_t *__kmp_reap_team(kmp_team_t *team) { in __kmp_reap_team() argument
5597 kmp_team_t *next_pool = team->t.t_next_pool; in __kmp_reap_team()
5599 KMP_DEBUG_ASSERT(team); in __kmp_reap_team()
5600 KMP_DEBUG_ASSERT(team->t.t_dispatch); in __kmp_reap_team()
5601 KMP_DEBUG_ASSERT(team->t.t_disp_buffer); in __kmp_reap_team()
5602 KMP_DEBUG_ASSERT(team->t.t_threads); in __kmp_reap_team()
5603 KMP_DEBUG_ASSERT(team->t.t_argv); in __kmp_reap_team()
5608 __kmp_free_team_arrays(team); in __kmp_reap_team()
5609 if (team->t.t_argv != &team->t.t_inline_argv[0]) in __kmp_reap_team()
5610 __kmp_free((void *)team->t.t_argv); in __kmp_reap_team()
5611 __kmp_free(team); in __kmp_reap_team()
5658 balign[b].bb.team = NULL; in __kmp_free_thread()
6131 kmp_team_t *team = CCAST(kmp_team_t *, __kmp_team_pool); in __kmp_internal_end() local
6132 __kmp_team_pool = team->t.t_next_pool; in __kmp_internal_end()
6134 team->t.t_next_pool = NULL; in __kmp_internal_end()
6135 __kmp_reap_team(team); in __kmp_internal_end()
7255 kmp_team_t *team) { in __kmp_run_before_invoked_task() argument
7267 KMP_DEBUG_ASSERT(team->t.t_dispatch); in __kmp_run_before_invoked_task()
7274 __kmp_push_parallel(gtid, team->t.t_ident); in __kmp_run_before_invoked_task()
7280 kmp_team_t *team) { in __kmp_run_after_invoked_task() argument
7282 __kmp_pop_parallel(gtid, team->t.t_ident); in __kmp_run_after_invoked_task()
7291 kmp_team_t *team = this_thr->th.th_team; in __kmp_invoke_task_func() local
7293 __kmp_run_before_invoked_task(gtid, tid, this_thr, team); in __kmp_invoke_task_func()
7297 if (team->t.t_stack_id != NULL) { in __kmp_invoke_task_func()
7298 __kmp_itt_stack_callee_enter((__itt_caller)team->t.t_stack_id); in __kmp_invoke_task_func()
7300 KMP_DEBUG_ASSERT(team->t.t_parent->t.t_stack_id != NULL); in __kmp_invoke_task_func()
7302 (__itt_caller)team->t.t_parent->t.t_stack_id); in __kmp_invoke_task_func()
7318 exit_frame_p = &(team->t.t_implicit_task_taskdata[tid] in __kmp_invoke_task_func()
7325 &(team->t.t_implicit_task_taskdata[tid].ompt_task_info.task_data); in __kmp_invoke_task_func()
7326 my_parallel_data = &(team->t.ompt_team_info.parallel_data); in __kmp_invoke_task_func()
7328 ompt_team_size = team->t.t_nproc; in __kmp_invoke_task_func()
7346 rc = __kmp_invoke_microtask((microtask_t)TCR_SYNC_PTR(team->t.t_pkfn), gtid, in __kmp_invoke_task_func()
7347 tid, (int)team->t.t_argc, (void **)team->t.t_argv in __kmp_invoke_task_func()
7368 if (team->t.t_stack_id != NULL) { in __kmp_invoke_task_func()
7369 __kmp_itt_stack_callee_leave((__itt_caller)team->t.t_stack_id); in __kmp_invoke_task_func()
7371 KMP_DEBUG_ASSERT(team->t.t_parent->t.t_stack_id != NULL); in __kmp_invoke_task_func()
7373 (__itt_caller)team->t.t_parent->t.t_stack_id); in __kmp_invoke_task_func()
7377 __kmp_run_after_invoked_task(gtid, tid, this_thr, team); in __kmp_invoke_task_func()
7385 kmp_team_t *team = thr->th.th_team; in __kmp_teams_master() local
7386 ident_t *loc = team->t.t_ident; in __kmp_teams_master()
7410 __kmp_fork_call(loc, gtid, fork_context_intel, team->t.t_argc, in __kmp_teams_master()
7432 kmp_team_t *team = this_thr->th.th_team; in __kmp_invoke_teams_master() local
7438 __kmp_run_before_invoked_task(gtid, 0, this_thr, team); in __kmp_invoke_teams_master()
7442 &team->t.t_implicit_task_taskdata[tid].ompt_task_info.task_data; in __kmp_invoke_teams_master()
7443 ompt_data_t *parallel_data = &team->t.ompt_team_info.parallel_data; in __kmp_invoke_teams_master()
7446 ompt_scope_begin, parallel_data, task_data, team->t.t_nproc, tid, in __kmp_invoke_teams_master()
7455 __kmp_run_after_invoked_task(gtid, 0, this_thr, team); in __kmp_invoke_teams_master()
7625 void __kmp_internal_fork(ident_t *id, int gtid, kmp_team_t *team) { in __kmp_internal_fork() argument
7632 KMP_DEBUG_ASSERT(team); in __kmp_internal_fork()
7633 KMP_DEBUG_ASSERT(this_thr->th.th_team == team); in __kmp_internal_fork()
7637 team->t.t_construct = 0; /* no single directives seen yet */ in __kmp_internal_fork()
7638 team->t.t_ordered.dt.t_value = in __kmp_internal_fork()
7642 KMP_DEBUG_ASSERT(team->t.t_disp_buffer); in __kmp_internal_fork()
7643 if (team->t.t_max_nproc > 1) { in __kmp_internal_fork()
7646 team->t.t_disp_buffer[i].buffer_index = i; in __kmp_internal_fork()
7647 team->t.t_disp_buffer[i].doacross_buf_idx = i; in __kmp_internal_fork()
7650 team->t.t_disp_buffer[0].buffer_index = 0; in __kmp_internal_fork()
7651 team->t.t_disp_buffer[0].doacross_buf_idx = 0; in __kmp_internal_fork()
7655 KMP_ASSERT(this_thr->th.th_team == team); in __kmp_internal_fork()
7658 for (f = 0; f < team->t.t_nproc; f++) { in __kmp_internal_fork()
7659 KMP_DEBUG_ASSERT(team->t.t_threads[f] && in __kmp_internal_fork()
7660 team->t.t_threads[f]->th.th_team_nproc == team->t.t_nproc); in __kmp_internal_fork()
7668 void __kmp_internal_join(ident_t *id, int gtid, kmp_team_t *team) { in __kmp_internal_join() argument
7671 KMP_DEBUG_ASSERT(team); in __kmp_internal_join()
7672 KMP_DEBUG_ASSERT(this_thr->th.th_team == team); in __kmp_internal_join()
7680 __kmp_threads[gtid]->th.th_team_nproc != team->t.t_nproc) { in __kmp_internal_join()
7685 gtid, __kmp_threads[gtid]->th.th_team_nproc, team, in __kmp_internal_join()
7686 team->t.t_nproc); in __kmp_internal_join()
7690 __kmp_threads[gtid]->th.th_team_nproc == team->t.t_nproc); in __kmp_internal_join()
7727 KMP_ASSERT(this_thr->th.th_team == team); in __kmp_internal_join()
8080 kmp_team_t *team = thr->th.th_team; in __kmp_aux_get_team_info() local
8082 int ii = team->t.t_level; in __kmp_aux_get_team_info()
8083 teams_serialized = team->t.t_serialized; in __kmp_aux_get_team_info()
8087 for (teams_serialized = team->t.t_serialized; in __kmp_aux_get_team_info()
8090 if (team->t.t_serialized && (!teams_serialized)) { in __kmp_aux_get_team_info()
8091 team = team->t.t_parent; in __kmp_aux_get_team_info()
8095 team = team->t.t_parent; in __kmp_aux_get_team_info()
8099 return team; in __kmp_aux_get_team_info()
8106 kmp_team_t *team = __kmp_aux_get_team_info(serialized); in __kmp_aux_get_team_num() local
8107 if (team) { in __kmp_aux_get_team_num()
8111 return team->t.t_master_tid; in __kmp_aux_get_team_num()
8119 kmp_team_t *team = __kmp_aux_get_team_info(serialized); in __kmp_aux_get_num_teams() local
8120 if (team) { in __kmp_aux_get_num_teams()
8124 return team->t.t_parent->t.t_nproc; in __kmp_aux_get_num_teams()