reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1055 if (!thr_bar->use_oncore_barrier || 1056 __kmp_dflt_blocktime != KMP_MAX_BLOCKTIME || thr_bar->my_level != 0 || 1057 thr_bar->team == NULL) { 1059 thr_bar->wait_flag = KMP_BARRIER_OWN_FLAG; 1060 kmp_flag_64 flag(&thr_bar->b_go, KMP_BARRIER_STATE_BUMP); 1063 TCW_8(thr_bar->b_go, 1068 thr_bar->wait_flag = KMP_BARRIER_PARENT_FLAG; 1069 kmp_flag_oncore flag(&thr_bar->parent_bar->b_go, KMP_BARRIER_STATE_BUMP, 1070 thr_bar->offset, bt, 1073 if (thr_bar->wait_flag == 1075 TCW_8(thr_bar->b_go, 1079 &(thr_bar->parent_bar->b_go)))[thr_bar->offset] = 0; 1079 &(thr_bar->parent_bar->b_go)))[thr_bar->offset] = 0; 1082 thr_bar->wait_flag = KMP_BARRIER_NOT_WAITING; 1109 thr_bar->use_oncore_barrier = 1; 1111 thr_bar->use_oncore_barrier = 0; // Do not use oncore barrier when nested 1115 unsigned short int old_leaf_kids = thr_bar->leaf_kids; 1116 kmp_uint64 old_leaf_state = thr_bar->leaf_state; 1117 team_change = __kmp_init_hierarchical_barrier_thread(bt, thr_bar, nproc, gtid, 1129 copy_icvs(&thr_bar->th_fixed_icvs, 1132 thr_bar->use_oncore_barrier) { // optimization for inf blocktime 1133 if (!thr_bar->my_level) // I'm a leaf in the hierarchy (my_level==0) 1137 &thr_bar->parent_bar->th_fixed_icvs); 1140 if (thr_bar->my_level) // not a leaf; copy ICVs to my fixed ICVs child can 1142 copy_icvs(&thr_bar->th_fixed_icvs, &thr_bar->parent_bar->th_fixed_icvs); 1142 copy_icvs(&thr_bar->th_fixed_icvs, &thr_bar->parent_bar->th_fixed_icvs); 1145 &thr_bar->parent_bar->th_fixed_icvs); 1151 if (thr_bar->my_level) { // not a leaf 1155 thr_bar->use_oncore_barrier) { 1159 thr_bar->b_go = KMP_BARRIER_STATE_BUMP; 1165 for (child_tid = thr_bar->skip_per_level[1]; child_tid < (int)nproc; 1166 child_tid += thr_bar->skip_per_level[1]) { 1178 ngo_store_go(&child_bar->th_fixed_icvs, &thr_bar->th_fixed_icvs); 1182 TCW_8(thr_bar->b_go, 1185 if (thr_bar->leaf_kids) { // if there are any 1188 old_leaf_kids < thr_bar->leaf_kids) { // some old, some new 1190 thr_bar->b_go |= old_leaf_state; 1193 last = tid + thr_bar->skip_per_level[1]; 1214 thr_bar->b_go |= thr_bar->leaf_state; 1214 thr_bar->b_go |= thr_bar->leaf_state; 1218 for (int d = thr_bar->my_level - 1; d >= 0; 1220 last = tid + thr_bar->skip_per_level[d + 1]; 1221 kmp_uint32 skip = thr_bar->skip_per_level[d]; 1244 &thr_bar->th_fixed_icvs);