diff options
Diffstat (limited to 'openmp/runtime/test/ompt/callback.h')
-rw-r--r-- | openmp/runtime/test/ompt/callback.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/openmp/runtime/test/ompt/callback.h b/openmp/runtime/test/ompt/callback.h index 0a7eb780fc4..d2d8966a8b9 100644 --- a/openmp/runtime/test/ompt/callback.h +++ b/openmp/runtime/test/ompt/callback.h @@ -3,20 +3,29 @@ #include <ompt.h> static ompt_get_task_id_t ompt_get_task_id; +static ompt_get_task_frame_t ompt_get_task_frame; static ompt_get_thread_id_t ompt_get_thread_id; static ompt_get_parallel_id_t ompt_get_parallel_id; static void print_ids(int level) { - printf("%" PRIu64 ": level %d: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), level, ompt_get_parallel_id(level), ompt_get_task_id(level)); + ompt_frame_t* frame = ompt_get_task_frame(level); + printf("%" PRIu64 ": level %d: parallel_id=%" PRIu64 ", task_id=%" PRIu64 ", exit_frame=%p, reenter_frame=%p\n", ompt_get_thread_id(), level, ompt_get_parallel_id(level), ompt_get_task_id(level), frame->exit_runtime_frame, frame->reenter_runtime_frame); } +#define print_frame(level)\ +do {\ + printf("%" PRIu64 ": __builtin_frame_address(%d)=%p\n", ompt_get_thread_id(), level, __builtin_frame_address(level));\ +} while(0) + + static void on_ompt_event_barrier_begin( ompt_parallel_id_t parallel_id, ompt_task_id_t task_id) { printf("%" PRIu64 ": ompt_event_barrier_begin: parallel_id=%" PRIu64 ", task_id=%" PRIu64 "\n", ompt_get_thread_id(), parallel_id, task_id); + print_ids(0); } static void @@ -69,7 +78,7 @@ on_ompt_event_parallel_begin( void *parallel_function, ompt_invoker_t invoker) { - printf("%" PRIu64 ": ompt_event_parallel_begin: parent_task_id=%" PRIu64 ", parent_task_frame=%p, parallel_id=%" PRIu64 ", requested_team_size=%" PRIu32 ", parallel_function=%p, invoker=%d\n", ompt_get_thread_id(), parent_task_id, parent_task_frame, parallel_id, requested_team_size, parallel_function, invoker); + printf("%" PRIu64 ": ompt_event_parallel_begin: parent_task_id=%" PRIu64 ", parent_task_frame.exit=%p, parent_task_frame.reenter=%p, parallel_id=%" PRIu64 ", requested_team_size=%" PRIu32 ", parallel_function=%p, invoker=%d\n", ompt_get_thread_id(), parent_task_id, parent_task_frame->exit_runtime_frame, parent_task_frame->reenter_runtime_frame, parallel_id, requested_team_size, parallel_function, invoker); } static void @@ -89,6 +98,7 @@ void ompt_initialize( { ompt_set_callback_t ompt_set_callback = (ompt_set_callback_t) lookup("ompt_set_callback"); ompt_get_task_id = (ompt_get_task_id_t) lookup("ompt_get_task_id"); + ompt_get_task_frame = (ompt_get_task_frame_t) lookup("ompt_get_task_frame"); ompt_get_thread_id = (ompt_get_thread_id_t) lookup("ompt_get_thread_id"); ompt_get_parallel_id = (ompt_get_parallel_id_t) lookup("ompt_get_parallel_id"); @@ -100,6 +110,7 @@ void ompt_initialize( ompt_set_callback(ompt_event_loop_end, (ompt_callback_t) &on_ompt_event_loop_end); ompt_set_callback(ompt_event_parallel_begin, (ompt_callback_t) &on_ompt_event_parallel_begin); ompt_set_callback(ompt_event_parallel_end, (ompt_callback_t) &on_ompt_event_parallel_end); + printf("0: NULL_POINTER=%p\n", NULL); } ompt_initialize_t ompt_tool() |