[ITTNOTIFY] Correct barrier imbalance time in case of tasks
authorJonathan Peyton <jonathan.l.peyton@intel.com>
Thu, 14 Apr 2016 16:06:49 +0000 (16:06 +0000)
committerJonathan Peyton <jonathan.l.peyton@intel.com>
Thu, 14 Apr 2016 16:06:49 +0000 (16:06 +0000)
commit99ef4d04335c4b871df59c12d4ab91a546a0ec97
treef6abb3162994af2a4cbd06e19de8ea49faae927d
parent66eb58a756a6cb4cb3f74f8d9e0eb3f56ad7fdfb
[ITTNOTIFY] Correct barrier imbalance time in case of tasks

ittnotify fix for barrier imbalance time in case tasks exist. In the current
implementation, task execution time is included into aggregated time on a
barrier. This fix calculates task execution time and corrects the arrive time
by subtracting the task execution time.

Since __kmp_invoke_task() can not only be called on a barrier, the field
th.th_bar_arrive_time is used to check if the function was called at the
barrier (th.th_bar_arrive_time != 0). So for this check, th_bar_arrive_time
is set to zero right after the value is used on the barrier.

Differential Revision: http://reviews.llvm.org/D19030

llvm-svn: 266332
openmp/runtime/src/kmp_barrier.cpp
openmp/runtime/src/kmp_tasking.c