diff --git a/runtime/src/kmp_tasking.cpp b/runtime/src/kmp_tasking.cpp index 8d9a588d0cf9b8fc347549288170e8ccbdf27f8d..672f9582fee5bdd114dc0d6f5a9f74b97aa10071 100644 --- a/runtime/src/kmp_tasking.cpp +++ b/runtime/src/kmp_tasking.cpp @@ -1121,7 +1121,7 @@ static size_t __kmp_round_up_to_val(size_t size, size_t val) { // Not that variable length deps are allocated by task_alloc if flag depsinalloc is set kmp_task_t* __kmp_task_alloc( ident_t *loc_ref, kmp_int32 gtid, kmp_tasking_flags_t *flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, - kmp_routine_entry_t task_entry, kmp_int32 ndeps, kmp_int32 ndeps_noalias ) + kmp_routine_entry_t task_entry, kmp_int32 ndeps_alias, kmp_int32 ndeps_noalias ) { kmp_task_t *task; kmp_taskdata_t *taskdata; @@ -1133,7 +1133,7 @@ kmp_task_t* __kmp_task_alloc( ident_t *loc_ref, kmp_int32 gtid, kmp_tasking_flag KA_TRACE(10, ("__kmp_task_alloc(enter): T#%d loc=%p, flags=(0x%x) " "sizeof_task=%ld sizeof_shared=%ld entry=%p, ndeps=%d ndeps_noalias=%d\n", gtid, loc_ref, *((kmp_int32 *)flags), sizeof_kmp_task_t, - sizeof_shareds, task_entry, ndeps, ndeps_noalias) ); + sizeof_shareds, task_entry, ndeps_alias, ndeps_noalias) ); if ( parent_task->td_flags.final ) { if (flags->merged_if0) { @@ -1181,19 +1181,20 @@ kmp_task_t* __kmp_task_alloc( ident_t *loc_ref, kmp_int32 gtid, kmp_tasking_flag } #endif + kmp_int32 ndeps = 0; #if OMP_40_ENABLED if (flags->depsinalloc) { - ndeps = ndeps + ndeps_noalias; + ndeps = ndeps_alias + ndeps_noalias; #if LIBOMP_USE_VARDEP kmp_int32 ndeps_extra = thread->th.th_edps_size[0]; kmp_int32 ndeps_extra_noalias = thread->th.th_edps_size[1]; ndeps += ndeps_extra + ndeps_extra_noalias; + ndeps_alias += ndeps_extra; + ndeps_noalias += ndeps_extra_noalias; #endif } - else #endif - ndeps = 0; // Calculate shared structure offset including padding after kmp_task_t struct // to align pointers in shared struct @@ -1239,8 +1240,8 @@ kmp_task_t* __kmp_task_alloc( ident_t *loc_ref, kmp_int32 gtid, kmp_tasking_flag { //taskdata->td_deps = (kmp_depend_info_t*)& ((char *) taskdata)[ shareds_offset - ndeps*sizeof(kmp_depend_info_t) ]; taskdata->td_deps = (kmp_depend_info_t*)(task+1); - taskdata->td_ndeps = ndeps; - taskdata->td_deps_noalias = taskdata->td_deps+ndeps; + taskdata->td_ndeps = ndeps_alias; + taskdata->td_deps_noalias = taskdata->td_deps+ndeps_alias; taskdata->td_ndeps_noalias = ndeps_noalias; taskdata->td_flags.depsinalloc = 1; KMP_DEBUG_ASSERT( (void*)(taskdata->td_deps_noalias+ndeps_noalias) <= (void*)task->shareds || task->shareds == NULL);