Lines Matching refs:node

36 static void __kmp_init_node(kmp_depnode_t *node) {  in __kmp_init_node()  argument
37 node->dn.successors = NULL; in __kmp_init_node()
38 node->dn.task = NULL; // will point to the right task in __kmp_init_node()
41 node->dn.mtx_locks[i] = NULL; in __kmp_init_node()
42 node->dn.mtx_num_locks = 0; in __kmp_init_node()
43 __kmp_init_lock(&node->dn.lock); in __kmp_init_node()
44 KMP_ATOMIC_ST_RLX(&node->dn.nrefs, 1); // init creates the first reference in __kmp_init_node()
46 node->dn.id = KMP_ATOMIC_INC(&kmp_node_id_seed); in __kmp_init_node()
49 __itt_sync_create(node, "OMP task dep node", NULL, 0); in __kmp_init_node()
53 static inline kmp_depnode_t *__kmp_node_ref(kmp_depnode_t *node) { in __kmp_node_ref() argument
54 KMP_ATOMIC_INC(&node->dn.nrefs); in __kmp_node_ref()
55 return node; in __kmp_node_ref()
201 kmp_depnode_t *node) { in __kmp_add_node() argument
212 new_head->node = __kmp_node_ref(node); in __kmp_add_node()
299 kmp_task_t *task, kmp_depnode_t *node, in __kmp_depnode_link_successor() argument
306 kmp_depnode_t *dep = p->node; in __kmp_depnode_link_successor()
314 __kmp_track_dependence(gtid, dep, node, task); in __kmp_depnode_link_successor()
320 if (!dep->dn.successors || dep->dn.successors->node != node) { in __kmp_depnode_link_successor()
324 __kmp_track_dependence(gtid, dep, node, task); in __kmp_depnode_link_successor()
325 dep->dn.successors = __kmp_add_node(thread, dep->dn.successors, node); in __kmp_depnode_link_successor()
362 if (!sink->dn.successors || sink->dn.successors->node != source) { in __kmp_depnode_link_successor()
394 __kmp_process_dep_all(kmp_int32 gtid, kmp_depnode_t *node, kmp_dephash_t *h, in __kmp_process_dep_all() argument
404 __kmp_depnode_link_successor(gtid, thread, task, node, h->last_all); in __kmp_process_dep_all()
407 h->last_all = __kmp_node_ref(node); in __kmp_process_dep_all()
427 __kmp_depnode_link_successor(gtid, thread, task, node, last_set); in __kmp_process_dep_all()
435 __kmp_depnode_link_successor(gtid, thread, task, node, last_out); in __kmp_process_dep_all()
439 info->last_out = __kmp_node_ref(node); in __kmp_process_dep_all()
452 __kmp_process_deps(kmp_int32 gtid, kmp_depnode_t *node, kmp_dephash_t **hash, in __kmp_process_deps() argument
476 __kmp_depnode_link_successor(gtid, thread, task, node, last_set); in __kmp_process_deps()
484 __kmp_depnode_link_successor(gtid, thread, task, node, last_out); in __kmp_process_deps()
488 info->last_out = __kmp_node_ref(node); in __kmp_process_deps()
500 __kmp_depnode_link_successor(gtid, thread, task, node, last_out); in __kmp_process_deps()
503 __kmp_depnode_link_successor(gtid, thread, task, node, prev_set); in __kmp_process_deps()
514 __kmp_depnode_link_successor(gtid, thread, task, node, last_set); in __kmp_process_deps()
533 info->last_set = __kmp_add_node(thread, info->last_set, node); in __kmp_process_deps()
541 KMP_DEBUG_ASSERT(node->dn.mtx_num_locks < MAX_MTX_DEPS); in __kmp_process_deps()
546 if (node->dn.mtx_locks[m] < info->mtx_lock) { in __kmp_process_deps()
547 KMP_DEBUG_ASSERT(!node->dn.mtx_locks[node->dn.mtx_num_locks]); in __kmp_process_deps()
548 for (int n = node->dn.mtx_num_locks; n > m; --n) { in __kmp_process_deps()
550 KMP_DEBUG_ASSERT(node->dn.mtx_locks[n - 1] != NULL); in __kmp_process_deps()
551 node->dn.mtx_locks[n] = node->dn.mtx_locks[n - 1]; in __kmp_process_deps()
553 node->dn.mtx_locks[m] = info->mtx_lock; in __kmp_process_deps()
558 node->dn.mtx_num_locks++; in __kmp_process_deps()
571 static bool __kmp_check_deps(kmp_int32 gtid, kmp_depnode_t *node, in __kmp_check_deps() argument
626 node->dn.npredecessors = -1; in __kmp_check_deps()
633 npredecessors = __kmp_process_deps<true>(gtid, node, hash, dep_barrier, in __kmp_check_deps()
636 gtid, node, hash, dep_barrier, ndeps_noalias, noalias_dep_list, task); in __kmp_check_deps()
638 npredecessors = __kmp_process_dep_all(gtid, node, *hash, dep_barrier, task); in __kmp_check_deps()
641 node->dn.task = task; in __kmp_check_deps()
651 node->dn.npredecessors.fetch_add(npredecessors) + npredecessors; in __kmp_check_deps()
821 kmp_depnode_t *node = in __kmpc_omp_task_with_deps() local
824 kmp_depnode_t *node = in __kmpc_omp_task_with_deps() local
828 __kmp_init_node(node); in __kmpc_omp_task_with_deps()
829 new_taskdata->td_depnode = node; in __kmpc_omp_task_with_deps()
831 if (__kmp_check_deps(gtid, node, new_task, &current_task->td_dephash, in __kmpc_omp_task_with_deps()
1009 kmp_depnode_t node = {0}; in __kmpc_omp_taskwait_deps_51() local
1010 __kmp_init_node(&node); in __kmpc_omp_taskwait_deps_51()
1012 if (!__kmp_check_deps(gtid, &node, NULL, &current_task->td_dephash, in __kmpc_omp_taskwait_deps_51()
1026 (std::atomic<kmp_uint32> *)&node.dn.npredecessors, 0U); in __kmpc_omp_taskwait_deps_51()
1027 while (node.dn.npredecessors > 0) { in __kmpc_omp_taskwait_deps_51()