summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r--openmp/runtime/src/include/50/ompt.h.var150
-rw-r--r--openmp/runtime/src/kmp_barrier.cpp6
-rw-r--r--openmp/runtime/src/kmp_cancel.cpp4
-rw-r--r--openmp/runtime/src/kmp_csupport.cpp4
-rw-r--r--openmp/runtime/src/kmp_runtime.cpp5
-rw-r--r--openmp/runtime/src/kmp_sched.cpp2
-rw-r--r--openmp/runtime/src/kmp_taskdeps.cpp12
-rw-r--r--openmp/runtime/src/kmp_tasking.cpp8
-rw-r--r--openmp/runtime/src/ompt-event-specific.h4
-rw-r--r--openmp/runtime/src/ompt-general.cpp12
-rw-r--r--openmp/runtime/src/ompt-internal.h3
-rw-r--r--openmp/runtime/src/ompt-specific.h18
12 files changed, 138 insertions, 90 deletions
diff --git a/openmp/runtime/src/include/50/ompt.h.var b/openmp/runtime/src/include/50/ompt.h.var
index 56c5834a113..24fc90b8c62 100644
--- a/openmp/runtime/src/include/50/ompt.h.var
+++ b/openmp/runtime/src/include/50/ompt.h.var
@@ -38,8 +38,10 @@
\
macro (ompt_get_parallel_info) \
macro (ompt_get_task_info) \
+ macro (ompt_get_task_memory) \
macro (ompt_get_thread_data) \
macro (ompt_get_unique_id) \
+ macro (ompt_finalize_tool) \
\
macro(ompt_get_num_procs) \
macro(ompt_get_num_places) \
@@ -151,6 +153,10 @@
macro (ompt_callback_flush, ompt_callback_flush_t, 29) /* after executing flush */ \
\
macro (ompt_callback_cancel, ompt_callback_cancel_t, 30) /* cancel innermost binding region */ \
+ \
+ macro (ompt_callback_reduction, ompt_callback_sync_region_t, 31) /* reduction */ \
+ \
+ macro (ompt_callback_dispatch, ompt_callback_dispatch_t, 32) /* dispatch of work */
@@ -191,16 +197,17 @@ typedef struct omp_frame_t {
* dependences types
*---------------------*/
-typedef enum ompt_task_dependence_flag_t {
+typedef enum ompt_task_dependence_type_t {
// a two bit field for the dependence type
- ompt_task_dependence_type_out = 1,
- ompt_task_dependence_type_in = 2,
- ompt_task_dependence_type_inout = 3,
-} ompt_task_dependence_flag_t;
+ ompt_task_dependence_type_in = 1,
+ ompt_task_dependence_type_out = 2,
+ ompt_task_dependence_type_inout = 3,
+ ompt_task_dependence_type_mutexinoutset = 4
+} ompt_task_dependence_type_t;
typedef struct ompt_task_dependence_t {
void *variable_addr;
- unsigned int dependence_flags;
+ ompt_task_dependence_type_t dependence_type;
} ompt_task_dependence_t;
@@ -264,20 +271,22 @@ typedef ompt_interface_fn_t (*ompt_function_lookup_t)(
);
/* threads */
-typedef enum ompt_thread_type_t {
+typedef enum ompt_thread_t {
ompt_thread_initial = 1, // start the enumeration at 1
ompt_thread_worker = 2,
ompt_thread_other = 3,
ompt_thread_unknown = 4
-} ompt_thread_type_t;
+} ompt_thread_t;
-typedef enum ompt_invoker_t {
- ompt_invoker_program = 1, /* program invokes master task */
- ompt_invoker_runtime = 2 /* runtime invokes master task */
-} ompt_invoker_t;
+typedef enum ompt_parallel_flag_t {
+ ompt_parallel_invoker_program = 0x00000001, /* program invokes master task */
+ ompt_parallel_invoker_runtime = 0x00000002, /* runtime invokes master task */
+ ompt_parallel_league = 0x40000000,
+ ompt_parallel_team = 0x80000000
+} ompt_parallel_flag_t;
typedef void (*ompt_callback_thread_begin_t) (
- ompt_thread_type_t thread_type, /* type of thread */
+ ompt_thread_t thread_type, /* type of thread */
ompt_data_t *thread_data /* data of thread */
);
@@ -301,8 +310,8 @@ typedef void (*ompt_callback_implicit_task_t) (
ompt_scope_endpoint_t endpoint, /* endpoint of implicit task */
ompt_data_t *parallel_data, /* data of parallel region */
ompt_data_t *task_data, /* data of implicit task */
- unsigned int team_size, /* team size */
- unsigned int thread_num /* thread number of calling thread */
+ unsigned int actual_parallelism, /* team size */
+ unsigned int index /* thread number of calling thread */
);
typedef void (*ompt_callback_parallel_begin_t) (
@@ -310,19 +319,19 @@ typedef void (*ompt_callback_parallel_begin_t) (
const omp_frame_t *encountering_task_frame, /* frame data of encountering task */
ompt_data_t *parallel_data, /* data of parallel region */
unsigned int requested_team_size, /* requested number of threads in team */
- ompt_invoker_t invoker, /* invoker of master task */
+ int flag, /* flag for additional information */
const void *codeptr_ra /* return address of runtime call */
);
typedef void (*ompt_callback_parallel_end_t) (
ompt_data_t *parallel_data, /* data of parallel region */
ompt_data_t *encountering_task_data, /* data of encountering task */
- ompt_invoker_t invoker, /* invoker of master task */
+ int flag, /* flag for additional information */
const void *codeptr_ra /* return address of runtime call */
);
/* tasks */
-typedef enum ompt_task_type_t {
+typedef enum ompt_task_flag_t {
ompt_task_initial = 0x1,
ompt_task_implicit = 0x2,
ompt_task_explicit = 0x4,
@@ -332,13 +341,13 @@ typedef enum ompt_task_type_t {
ompt_task_final = 0x20000000,
ompt_task_mergeable = 0x40000000,
ompt_task_merged = 0x80000000
-} ompt_task_type_t;
+} ompt_task_flag_t;
typedef enum ompt_task_status_t {
ompt_task_complete = 1,
ompt_task_yield = 2,
ompt_task_cancel = 3,
- ompt_task_others = 4
+ ompt_task_switch = 4
} ompt_task_status_t;
typedef void (*ompt_callback_task_schedule_t) (
@@ -351,7 +360,7 @@ typedef void (*ompt_callback_task_create_t) (
ompt_data_t *encountering_task_data, /* data of parent task */
const omp_frame_t *encountering_task_frame, /* frame data for parent task */
ompt_data_t *new_task_data, /* data of created task */
- int type, /* type of created task */
+ int flag, /* type of created task */
int has_dependences, /* created task has dependences */
const void *codeptr_ra /* return address of runtime call */
);
@@ -369,15 +378,15 @@ typedef void (*ompt_callback_task_dependence_t) (
);
/* target and device */
-typedef enum ompt_target_type_t {
+typedef enum ompt_target_t {
ompt_target = 1,
ompt_target_enter_data = 2,
ompt_target_exit_data = 3,
ompt_target_update = 4
-} ompt_target_type_t;
+} ompt_target_t;
typedef void (*ompt_callback_target_t) (
- ompt_target_type_t kind,
+ ompt_target_t kind,
ompt_scope_endpoint_t endpoint,
uint64_t device_num,
ompt_data_t *task_data,
@@ -396,14 +405,18 @@ typedef void (*ompt_callback_target_data_op_t) (
ompt_id_t target_id,
ompt_id_t host_op_id,
ompt_target_data_op_t optype,
- void *host_addr,
- void *device_addr,
- size_t bytes
+ void *src_addr,
+ int src_device_num,
+ void *dest_addr,
+ int dest_device_num,
+ size_t bytes,
+ const void *codeptr_ra
);
typedef void (*ompt_callback_target_submit_t) (
ompt_id_t target_id,
- ompt_id_t host_op_id
+ ompt_id_t host_op_id,
+ unsigned int requested_num_teams
);
typedef void (*ompt_callback_target_map_t) (
@@ -412,7 +425,8 @@ typedef void (*ompt_callback_target_map_t) (
void **host_addr,
void **device_addr,
size_t *bytes,
- unsigned int *mapping_flags
+ unsigned int *mapping_flags,
+ const void *codeptr_ra
);
typedef void (*ompt_callback_device_initialize_t) (
@@ -453,32 +467,31 @@ typedef int (*ompt_callback_control_tool_t) (
const void *codeptr_ra /* return address of runtime call */
);
-typedef enum ompt_mutex_kind_t {
- ompt_mutex = 0x10,
- ompt_mutex_lock = 0x11,
- ompt_mutex_nest_lock = 0x12,
- ompt_mutex_critical = 0x13,
- ompt_mutex_atomic = 0x14,
- ompt_mutex_ordered = 0x20
-} ompt_mutex_kind_t;
+typedef enum ompt_mutex_t {
+ ompt_mutex_lock = 1,
+ ompt_mutex_nest_lock = 2,
+ ompt_mutex_critical = 3,
+ ompt_mutex_atomic = 4,
+ ompt_mutex_ordered = 5
+} ompt_mutex_t;
typedef void (*ompt_callback_mutex_acquire_t) (
- ompt_mutex_kind_t kind, /* mutex kind */
+ ompt_mutex_t kind, /* mutex kind */
unsigned int hint, /* mutex hint */
unsigned int impl, /* mutex implementation */
- omp_wait_id_t wait_id, /* id of object being awaited */
+ omp_wait_id_t wait_id, /* id of object being awaited */
const void *codeptr_ra /* return address of runtime call */
);
typedef void (*ompt_callback_mutex_t) (
- ompt_mutex_kind_t kind, /* mutex kind */
- omp_wait_id_t wait_id, /* id of object being awaited */
+ ompt_mutex_t kind, /* mutex kind */
+ omp_wait_id_t wait_id, /* id of object being awaited */
const void *codeptr_ra /* return address of runtime call */
);
typedef void (*ompt_callback_nest_lock_t) (
ompt_scope_endpoint_t endpoint, /* endpoint of nested lock */
- omp_wait_id_t wait_id, /* id of object being awaited */
+ omp_wait_id_t wait_id, /* id of object being awaited */
const void *codeptr_ra /* return address of runtime call */
);
@@ -489,7 +502,7 @@ typedef void (*ompt_callback_master_t) (
const void *codeptr_ra /* return address of runtime call */
);
-typedef enum ompt_work_type_t {
+typedef enum ompt_work_t {
ompt_work_loop = 1,
ompt_work_sections = 2,
ompt_work_single_executor = 3,
@@ -497,10 +510,10 @@ typedef enum ompt_work_type_t {
ompt_work_workshare = 5,
ompt_work_distribute = 6,
ompt_work_taskloop = 7
-} ompt_work_type_t;
+} ompt_work_t;
typedef void (*ompt_callback_work_t) (
- ompt_work_type_t wstype, /* type of work region */
+ ompt_work_t wstype, /* type of work region */
ompt_scope_endpoint_t endpoint, /* endpoint of work region */
ompt_data_t *parallel_data, /* data of parallel region */
ompt_data_t *task_data, /* data of task */
@@ -508,14 +521,18 @@ typedef void (*ompt_callback_work_t) (
const void *codeptr_ra /* return address of runtime call */
);
-typedef enum ompt_sync_region_kind_t {
- ompt_sync_region_barrier = 1,
- ompt_sync_region_taskwait = 2,
- ompt_sync_region_taskgroup = 3
-} ompt_sync_region_kind_t;
+typedef enum ompt_sync_region_t {
+ ompt_sync_region_barrier = 1,
+ ompt_sync_region_barrier_implicit = 2,
+ ompt_sync_region_barrier_explicit = 3,
+ ompt_sync_region_barrier_implementation = 4,
+ ompt_sync_region_taskwait = 5,
+ ompt_sync_region_taskgroup = 6,
+ ompt_sync_region_reduction = 7
+} ompt_sync_region_t;
typedef void (*ompt_callback_sync_region_t) (
- ompt_sync_region_kind_t kind, /* kind of sync region */
+ ompt_sync_region_t kind, /* kind of sync region */
ompt_scope_endpoint_t endpoint, /* endpoint of sync region */
ompt_data_t *parallel_data, /* data of parallel region */
ompt_data_t *task_data, /* data of task */
@@ -523,10 +540,10 @@ typedef void (*ompt_callback_sync_region_t) (
);
typedef enum ompt_cancel_flag_t {
- ompt_cancel_parallel = 0x1,
- ompt_cancel_sections = 0x2,
- ompt_cancel_do = 0x4,
- ompt_cancel_taskgroup = 0x8,
+ ompt_cancel_parallel = 0x01,
+ ompt_cancel_sections = 0x02,
+ ompt_cancel_loop = 0x04,
+ ompt_cancel_taskgroup = 0x08,
ompt_cancel_activated = 0x10,
ompt_cancel_detected = 0x20,
ompt_cancel_discarded_task = 0x40
@@ -543,6 +560,18 @@ typedef void (*ompt_callback_flush_t) (
const void *codeptr_ra /* return address of runtime call */
);
+typedef enum ompt_dispatch_t {
+ ompt_dispatch_iteration = 1,
+ ompt_dispatch_section = 2
+} ompt_dispatch_t;
+
+typedef void (*ompt_callback_dispatch_t) (
+ ompt_data_t *parallel_data,
+ ompt_data_t *task_data,
+ ompt_dispatch_t kind,
+ ompt_data_t instance
+);
+
/****************************************************************************
* ompt API
***************************************************************************/
@@ -587,6 +616,12 @@ OMPT_API_FUNCTION(int, ompt_get_task_info, (
int *thread_num
));
+OMPT_API_FUNCTION(int, ompt_get_task_memory, (
+ void **addr,
+ size_t *size,
+ int block
+));
+
/* procs */
OMPT_API_FUNCTION(int, ompt_get_num_procs, (void));
@@ -615,7 +650,7 @@ OMPT_API_FUNCTION(int, ompt_get_proc_id, (void));
***************************************************************************/
OMPT_API_FUNCTION(int, ompt_initialize, (
- ompt_function_lookup_t ompt_fn_lookup,
+ ompt_function_lookup_t lookup,
ompt_data_t *tool_data
));
@@ -673,6 +708,9 @@ OMPT_API_FUNCTION(int, ompt_enumerate_mutex_impls, (
/* get_unique_id */
OMPT_API_FUNCTION(uint64_t, ompt_get_unique_id, (void));
+/* finalize tool */
+OMPT_API_FUNCTION(void, ompt_finalize_tool, (void));
+
#ifdef __cplusplus
};
#endif
diff --git a/openmp/runtime/src/kmp_barrier.cpp b/openmp/runtime/src/kmp_barrier.cpp
index 3f53d6b6730..e3925cb304d 100644
--- a/openmp/runtime/src/kmp_barrier.cpp
+++ b/openmp/runtime/src/kmp_barrier.cpp
@@ -1223,7 +1223,7 @@ int __kmp_barrier(enum barrier_type bt, int gtid, int is_split,
kmp_info_t *this_thr = __kmp_threads[gtid];
kmp_team_t *team = this_thr->th.th_team;
int status = 0;
-#if OMPT_SUPPORT
+#if OMPT_SUPPORT && OMPT_OPTIONAL
ompt_data_t *my_task_data;
ompt_data_t *my_parallel_data;
void *return_address;
@@ -1599,10 +1599,10 @@ void __kmp_join_barrier(int gtid) {
ANNOTATE_BARRIER_BEGIN(&team->t.t_bar);
#if OMPT_SUPPORT
- ompt_data_t *my_task_data;
- ompt_data_t *my_parallel_data;
if (ompt_enabled.enabled) {
#if OMPT_OPTIONAL
+ ompt_data_t *my_task_data;
+ ompt_data_t *my_parallel_data;
void *codeptr = NULL;
int ds_tid = this_thr->th.th_info.ds.ds_tid;
if (KMP_MASTER_TID(ds_tid) &&
diff --git a/openmp/runtime/src/kmp_cancel.cpp b/openmp/runtime/src/kmp_cancel.cpp
index 3895f97833e..5ed91673b77 100644
--- a/openmp/runtime/src/kmp_cancel.cpp
+++ b/openmp/runtime/src/kmp_cancel.cpp
@@ -65,7 +65,7 @@ kmp_int32 __kmpc_cancel(ident_t *loc_ref, kmp_int32 gtid, kmp_int32 cncl_kind) {
if (cncl_kind == cancel_parallel)
type = ompt_cancel_parallel;
else if (cncl_kind == cancel_loop)
- type = ompt_cancel_do;
+ type = ompt_cancel_loop;
else if (cncl_kind == cancel_sections)
type = ompt_cancel_sections;
ompt_callbacks.ompt_callback(ompt_callback_cancel)(
@@ -172,7 +172,7 @@ kmp_int32 __kmpc_cancellationpoint(ident_t *loc_ref, kmp_int32 gtid,
if (cncl_kind == cancel_parallel)
type = ompt_cancel_parallel;
else if (cncl_kind == cancel_loop)
- type = ompt_cancel_do;
+ type = ompt_cancel_loop;
else if (cncl_kind == cancel_sections)
type = ompt_cancel_sections;
ompt_callbacks.ompt_callback(ompt_callback_cancel)(
diff --git a/openmp/runtime/src/kmp_csupport.cpp b/openmp/runtime/src/kmp_csupport.cpp
index 8c8b8eb26f8..51934cbdffc 100644
--- a/openmp/runtime/src/kmp_csupport.cpp
+++ b/openmp/runtime/src/kmp_csupport.cpp
@@ -513,7 +513,7 @@ void __kmpc_end_serialized_parallel(ident_t *loc, kmp_int32 global_tid) {
if (ompt_enabled.ompt_callback_parallel_end) {
ompt_callbacks.ompt_callback(ompt_callback_parallel_end)(
&(serial_team->t.ompt_team_info.parallel_data), parent_task_data,
- ompt_invoker_program, OMPT_LOAD_RETURN_ADDRESS(global_tid));
+ ompt_parallel_invoker_program, OMPT_LOAD_RETURN_ADDRESS(global_tid));
}
__ompt_lw_taskteam_unlink(this_thr);
this_thr->th.ompt_thread_info.state = omp_state_overhead;
@@ -1782,7 +1782,7 @@ void __kmpc_for_static_fini(ident_t *loc, kmp_int32 global_tid) {
#if OMPT_SUPPORT && OMPT_OPTIONAL
if (ompt_enabled.ompt_callback_work) {
- ompt_work_type_t ompt_work_type = ompt_work_loop;
+ ompt_work_t ompt_work_type = ompt_work_loop;
ompt_team_info_t *team_info = __ompt_get_teaminfo(0, NULL);
ompt_task_info_t *task_info = __ompt_get_task_info_object(0);
// Determine workshare type
diff --git a/openmp/runtime/src/kmp_runtime.cpp b/openmp/runtime/src/kmp_runtime.cpp
index 9078e3a4946..e0c15cdf5ec 100644
--- a/openmp/runtime/src/kmp_runtime.cpp
+++ b/openmp/runtime/src/kmp_runtime.cpp
@@ -1225,7 +1225,8 @@ void __kmp_serialized_parallel(ident_t *loc, kmp_int32 global_tid) {
ompt_callbacks.ompt_callback(ompt_callback_parallel_begin)(
&(parent_task_info->task_data), &(parent_task_info->frame),
- &ompt_parallel_data, team_size, ompt_invoker_program, codeptr);
+ &ompt_parallel_data, team_size, ompt_parallel_invoker_program,
+ codeptr);
}
}
#endif // OMPT_SUPPORT
@@ -3824,7 +3825,7 @@ int __kmp_register_root(int initial_thread) {
#if OMPT_SUPPORT
if (!initial_thread && ompt_enabled.enabled) {
- ompt_thread_t *root_thread = ompt_get_thread();
+ kmp_info_t *root_thread = ompt_get_thread();
ompt_set_thread_state(root_thread, omp_state_overhead);
diff --git a/openmp/runtime/src/kmp_sched.cpp b/openmp/runtime/src/kmp_sched.cpp
index 67fe02f7944..fc8000e65fd 100644
--- a/openmp/runtime/src/kmp_sched.cpp
+++ b/openmp/runtime/src/kmp_sched.cpp
@@ -68,7 +68,7 @@ static void __kmp_for_static_init(ident_t *loc, kmp_int32 global_tid,
#if OMPT_SUPPORT && OMPT_OPTIONAL
ompt_team_info_t *team_info = NULL;
ompt_task_info_t *task_info = NULL;
- ompt_work_type_t ompt_work_type = ompt_work_loop;
+ ompt_work_t ompt_work_type = ompt_work_loop;
static kmp_int8 warn = 0;
diff --git a/openmp/runtime/src/kmp_taskdeps.cpp b/openmp/runtime/src/kmp_taskdeps.cpp
index 4efd12bac8a..34ea3793d1d 100644
--- a/openmp/runtime/src/kmp_taskdeps.cpp
+++ b/openmp/runtime/src/kmp_taskdeps.cpp
@@ -508,26 +508,26 @@ kmp_int32 __kmpc_omp_task_with_deps(ident_t *loc_ref, kmp_int32 gtid,
new_taskdata->ompt_task_info.deps[i].variable_addr =
(void *)dep_list[i].base_addr;
if (dep_list[i].flags.in && dep_list[i].flags.out)
- new_taskdata->ompt_task_info.deps[i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[i].dependence_type =
ompt_task_dependence_type_inout;
else if (dep_list[i].flags.out)
- new_taskdata->ompt_task_info.deps[i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[i].dependence_type =
ompt_task_dependence_type_out;
else if (dep_list[i].flags.in)
- new_taskdata->ompt_task_info.deps[i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[i].dependence_type =
ompt_task_dependence_type_in;
}
for (i = 0; i < ndeps_noalias; i++) {
new_taskdata->ompt_task_info.deps[ndeps + i].variable_addr =
(void *)noalias_dep_list[i].base_addr;
if (noalias_dep_list[i].flags.in && noalias_dep_list[i].flags.out)
- new_taskdata->ompt_task_info.deps[ndeps + i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[ndeps + i].dependence_type =
ompt_task_dependence_type_inout;
else if (noalias_dep_list[i].flags.out)
- new_taskdata->ompt_task_info.deps[ndeps + i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[ndeps + i].dependence_type =
ompt_task_dependence_type_out;
else if (noalias_dep_list[i].flags.in)
- new_taskdata->ompt_task_info.deps[ndeps + i].dependence_flags =
+ new_taskdata->ompt_task_info.deps[ndeps + i].dependence_type =
ompt_task_dependence_type_in;
}
ompt_callbacks.ompt_callback(ompt_callback_task_dependences)(
diff --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp
index e1b03f780b5..9028686bea1 100644
--- a/openmp/runtime/src/kmp_tasking.cpp
+++ b/openmp/runtime/src/kmp_tasking.cpp
@@ -473,7 +473,7 @@ static inline void __ompt_task_start(kmp_task_t *task,
kmp_taskdata_t *current_task,
kmp_int32 gtid) {
kmp_taskdata_t *taskdata = KMP_TASK_TO_TASKDATA(task);
- ompt_task_status_t status = ompt_task_others;
+ ompt_task_status_t status = ompt_task_switch;
if (__kmp_threads[gtid]->th.ompt_thread_info.ompt_task_yielded) {
status = ompt_task_yield;
__kmp_threads[gtid]->th.ompt_thread_info.ompt_task_yielded = 0;
@@ -1586,7 +1586,7 @@ kmp_int32 __kmpc_omp_task(ident_t *loc_ref, kmp_int32 gtid,
// Scheduling back to the parent task.
__ompt_task_finish(new_task,
new_taskdata->ompt_task_info.scheduling_parent,
- ompt_task_others);
+ ompt_task_switch);
new_taskdata->ompt_task_info.frame.exit_frame = NULL;
}
}
@@ -1766,7 +1766,7 @@ static kmp_int32 __kmpc_omp_taskwait_template(ident_t *loc_ref, kmp_int32 gtid,
return TASK_CURRENT_NOT_QUEUED;
}
-#if OMPT_SUPPORT
+#if OMPT_SUPPORT && OMPT_OPTIONAL
OMPT_NOINLINE
static kmp_int32 __kmpc_omp_taskwait_ompt(ident_t *loc_ref, kmp_int32 gtid,
void *frame_address,
@@ -1774,7 +1774,7 @@ static kmp_int32 __kmpc_omp_taskwait_ompt(ident_t *loc_ref, kmp_int32 gtid,
return __kmpc_omp_taskwait_template<true>(loc_ref, gtid, frame_address,
return_address);
}
-#endif // OMPT_SUPPORT
+#endif // OMPT_SUPPORT && OMPT_OPTIONAL
// __kmpc_omp_taskwait: Wait until all tasks generated by the current task are
// complete
diff --git a/openmp/runtime/src/ompt-event-specific.h b/openmp/runtime/src/ompt-event-specific.h
index 305b1764f7b..1fb08444749 100644
--- a/openmp/runtime/src/ompt-event-specific.h
+++ b/openmp/runtime/src/ompt-event-specific.h
@@ -105,4 +105,8 @@
#define ompt_callback_cancel_implemented ompt_event_MAY_ALWAYS_OPTIONAL
+#define ompt_callback_reduction_implemented ompt_event_UNIMPLEMENTED
+
+#define ompt_callback_dispatch_implemented ompt_event_UNIMPLEMENTED
+
#endif
diff --git a/openmp/runtime/src/ompt-general.cpp b/openmp/runtime/src/ompt-general.cpp
index 25ad19d03af..964f6cdd1d8 100644
--- a/openmp/runtime/src/ompt-general.cpp
+++ b/openmp/runtime/src/ompt-general.cpp
@@ -351,7 +351,7 @@ void ompt_post_init() {
return;
}
- ompt_thread_t *root_thread = ompt_get_thread();
+ kmp_info_t *root_thread = ompt_get_thread();
ompt_set_thread_state(root_thread, omp_state_overhead);
@@ -509,6 +509,12 @@ OMPT_API_ROUTINE int ompt_get_task_info(int ancestor_level, int *type,
task_frame, parallel_data, thread_num);
}
+OMPT_API_ROUTINE int ompt_get_task_memory(void **addr, size_t *size,
+ int block) {
+ // stub
+ return 0;
+}
+
/*****************************************************************************
* num_procs
****************************************************************************/
@@ -678,6 +684,10 @@ OMPT_API_ROUTINE uint64_t ompt_get_unique_id(void) {
return __ompt_get_unique_id_internal();
}
+OMPT_API_ROUTINE void ompt_finalize_tool(void) {
+ // stub
+}
+
/*****************************************************************************
* Target
****************************************************************************/
diff --git a/openmp/runtime/src/ompt-internal.h b/openmp/runtime/src/ompt-internal.h
index a8f3bac49a4..6b92eaa5e49 100644
--- a/openmp/runtime/src/ompt-internal.h
+++ b/openmp/runtime/src/ompt-internal.h
@@ -22,7 +22,8 @@
#define _OMP_EXTERN extern "C"
#define OMPT_INVOKER(x) \
- ((x == fork_context_gnu) ? ompt_invoker_program : ompt_invoker_runtime)
+ ((x == fork_context_gnu) ? ompt_parallel_invoker_program \
+ : ompt_parallel_invoker_runtime)
#define ompt_callback(e) e##_callback
diff --git a/openmp/runtime/src/ompt-specific.h b/openmp/runtime/src/ompt-specific.h
index 28905bb5dc4..8cf74504a2d 100644
--- a/openmp/runtime/src/ompt-specific.h
+++ b/openmp/runtime/src/ompt-specific.h
@@ -17,25 +17,19 @@
#include "kmp.h"
/*****************************************************************************
- * types
- ****************************************************************************/
-
-typedef kmp_info_t ompt_thread_t;
-
-/*****************************************************************************
* forward declarations
****************************************************************************/
void __ompt_team_assign_id(kmp_team_t *team, ompt_data_t ompt_pid);
void __ompt_thread_assign_wait_id(void *variable);
-void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, ompt_thread_t *thr,
+void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, kmp_info_t *thr,
int gtid, ompt_data_t *ompt_pid, void *codeptr);
-void __ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, ompt_thread_t *thr,
+void __ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, kmp_info_t *thr,
int on_heap);
-void __ompt_lw_taskteam_unlink(ompt_thread_t *thr);
+void __ompt_lw_taskteam_unlink(kmp_info_t *thr);
ompt_team_info_t *__ompt_get_teaminfo(int depth, int *size);
@@ -90,16 +84,16 @@ inline void *__ompt_load_return_address(int gtid) {
// inline functions
//******************************************************************************
-inline ompt_thread_t *ompt_get_thread_gtid(int gtid) {
+inline kmp_info_t *ompt_get_thread_gtid(int gtid) {
return (gtid >= 0) ? __kmp_thread_from_gtid(gtid) : NULL;
}
-inline ompt_thread_t *ompt_get_thread() {
+inline kmp_info_t *ompt_get_thread() {
int gtid = __kmp_get_gtid();
return ompt_get_thread_gtid(gtid);
}
-inline void ompt_set_thread_state(ompt_thread_t *thread, omp_state_t state) {
+inline void ompt_set_thread_state(kmp_info_t *thread, omp_state_t state) {
thread->th.ompt_thread_info.state = state;
}
OpenPOWER on IntegriCloud