Lines Matching refs:task
328 static kmp_int32 __kmp_push_task(kmp_int32 gtid, kmp_task_t *task) { in __kmp_push_task() argument
330 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_push_task()
496 static void __kmp_task_start(kmp_int32 gtid, kmp_task_t *task, in __kmp_task_start() argument
498 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_task_start()
547 static inline void __ompt_task_init(kmp_taskdata_t *task, int tid) { in __ompt_task_init() argument
549 task->ompt_task_info.task_data.value = 0; in __ompt_task_init()
550 task->ompt_task_info.frame.exit_frame = ompt_data_none; in __ompt_task_init()
551 task->ompt_task_info.frame.enter_frame = ompt_data_none; in __ompt_task_init()
552 task->ompt_task_info.frame.exit_frame_flags = ompt_frame_runtime | ompt_frame_framepointer; in __ompt_task_init()
553 task->ompt_task_info.frame.enter_frame_flags = ompt_frame_runtime | ompt_frame_framepointer; in __ompt_task_init()
555 task->ompt_task_info.ndeps = 0; in __ompt_task_init()
556 task->ompt_task_info.deps = NULL; in __ompt_task_init()
562 static inline void __ompt_task_start(kmp_task_t *task, in __ompt_task_start() argument
565 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __ompt_task_start()
583 __ompt_task_finish(kmp_task_t *task, kmp_taskdata_t *resumed_task, in __ompt_task_finish() argument
585 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __ompt_task_finish()
606 kmp_task_t *task, in __kmpc_omp_task_begin_if0_template() argument
609 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmpc_omp_task_begin_if0_template()
628 __kmp_task_start(gtid, task, current_task); in __kmpc_omp_task_begin_if0_template()
646 __ompt_task_start(task, current_task, gtid); in __kmpc_omp_task_begin_if0_template()
657 kmp_task_t *task, in __kmpc_omp_task_begin_if0_ompt() argument
660 __kmpc_omp_task_begin_if0_template<true>(loc_ref, gtid, task, frame_address, in __kmpc_omp_task_begin_if0_ompt()
672 kmp_task_t *task) { in __kmpc_omp_task_begin_if0() argument
676 __kmpc_omp_task_begin_if0_ompt(loc_ref, gtid, task, in __kmpc_omp_task_begin_if0()
682 __kmpc_omp_task_begin_if0_template<false>(loc_ref, gtid, task, NULL, NULL); in __kmpc_omp_task_begin_if0()
688 void __kmpc_omp_task_begin(ident_t *loc_ref, kmp_int32 gtid, kmp_task_t *task) { in __kmpc_omp_task_begin() argument
694 gtid, loc_ref, KMP_TASK_TO_TASKDATA(task), current_task)); in __kmpc_omp_task_begin()
696 __kmp_task_start(gtid, task, current_task); in __kmpc_omp_task_begin()
699 loc_ref, KMP_TASK_TO_TASKDATA(task))); in __kmpc_omp_task_begin()
814 static void __kmp_task_finish(kmp_int32 gtid, kmp_task_t *task, in __kmp_task_finish() argument
816 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_task_finish()
863 __ompt_task_finish(task, resumed_task); in __kmp_task_finish()
920 kmp_routine_entry_t destr_thunk = task->data1.destructors; in __kmp_task_finish()
922 destr_thunk(gtid, task); in __kmp_task_finish()
962 kmp_task_t *task) { in __kmpc_omp_task_complete_if0_template() argument
964 gtid, loc_ref, KMP_TASK_TO_TASKDATA(task))); in __kmpc_omp_task_complete_if0_template()
966 __kmp_task_finish<ompt>(gtid, task, NULL); in __kmpc_omp_task_complete_if0_template()
969 gtid, loc_ref, KMP_TASK_TO_TASKDATA(task))); in __kmpc_omp_task_complete_if0_template()
986 kmp_task_t *task) { in __kmpc_omp_task_complete_if0_ompt() argument
987 __kmpc_omp_task_complete_if0_template<true>(loc_ref, gtid, task); in __kmpc_omp_task_complete_if0_ompt()
997 kmp_task_t *task) { in __kmpc_omp_task_complete_if0() argument
1000 __kmpc_omp_task_complete_if0_ompt(loc_ref, gtid, task); in __kmpc_omp_task_complete_if0()
1004 __kmpc_omp_task_complete_if0_template<false>(loc_ref, gtid, task); in __kmpc_omp_task_complete_if0()
1011 kmp_task_t *task) { in __kmpc_omp_task_complete() argument
1013 loc_ref, KMP_TASK_TO_TASKDATA(task))); in __kmpc_omp_task_complete()
1015 __kmp_task_finish<false>(gtid, task, in __kmpc_omp_task_complete()
1019 loc_ref, KMP_TASK_TO_TASKDATA(task))); in __kmpc_omp_task_complete()
1037 kmp_taskdata_t *task = &team->t.t_implicit_task_taskdata[tid]; in __kmp_init_implicit_task() local
1042 tid, team, task, set_curr_task ? "TRUE" : "FALSE")); in __kmp_init_implicit_task()
1044 task->td_task_id = KMP_GEN_TASK_ID(); in __kmp_init_implicit_task()
1045 task->td_team = team; in __kmp_init_implicit_task()
1048 task->td_ident = loc_ref; in __kmp_init_implicit_task()
1049 task->td_taskwait_ident = NULL; in __kmp_init_implicit_task()
1050 task->td_taskwait_counter = 0; in __kmp_init_implicit_task()
1051 task->td_taskwait_thread = 0; in __kmp_init_implicit_task()
1053 task->td_flags.tiedness = TASK_TIED; in __kmp_init_implicit_task()
1054 task->td_flags.tasktype = TASK_IMPLICIT; in __kmp_init_implicit_task()
1056 task->td_flags.proxy = TASK_FULL; in __kmp_init_implicit_task()
1060 task->td_flags.task_serial = 1; in __kmp_init_implicit_task()
1061 task->td_flags.tasking_ser = (__kmp_tasking_mode == tskm_immediate_exec); in __kmp_init_implicit_task()
1062 task->td_flags.team_serial = (team->t.t_serialized) ? 1 : 0; in __kmp_init_implicit_task()
1064 task->td_flags.started = 1; in __kmp_init_implicit_task()
1065 task->td_flags.executing = 1; in __kmp_init_implicit_task()
1066 task->td_flags.complete = 0; in __kmp_init_implicit_task()
1067 task->td_flags.freed = 0; in __kmp_init_implicit_task()
1070 task->td_depnode = NULL; in __kmp_init_implicit_task()
1072 task->td_last_tied = task; in __kmp_init_implicit_task()
1075 KMP_ATOMIC_ST_REL(&task->td_incomplete_child_tasks, 0); in __kmp_init_implicit_task()
1077 KMP_ATOMIC_ST_REL(&task->td_allocated_child_tasks, 0); in __kmp_init_implicit_task()
1079 task->td_taskgroup = NULL; // An implicit task does not have taskgroup in __kmp_init_implicit_task()
1080 task->td_dephash = NULL; in __kmp_init_implicit_task()
1084 KMP_DEBUG_ASSERT(task->td_incomplete_child_tasks == 0); in __kmp_init_implicit_task()
1085 KMP_DEBUG_ASSERT(task->td_allocated_child_tasks == 0); in __kmp_init_implicit_task()
1090 __ompt_task_init(task, tid); in __kmp_init_implicit_task()
1094 team, task)); in __kmp_init_implicit_task()
1103 kmp_taskdata_t *task = thread->th.th_current_task; in __kmp_finish_implicit_task() local
1104 if (task->td_dephash) { in __kmp_finish_implicit_task()
1106 task->td_flags.complete = 1; in __kmp_finish_implicit_task()
1107 children = KMP_ATOMIC_LD_ACQ(&task->td_incomplete_child_tasks); in __kmp_finish_implicit_task()
1108 kmp_tasking_flags_t flags_old = task->td_flags; in __kmp_finish_implicit_task()
1112 if (KMP_COMPARE_AND_STORE_ACQ32(RCAST(kmp_int32 *, &task->td_flags), in __kmp_finish_implicit_task()
1117 thread->th.th_info.ds.ds_gtid, task)); in __kmp_finish_implicit_task()
1118 __kmp_dephash_free_entries(thread, task->td_dephash); in __kmp_finish_implicit_task()
1129 kmp_taskdata_t *task = thread->th.th_current_task; in __kmp_free_implicit_task() local
1130 if (task && task->td_dephash) { in __kmp_free_implicit_task()
1131 __kmp_dephash_free(thread, task->td_dephash); in __kmp_free_implicit_task()
1132 task->td_dephash = NULL; in __kmp_free_implicit_task()
1164 kmp_task_t *task; in __kmp_task_alloc() local
1252 task = KMP_TASKDATA_TO_TASK(taskdata); in __kmp_task_alloc()
1257 KMP_DEBUG_ASSERT((((kmp_uintptr_t)task) & (sizeof(double) - 1)) == 0); in __kmp_task_alloc()
1260 KMP_DEBUG_ASSERT((((kmp_uintptr_t)task) & (sizeof(_Quad) - 1)) == 0); in __kmp_task_alloc()
1264 task->shareds = &((char *)taskdata)[shareds_offset]; in __kmp_task_alloc()
1266 KMP_DEBUG_ASSERT((((kmp_uintptr_t)task->shareds) & (sizeof(void *) - 1)) == in __kmp_task_alloc()
1269 task->shareds = NULL; in __kmp_task_alloc()
1271 task->routine = task_entry; in __kmp_task_alloc()
1272 task->part_id = 0; // AC: Always start with 0 part id in __kmp_task_alloc()
1366 ANNOTATE_HAPPENS_BEFORE(task); in __kmp_task_alloc()
1368 return task; in __kmp_task_alloc()
1429 static void __kmp_invoke_task(kmp_int32 gtid, kmp_task_t *task, in __kmp_invoke_task() argument
1431 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_invoke_task()
1439 KMP_DEBUG_ASSERT(task); in __kmp_invoke_task()
1450 __kmp_bottom_half_finish_proxy(gtid, task); in __kmp_invoke_task()
1480 ANNOTATE_HAPPENS_AFTER(task); in __kmp_invoke_task()
1481 __kmp_task_start(gtid, task, current_task); // OMPT only if not discarded in __kmp_invoke_task()
1549 __ompt_task_start(task, current_task, gtid); in __kmp_invoke_task()
1569 ((void (*)(void *))(*(task->routine)))(task->shareds); in __kmp_invoke_task()
1573 (*(task->routine))(gtid, task); in __kmp_invoke_task()
1600 __kmp_task_finish<true>(gtid, task, current_task); in __kmp_invoke_task()
1603 __kmp_task_finish<false>(gtid, task, current_task); in __kmp_invoke_task()
2355 kmp_task_t *task; in __kmp_remove_my_task() local
2417 task = KMP_TASKDATA_TO_TASK(taskdata); in __kmp_remove_my_task()
2418 return task; in __kmp_remove_my_task()
2429 kmp_task_t *task; in __kmp_steal_task() local
2549 task = KMP_TASKDATA_TO_TASK(taskdata); in __kmp_steal_task()
2550 return task; in __kmp_steal_task()
2569 kmp_task_t *task; in __kmp_execute_tasks_template() local
2602 task = NULL; in __kmp_execute_tasks_template()
2604 task = __kmp_remove_my_task(thread, gtid, task_team, is_constrained); in __kmp_execute_tasks_template()
2606 if ((task == NULL) && (nthreads > 1)) { // Steal a task in __kmp_execute_tasks_template()
2658 task = __kmp_steal_task(other_thread, gtid, task_team, in __kmp_execute_tasks_template()
2662 if (task != NULL) { // set last stolen to victim in __kmp_execute_tasks_template()
2676 if (task == NULL) // break out of tasking loop in __kmp_execute_tasks_template()
2689 __kmp_invoke_task(gtid, task, current_task); in __kmp_execute_tasks_template()
3428 static bool __kmp_give_task(kmp_info_t *thread, kmp_int32 tid, kmp_task_t *task, in __kmp_give_task() argument
3430 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_give_task()
3649 kmp_task_t *task; in __kmp_task_dup_alloc() local
3674 task = KMP_TASKDATA_TO_TASK(taskdata); in __kmp_task_dup_alloc()
3678 if (task->shareds != NULL) { // need setup shareds pointer in __kmp_task_dup_alloc()
3680 task->shareds = &((char *)taskdata)[shareds_offset]; in __kmp_task_dup_alloc()
3681 KMP_DEBUG_ASSERT((((kmp_uintptr_t)task->shareds) & (sizeof(void *) - 1)) == in __kmp_task_dup_alloc()
3709 return task; in __kmp_task_dup_alloc()
3724 kmp_task_t *task; member in kmp_taskloop_bounds_t
3731 : task(_task), taskdata(KMP_TASK_TO_TASKDATA(task)), in kmp_taskloop_bounds_t()
3732 lower_offset((char *)lb - (char *)task), in kmp_taskloop_bounds_t()
3733 upper_offset((char *)ub - (char *)task) { in kmp_taskloop_bounds_t()
3738 : task(_task), taskdata(KMP_TASK_TO_TASKDATA(_task)), in kmp_taskloop_bounds_t()
3747 retval = *(kmp_int64 *)((char *)task + lower_offset); in get_lb()
3751 kmp_int32 *lb = RCAST(kmp_int32 *, task->shareds); in get_lb()
3754 kmp_int64 *lb = RCAST(kmp_int64 *, task->shareds); in get_lb()
3759 retval = *(kmp_int64 *)((char *)task + lower_offset); in get_lb()
3768 retval = *(kmp_int64 *)((char *)task + upper_offset); in get_ub()
3772 kmp_int32 *ub = RCAST(kmp_int32 *, task->shareds) + 1; in get_ub()
3775 kmp_int64 *ub = RCAST(kmp_int64 *, task->shareds) + 1; in get_ub()
3780 retval = *(kmp_int64 *)((char *)task + upper_offset); in get_ub()
3788 *(kmp_uint64 *)((char *)task + lower_offset) = lb; in set_lb()
3792 kmp_uint32 *lower = RCAST(kmp_uint32 *, task->shareds); in set_lb()
3795 kmp_uint64 *lower = RCAST(kmp_uint64 *, task->shareds); in set_lb()
3800 *(kmp_uint64 *)((char *)task + lower_offset) = lb; in set_lb()
3807 *(kmp_uint64 *)((char *)task + upper_offset) = ub; in set_ub()
3811 kmp_uint32 *upper = RCAST(kmp_uint32 *, task->shareds) + 1; in set_ub()
3814 kmp_uint64 *upper = RCAST(kmp_uint64 *, task->shareds) + 1; in set_ub()
3819 *(kmp_uint64 *)((char *)task + upper_offset) = ub; in set_ub()
3839 void __kmp_taskloop_linear(ident_t *loc, int gtid, kmp_task_t *task, in __kmp_taskloop_linear() argument
3852 kmp_taskloop_bounds_t task_bounds(task, lb, ub); in __kmp_taskloop_linear()
3895 next_task = __kmp_task_dup_alloc(thread, task); // allocate new task in __kmp_taskloop_linear()
3908 ptask_dup(next_task, task, lastpriv); in __kmp_taskloop_linear()
3924 __kmp_task_start(gtid, task, current_task); // make internal bookkeeping in __kmp_taskloop_linear()
3926 __kmp_task_finish<false>(gtid, task, current_task); in __kmp_taskloop_linear()
3932 kmp_task_t *task; member
3960 kmp_task_t *task = p->task; in __kmp_taskloop_task() local
3976 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_taskloop_task()
3977 KMP_DEBUG_ASSERT(task != NULL); in __kmp_taskloop_task()
3985 __kmp_taskloop_recur(NULL, gtid, task, lb, ub, st, ub_glob, num_tasks, in __kmp_taskloop_task()
3992 __kmp_taskloop_linear(NULL, gtid, task, lb, ub, st, ub_glob, num_tasks, in __kmp_taskloop_task()
4020 void __kmp_taskloop_recur(ident_t *loc, int gtid, kmp_task_t *task, in __kmp_taskloop_recur() argument
4030 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmp_taskloop_recur()
4031 KMP_DEBUG_ASSERT(task != NULL); in __kmp_taskloop_recur()
4044 (char *)lb - (char *)task; // remember offset of lb in the task structure in __kmp_taskloop_recur()
4046 (char *)ub - (char *)task; // remember offset of ub in the task structure in __kmp_taskloop_recur()
4073 next_task = __kmp_task_dup_alloc(thread, task); // duplicate the task in __kmp_taskloop_recur()
4077 ptask_dup(next_task, task, 0); in __kmp_taskloop_recur()
4085 p->task = next_task; in __kmp_taskloop_recur()
4109 __kmp_taskloop_recur(loc, gtid, task, lb, ub, st, ub_glob, n_tsk0, gr_size0, in __kmp_taskloop_recur()
4116 __kmp_taskloop_linear(loc, gtid, task, lb, ub, st, ub_glob, n_tsk0, in __kmp_taskloop_recur()
4142 void __kmpc_taskloop(ident_t *loc, int gtid, kmp_task_t *task, int if_val, in __kmpc_taskloop() argument
4145 kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task); in __kmpc_taskloop()
4146 KMP_DEBUG_ASSERT(task != NULL); in __kmpc_taskloop()
4157 kmp_taskloop_bounds_t task_bounds(task, lb, ub); in __kmpc_taskloop()
4183 __kmp_task_start(gtid, task, current_task); in __kmpc_taskloop()
4185 __kmp_task_finish<false>(gtid, task, current_task); in __kmpc_taskloop()
4246 __kmp_taskloop_linear(loc, gtid, task, lb, ub, st, ub_glob, num_tasks, in __kmpc_taskloop()
4258 __kmp_taskloop_recur(loc, gtid, task, lb, ub, st, ub_glob, num_tasks, in __kmpc_taskloop()
4268 __kmp_taskloop_linear(loc, gtid, task, lb, ub, st, ub_glob, num_tasks, in __kmpc_taskloop()