[OMPT] Reset task exit frame when execution is finished
authorJonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
Wed, 14 Sep 2016 13:59:19 +0000 (13:59 +0000)
committerJonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
Wed, 14 Sep 2016 13:59:19 +0000 (13:59 +0000)
commit8a27064e05c0327790c5144bf8498ca4a68152da
tree90979c5ad899eb41d9921a3bcab6ee4604a55436
parentfd0614d8308634755dbf77a0c448a235e97b78b3
[OMPT] Reset task exit frame when execution is finished

The exit address is set when execution of a task is started and should be reset as soon as the execution is finished.
Especially for the asm implementation of __kmp_invoke_microtask, resetting in this call would be painfull, so reset just after the invokation.

The testcase shows the effect of this patch:
Before, the implicit barriers at the end of an implicit task would see an exit address for the implicit task.

This barrier is a task scheduling point. Thus, any explicit task scheduled there would see an exit, but no reenter address for the implicit task.

Patch by Joachim Protze!

Differential Revision: https://reviews.llvm.org/D23307

llvm-svn: 281465
openmp/runtime/src/kmp_runtime.c
openmp/runtime/test/ompt/parallel/nested.c