summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/kmp_runtime.cpp
diff options
context:
space:
mode:
authorJoachim Protze <protze@itc.rwth-aachen.de>2019-05-20 14:21:36 +0000
committerJoachim Protze <protze@itc.rwth-aachen.de>2019-05-20 14:21:36 +0000
commit48b8a4b5190d94a8ab2d2f28eb42e2f15f61ef3f (patch)
tree39d93dc7ee1a9162f2afc61e179b8a631378502a /openmp/runtime/src/kmp_runtime.cpp
parent7c8ec1896470f2010a0b78c546d303def912aa1e (diff)
downloadbcm5719-llvm-48b8a4b5190d94a8ab2d2f28eb42e2f15f61ef3f.tar.gz
bcm5719-llvm-48b8a4b5190d94a8ab2d2f28eb42e2f15f61ef3f.zip
[OMPT] Handling of the events of initial-task-begin and initial-task-end
OpenMP 5.0 says that the callback for the events initial-task-begin and initial-task-end has to be ompt_callback_implicit_task. Patch by Tim Cramer Differential Revision: https://reviews.llvm.org/D58776 llvm-svn: 361157
Diffstat (limited to 'openmp/runtime/src/kmp_runtime.cpp')
-rw-r--r--openmp/runtime/src/kmp_runtime.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp
index fcf8803f0a1..7da7f089884 100644
--- a/openmp/runtime/src/kmp_runtime.cpp
+++ b/openmp/runtime/src/kmp_runtime.cpp
@@ -3897,11 +3897,11 @@ int __kmp_register_root(int initial_thread) {
ompt_thread_initial, __ompt_get_thread_data_internal());
}
ompt_data_t *task_data;
- __ompt_get_task_info_internal(0, NULL, &task_data, NULL, NULL, NULL);
- if (ompt_enabled.ompt_callback_task_create) {
- ompt_callbacks.ompt_callback(ompt_callback_task_create)(
- NULL, NULL, task_data, ompt_task_initial, 0, NULL);
- // initial task has nothing to return to
+ ompt_data_t *parallel_data;
+ __ompt_get_task_info_internal(0, NULL, &task_data, NULL, &parallel_data, NULL);
+ if (ompt_enabled.ompt_callback_implicit_task) {
+ ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
+ ompt_scope_begin, parallel_data, task_data, 1, 1, ompt_task_initial);
}
ompt_set_thread_state(root_thread, ompt_state_work_serial);
@@ -3991,6 +3991,13 @@ static int __kmp_reset_root(int gtid, kmp_root_t *root) {
#endif /* KMP_OS_WINDOWS */
#if OMPT_SUPPORT
+ ompt_data_t *task_data;
+ ompt_data_t *parallel_data;
+ __ompt_get_task_info_internal(0, NULL, &task_data, NULL, &parallel_data, NULL);
+ if (ompt_enabled.ompt_callback_implicit_task) {
+ ompt_callbacks.ompt_callback(ompt_callback_implicit_task)(
+ ompt_scope_end, parallel_data, task_data, 0, 1, ompt_task_initial);
+ }
if (ompt_enabled.ompt_callback_thread_end) {
ompt_callbacks.ompt_callback(ompt_callback_thread_end)(
&(root->r.r_uber_thread->th.ompt_thread_info.thread_data));
OpenPOWER on IntegriCloud