[Openmp-commits] [openmp] r316234 - Restrict OMPT to OpenMP version 5.0 and remove old header files
Jonathan Peyton via Openmp-commits
openmp-commits at lists.llvm.org
Fri Oct 20 13:14:46 PDT 2017
Author: jlpeyton
Date: Fri Oct 20 13:14:46 2017
New Revision: 316234
URL: http://llvm.org/viewvc/llvm-project?rev=316234&view=rev
Log:
Restrict OMPT to OpenMP version 5.0 and remove old header files
Patch by Simon Convent
Differential Revision: https://reviews.llvm.org/D38876
Removed:
openmp/trunk/runtime/src/include/30/ompt.h.var
openmp/trunk/runtime/src/include/40/ompt.h.var
openmp/trunk/runtime/src/include/45/ompt.h.var
Modified:
openmp/trunk/runtime/CMakeLists.txt
Modified: openmp/trunk/runtime/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/CMakeLists.txt?rev=316234&r1=316233&r2=316234&view=diff
==============================================================================
--- openmp/trunk/runtime/CMakeLists.txt (original)
+++ openmp/trunk/runtime/CMakeLists.txt Fri Oct 20 13:14:46 2017
@@ -328,7 +328,10 @@ set(LIBOMP_OMPT_BLAME TRUE CACHE BOOL
set(LIBOMP_OMPT_TRACE TRUE CACHE BOOL
"OMPT-trace?")
if(LIBOMP_OMPT_SUPPORT AND (NOT LIBOMP_HAVE_OMPT_SUPPORT))
- libomp_error_say("OpenMP Tools Interface requested but not available")
+ libomp_error_say("OpenMP Tools Interface requested but not available in this implementation")
+endif()
+if(LIBOMP_OMPT_SUPPORT AND (${LIBOMP_OMP_VERSION} LESS 50))
+ libomp_error_say("OpenMP Tools Interface only available with OpenMP 5.0, LIBOMP_OMP_VERSION is ${LIBOMP_OMP_VERSION}")
endif()
# TSAN-support
Removed: openmp/trunk/runtime/src/include/30/ompt.h.var
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/include/30/ompt.h.var?rev=316233&view=auto
==============================================================================
--- openmp/trunk/runtime/src/include/30/ompt.h.var (original)
+++ openmp/trunk/runtime/src/include/30/ompt.h.var (removed)
@@ -1,488 +0,0 @@
-/*
- * include/30/ompt.h.var
- */
-
-#ifndef __OMPT__
-#define __OMPT__
-
-/*****************************************************************************
- * system include files
- *****************************************************************************/
-
-#include <stdint.h>
-
-
-
-/*****************************************************************************
- * iteration macros
- *****************************************************************************/
-
-#define FOREACH_OMPT_INQUIRY_FN(macro) \
- macro (ompt_enumerate_state) \
- \
- macro (ompt_set_callback) \
- macro (ompt_get_callback) \
- \
- macro (ompt_get_idle_frame) \
- macro (ompt_get_task_frame) \
- \
- macro (ompt_get_state) \
- \
- macro (ompt_get_parallel_id) \
- macro (ompt_get_parallel_team_size) \
- macro (ompt_get_task_id) \
- macro (ompt_get_thread_id)
-
-#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \
- macro (ompt_idle) \
- macro (ompt_overhead) \
- macro (ompt_barrier_wait) \
- macro (ompt_task_wait) \
- macro (ompt_mutex_wait)
-
-#define FOREACH_OMPT_STATE(macro) \
- \
- /* first */ \
- macro (ompt_state_first, 0x71) /* initial enumeration state */ \
- \
- /* work states (0..15) */ \
- macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \
- macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \
- macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \
- \
- /* idle (16..31) */ \
- macro (ompt_state_idle, 0x10) /* waiting for work */ \
- \
- /* overhead states (32..63) */ \
- macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \
- \
- /* barrier wait states (64..79) */ \
- macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \
- macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \
- macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \
- \
- /* task wait states (80..95) */ \
- macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \
- macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \
- \
- /* mutex wait states (96..111) */ \
- macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \
- macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \
- macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \
- macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \
- macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \
- macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \
- \
- /* misc (112..127) */ \
- macro (ompt_state_undefined, 0x70) /* undefined thread state */
-
-
-#define FOREACH_OMPT_EVENT(macro) \
- \
- /*--- Mandatory Events ---*/ \
- macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \
- macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \
- \
- macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \
- macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \
- \
- macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \
- macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \
- \
- macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \
- \
- macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \
- \
- /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \
- macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \
- macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \
- \
- macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \
- macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \
- \
- macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \
- macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \
- \
- macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\
- macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \
- \
- macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \
- macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \
- macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \
- \
- macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \
- \
- macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \
- \
- /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \
- macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \
- macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \
- \
- macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \
- macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \
- \
- macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \
- \
- macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \
- macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \
- \
- macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\
- macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \
- \
- macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \
- macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \
- \
- macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \
- macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \
- \
- macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\
- macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \
- \
- macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \
- macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \
- \
- macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \
- macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \
- \
- macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \
- macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \
- \
- macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\
- macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \
- \
- macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \
- \
- macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \
- macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \
- macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \
- macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \
- macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \
- \
- macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \
- macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \
- macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \
- macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \
- macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \
- macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \
- \
- macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \
- macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \
- \
- macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \
- macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \
- \
- macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */
-
-
-
-/*****************************************************************************
- * data types
- *****************************************************************************/
-
-/*---------------------
- * identifiers
- *---------------------*/
-
-typedef uint64_t ompt_thread_id_t;
-#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_task_id_t;
-#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_parallel_id_t;
-#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_wait_id_t;
-#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */
-
-
-/*---------------------
- * ompt_frame_t
- *---------------------*/
-
-typedef struct ompt_frame_s {
- void *exit_runtime_frame; /* next frame is user code */
- void *reenter_runtime_frame; /* previous frame is user code */
-} ompt_frame_t;
-
-
-/*****************************************************************************
- * enumerations for thread states and runtime events
- *****************************************************************************/
-
-/*---------------------
- * runtime states
- *---------------------*/
-
-typedef enum {
-#define ompt_state_macro(state, code) state = code,
- FOREACH_OMPT_STATE(ompt_state_macro)
-#undef ompt_state_macro
-} ompt_state_t;
-
-
-/*---------------------
- * runtime events
- *---------------------*/
-
-typedef enum {
-#define ompt_event_macro(event, callback, eventid) event = eventid,
- FOREACH_OMPT_EVENT(ompt_event_macro)
-#undef ompt_event_macro
-} ompt_event_t;
-
-
-/*---------------------
- * set callback results
- *---------------------*/
-typedef enum {
- ompt_set_result_registration_error = 0,
- ompt_set_result_event_may_occur_no_callback = 1,
- ompt_set_result_event_never_occurs = 2,
- ompt_set_result_event_may_occur_callback_some = 3,
- ompt_set_result_event_may_occur_callback_always = 4,
-} ompt_set_result_t;
-
-
-
-/*****************************************************************************
- * callback signatures
- *****************************************************************************/
-
-/* initialization */
-typedef void (*ompt_interface_fn_t)(void);
-
-typedef ompt_interface_fn_t (*ompt_function_lookup_t)(
- const char * /* entry point to look up */
-);
-
-/* threads */
-typedef void (*ompt_thread_callback_t) (
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef enum {
- ompt_thread_initial = 1, // start the enumeration at 1
- ompt_thread_worker = 2,
- ompt_thread_other = 3
-} ompt_thread_type_t;
-
-typedef enum {
- ompt_invoker_program = 0, /* program invokes master task */
- ompt_invoker_runtime = 1 /* runtime invokes master task */
-} ompt_invoker_t;
-
-typedef void (*ompt_thread_type_callback_t) (
- ompt_thread_type_t thread_type, /* type of thread */
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef void (*ompt_wait_callback_t) (
- ompt_wait_id_t wait_id /* wait id */
-);
-
-/* parallel and workshares */
-typedef void (*ompt_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_new_workshare_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t parent_task_id, /* id of parent task */
- void *workshare_function /* pointer to outlined function */
-);
-
-typedef void (*ompt_new_parallel_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data of parent task */
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- uint32_t requested_team_size, /* number of threads in team */
- void *parallel_function, /* pointer to outlined function */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-typedef void (*ompt_end_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id, /* id of task */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-/* tasks */
-typedef void (*ompt_task_callback_t) (
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_task_pair_callback_t) (
- ompt_task_id_t first_task_id,
- ompt_task_id_t second_task_id
-);
-
-typedef void (*ompt_new_task_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data for parent task */
- ompt_task_id_t new_task_id, /* id of created task */
- void *task_function /* pointer to outlined function */
-);
-
-/* program */
-typedef void (*ompt_control_callback_t) (
- uint64_t command, /* command of control call */
- uint64_t modifier /* modifier of control call */
-);
-
-typedef void (*ompt_callback_t)(void);
-
-
-/****************************************************************************
- * ompt API
- ***************************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define OMPT_API_FNTYPE(fn) fn##_t
-
-#define OMPT_API_FUNCTION(return_type, fn, args) \
- typedef return_type (*OMPT_API_FNTYPE(fn)) args
-
-
-
-/****************************************************************************
- * INQUIRY FUNCTIONS
- ***************************************************************************/
-
-/* state */
-OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, (
- ompt_wait_id_t *ompt_wait_id
-));
-
-/* thread */
-OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void));
-
-OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void));
-
-/* parallel region */
-OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, (
- int ancestor_level
-));
-
-OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, (
- int ancestor_level
-));
-
-/* task */
-OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, (
- int depth
-));
-
-OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, (
- int depth
-));
-
-
-
-/****************************************************************************
- * PLACEHOLDERS FOR PERFORMANCE REPORTING
- ***************************************************************************/
-
-/* idle */
-OMPT_API_FUNCTION(void, ompt_idle, (
- void
-));
-
-/* overhead */
-OMPT_API_FUNCTION(void, ompt_overhead, (
- void
-));
-
-/* barrier wait */
-OMPT_API_FUNCTION(void, ompt_barrier_wait, (
- void
-));
-
-/* task wait */
-OMPT_API_FUNCTION(void, ompt_task_wait, (
- void
-));
-
-/* mutex wait */
-OMPT_API_FUNCTION(void, ompt_mutex_wait, (
- void
-));
-
-
-
-/****************************************************************************
- * INITIALIZATION FUNCTIONS
- ***************************************************************************/
-
-OMPT_API_FUNCTION(void, ompt_initialize, (
- ompt_function_lookup_t ompt_fn_lookup,
- const char *runtime_version,
- unsigned int ompt_version
-));
-
-
-/* initialization interface to be defined by tool */
-ompt_initialize_t ompt_tool(void);
-
-typedef enum opt_init_mode_e {
- ompt_init_mode_never = 0,
- ompt_init_mode_false = 1,
- ompt_init_mode_true = 2,
- ompt_init_mode_always = 3
-} ompt_init_mode_t;
-
-OMPT_API_FUNCTION(int, ompt_set_callback, (
- ompt_event_t event,
- ompt_callback_t callback
-));
-
-typedef enum ompt_set_callback_rc_e { /* non-standard */
- ompt_set_callback_error = 0,
- ompt_has_event_no_callback = 1,
- ompt_no_event_no_callback = 2,
- ompt_has_event_may_callback = 3,
- ompt_has_event_must_callback = 4,
-} ompt_set_callback_rc_t;
-
-
-OMPT_API_FUNCTION(int, ompt_get_callback, (
- ompt_event_t event,
- ompt_callback_t *callback
-));
-
-
-
-/****************************************************************************
- * MISCELLANEOUS FUNCTIONS
- ***************************************************************************/
-
-/* control */
-// FIXME: remove workaround for clang
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp declare target
-#endif
-void ompt_control(
- uint64_t command,
- uint64_t modifier
-);
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp end declare target
-#endif
-
-/* state enumeration */
-OMPT_API_FUNCTION(int, ompt_enumerate_state, (
- int current_state,
- int *next_state,
- const char **next_state_name
-));
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
Removed: openmp/trunk/runtime/src/include/40/ompt.h.var
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/include/40/ompt.h.var?rev=316233&view=auto
==============================================================================
--- openmp/trunk/runtime/src/include/40/ompt.h.var (original)
+++ openmp/trunk/runtime/src/include/40/ompt.h.var (removed)
@@ -1,515 +0,0 @@
-/*
- * include/40/ompt.h.var
- */
-
-#ifndef __OMPT__
-#define __OMPT__
-
-/*****************************************************************************
- * system include files
- *****************************************************************************/
-
-#include <stdint.h>
-
-
-
-/*****************************************************************************
- * iteration macros
- *****************************************************************************/
-
-#define FOREACH_OMPT_INQUIRY_FN(macro) \
- macro (ompt_enumerate_state) \
- \
- macro (ompt_set_callback) \
- macro (ompt_get_callback) \
- \
- macro (ompt_get_idle_frame) \
- macro (ompt_get_task_frame) \
- \
- macro (ompt_get_state) \
- \
- macro (ompt_get_parallel_id) \
- macro (ompt_get_parallel_team_size) \
- macro (ompt_get_task_id) \
- macro (ompt_get_thread_id)
-
-#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \
- macro (ompt_idle) \
- macro (ompt_overhead) \
- macro (ompt_barrier_wait) \
- macro (ompt_task_wait) \
- macro (ompt_mutex_wait)
-
-#define FOREACH_OMPT_STATE(macro) \
- \
- /* first */ \
- macro (ompt_state_first, 0x71) /* initial enumeration state */ \
- \
- /* work states (0..15) */ \
- macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \
- macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \
- macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \
- \
- /* idle (16..31) */ \
- macro (ompt_state_idle, 0x10) /* waiting for work */ \
- \
- /* overhead states (32..63) */ \
- macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \
- \
- /* barrier wait states (64..79) */ \
- macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \
- macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \
- macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \
- \
- /* task wait states (80..95) */ \
- macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \
- macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \
- \
- /* mutex wait states (96..111) */ \
- macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \
- macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \
- macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \
- macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \
- macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \
- macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \
- \
- /* misc (112..127) */ \
- macro (ompt_state_undefined, 0x70) /* undefined thread state */
-
-
-#define FOREACH_OMPT_EVENT(macro) \
- \
- /*--- Mandatory Events ---*/ \
- macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \
- macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \
- \
- macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \
- macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \
- \
- macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \
- macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \
- \
- macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \
- \
- macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \
- \
- /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \
- macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \
- macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \
- \
- macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \
- macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \
- \
- macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \
- macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \
- \
- macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\
- macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \
- \
- macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \
- macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \
- macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \
- \
- macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \
- \
- macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \
- \
- /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \
- macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \
- macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \
- \
- macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \
- macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \
- \
- macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \
- \
- macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \
- macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \
- \
- macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\
- macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \
- \
- macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \
- macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \
- \
- macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \
- macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \
- \
- macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\
- macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \
- \
- macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \
- macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \
- \
- macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \
- macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \
- \
- macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \
- macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \
- \
- macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\
- macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \
- \
- macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \
- \
- macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \
- macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \
- macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \
- macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \
- macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \
- \
- macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \
- macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \
- macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \
- macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \
- macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \
- macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \
- \
- macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \
- macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \
- \
- macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \
- macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \
- \
- macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */ \
- \
- macro (ompt_event_task_dependences, ompt_task_dependences_callback_t, 69) /* report task dependences */\
- macro (ompt_event_task_dependence_pair, ompt_task_pair_callback_t, 70) /* report task dependence pair */
-
-
-
-/*****************************************************************************
- * data types
- *****************************************************************************/
-
-/*---------------------
- * identifiers
- *---------------------*/
-
-typedef uint64_t ompt_thread_id_t;
-#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_task_id_t;
-#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_parallel_id_t;
-#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_wait_id_t;
-#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */
-
-
-/*---------------------
- * ompt_frame_t
- *---------------------*/
-
-typedef struct ompt_frame_s {
- void *exit_runtime_frame; /* next frame is user code */
- void *reenter_runtime_frame; /* previous frame is user code */
-} ompt_frame_t;
-
-
-/*---------------------
- * dependences types
- *---------------------*/
-
-typedef enum ompt_task_dependence_flag_e {
- // 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;
-
-typedef struct ompt_task_dependence_s {
- void *variable_addr;
- uint32_t dependence_flags;
-} ompt_task_dependence_t;
-
-
-/*****************************************************************************
- * enumerations for thread states and runtime events
- *****************************************************************************/
-
-/*---------------------
- * runtime states
- *---------------------*/
-
-typedef enum {
-#define ompt_state_macro(state, code) state = code,
- FOREACH_OMPT_STATE(ompt_state_macro)
-#undef ompt_state_macro
-} ompt_state_t;
-
-
-/*---------------------
- * runtime events
- *---------------------*/
-
-typedef enum {
-#define ompt_event_macro(event, callback, eventid) event = eventid,
- FOREACH_OMPT_EVENT(ompt_event_macro)
-#undef ompt_event_macro
-} ompt_event_t;
-
-
-/*---------------------
- * set callback results
- *---------------------*/
-typedef enum {
- ompt_set_result_registration_error = 0,
- ompt_set_result_event_may_occur_no_callback = 1,
- ompt_set_result_event_never_occurs = 2,
- ompt_set_result_event_may_occur_callback_some = 3,
- ompt_set_result_event_may_occur_callback_always = 4,
-} ompt_set_result_t;
-
-
-
-/*****************************************************************************
- * callback signatures
- *****************************************************************************/
-
-/* initialization */
-typedef void (*ompt_interface_fn_t)(void);
-
-typedef ompt_interface_fn_t (*ompt_function_lookup_t)(
- const char * /* entry point to look up */
-);
-
-/* threads */
-typedef void (*ompt_thread_callback_t) (
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef enum {
- ompt_thread_initial = 1, // start the enumeration at 1
- ompt_thread_worker = 2,
- ompt_thread_other = 3
-} ompt_thread_type_t;
-
-typedef enum {
- ompt_invoker_program = 0, /* program invokes master task */
- ompt_invoker_runtime = 1 /* runtime invokes master task */
-} ompt_invoker_t;
-
-typedef void (*ompt_thread_type_callback_t) (
- ompt_thread_type_t thread_type, /* type of thread */
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef void (*ompt_wait_callback_t) (
- ompt_wait_id_t wait_id /* wait id */
-);
-
-/* parallel and workshares */
-typedef void (*ompt_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_new_workshare_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t parent_task_id, /* id of parent task */
- void *workshare_function /* pointer to outlined function */
-);
-
-typedef void (*ompt_new_parallel_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data of parent task */
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- uint32_t requested_team_size, /* number of threads in team */
- void *parallel_function, /* pointer to outlined function */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-typedef void (*ompt_end_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id, /* id of task */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-/* tasks */
-typedef void (*ompt_task_callback_t) (
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_task_pair_callback_t) (
- ompt_task_id_t first_task_id,
- ompt_task_id_t second_task_id
-);
-
-typedef void (*ompt_new_task_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data for parent task */
- ompt_task_id_t new_task_id, /* id of created task */
- void *task_function /* pointer to outlined function */
-);
-
-/* task dependences */
-typedef void (*ompt_task_dependences_callback_t) (
- ompt_task_id_t task_id, /* ID of task with dependences */
- const ompt_task_dependence_t *deps,/* vector of task dependences */
- int ndeps /* number of dependences */
-);
-
-/* program */
-typedef void (*ompt_control_callback_t) (
- uint64_t command, /* command of control call */
- uint64_t modifier /* modifier of control call */
-);
-
-typedef void (*ompt_callback_t)(void);
-
-
-/****************************************************************************
- * ompt API
- ***************************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define OMPT_API_FNTYPE(fn) fn##_t
-
-#define OMPT_API_FUNCTION(return_type, fn, args) \
- typedef return_type (*OMPT_API_FNTYPE(fn)) args
-
-
-
-/****************************************************************************
- * INQUIRY FUNCTIONS
- ***************************************************************************/
-
-/* state */
-OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, (
- ompt_wait_id_t *ompt_wait_id
-));
-
-/* thread */
-OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void));
-
-OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void));
-
-/* parallel region */
-OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, (
- int ancestor_level
-));
-
-OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, (
- int ancestor_level
-));
-
-/* task */
-OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, (
- int depth
-));
-
-OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, (
- int depth
-));
-
-
-
-/****************************************************************************
- * PLACEHOLDERS FOR PERFORMANCE REPORTING
- ***************************************************************************/
-
-/* idle */
-OMPT_API_FUNCTION(void, ompt_idle, (
- void
-));
-
-/* overhead */
-OMPT_API_FUNCTION(void, ompt_overhead, (
- void
-));
-
-/* barrier wait */
-OMPT_API_FUNCTION(void, ompt_barrier_wait, (
- void
-));
-
-/* task wait */
-OMPT_API_FUNCTION(void, ompt_task_wait, (
- void
-));
-
-/* mutex wait */
-OMPT_API_FUNCTION(void, ompt_mutex_wait, (
- void
-));
-
-
-
-/****************************************************************************
- * INITIALIZATION FUNCTIONS
- ***************************************************************************/
-
-OMPT_API_FUNCTION(void, ompt_initialize, (
- ompt_function_lookup_t ompt_fn_lookup,
- const char *runtime_version,
- unsigned int ompt_version
-));
-
-
-/* initialization interface to be defined by tool */
-ompt_initialize_t ompt_tool(void);
-
-typedef enum opt_init_mode_e {
- ompt_init_mode_never = 0,
- ompt_init_mode_false = 1,
- ompt_init_mode_true = 2,
- ompt_init_mode_always = 3
-} ompt_init_mode_t;
-
-OMPT_API_FUNCTION(int, ompt_set_callback, (
- ompt_event_t event,
- ompt_callback_t callback
-));
-
-typedef enum ompt_set_callback_rc_e { /* non-standard */
- ompt_set_callback_error = 0,
- ompt_has_event_no_callback = 1,
- ompt_no_event_no_callback = 2,
- ompt_has_event_may_callback = 3,
- ompt_has_event_must_callback = 4,
-} ompt_set_callback_rc_t;
-
-
-OMPT_API_FUNCTION(int, ompt_get_callback, (
- ompt_event_t event,
- ompt_callback_t *callback
-));
-
-
-
-/****************************************************************************
- * MISCELLANEOUS FUNCTIONS
- ***************************************************************************/
-
-/* control */
-// FIXME: remove workaround for clang
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp declare target
-#endif
-void ompt_control(
- uint64_t command,
- uint64_t modifier
-);
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp end declare target
-#endif
-
-/* state enumeration */
-OMPT_API_FUNCTION(int, ompt_enumerate_state, (
- int current_state,
- int *next_state,
- const char **next_state_name
-));
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
Removed: openmp/trunk/runtime/src/include/45/ompt.h.var
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/include/45/ompt.h.var?rev=316233&view=auto
==============================================================================
--- openmp/trunk/runtime/src/include/45/ompt.h.var (original)
+++ openmp/trunk/runtime/src/include/45/ompt.h.var (removed)
@@ -1,515 +0,0 @@
-/*
- * include/45/ompt.h.var
- */
-
-#ifndef __OMPT__
-#define __OMPT__
-
-/*****************************************************************************
- * system include files
- *****************************************************************************/
-
-#include <stdint.h>
-
-
-
-/*****************************************************************************
- * iteration macros
- *****************************************************************************/
-
-#define FOREACH_OMPT_INQUIRY_FN(macro) \
- macro (ompt_enumerate_state) \
- \
- macro (ompt_set_callback) \
- macro (ompt_get_callback) \
- \
- macro (ompt_get_idle_frame) \
- macro (ompt_get_task_frame) \
- \
- macro (ompt_get_state) \
- \
- macro (ompt_get_parallel_id) \
- macro (ompt_get_parallel_team_size) \
- macro (ompt_get_task_id) \
- macro (ompt_get_thread_id)
-
-#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \
- macro (ompt_idle) \
- macro (ompt_overhead) \
- macro (ompt_barrier_wait) \
- macro (ompt_task_wait) \
- macro (ompt_mutex_wait)
-
-#define FOREACH_OMPT_STATE(macro) \
- \
- /* first */ \
- macro (ompt_state_first, 0x71) /* initial enumeration state */ \
- \
- /* work states (0..15) */ \
- macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \
- macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \
- macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \
- \
- /* idle (16..31) */ \
- macro (ompt_state_idle, 0x10) /* waiting for work */ \
- \
- /* overhead states (32..63) */ \
- macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \
- \
- /* barrier wait states (64..79) */ \
- macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \
- macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \
- macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \
- \
- /* task wait states (80..95) */ \
- macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \
- macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \
- \
- /* mutex wait states (96..111) */ \
- macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \
- macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \
- macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \
- macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \
- macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \
- macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \
- \
- /* misc (112..127) */ \
- macro (ompt_state_undefined, 0x70) /* undefined thread state */
-
-
-#define FOREACH_OMPT_EVENT(macro) \
- \
- /*--- Mandatory Events ---*/ \
- macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \
- macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \
- \
- macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \
- macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \
- \
- macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \
- macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \
- \
- macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \
- \
- macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \
- \
- /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \
- macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \
- macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \
- \
- macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \
- macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \
- \
- macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \
- macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \
- \
- macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\
- macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \
- \
- macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \
- macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \
- macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \
- \
- macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \
- \
- macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \
- \
- /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \
- macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \
- macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \
- \
- macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \
- macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \
- \
- macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \
- \
- macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \
- macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \
- \
- macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\
- macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \
- \
- macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \
- macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \
- \
- macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \
- macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \
- \
- macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\
- macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \
- \
- macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \
- macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \
- \
- macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \
- macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \
- \
- macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \
- macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \
- \
- macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\
- macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \
- \
- macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \
- \
- macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \
- macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \
- macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \
- macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \
- macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \
- \
- macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \
- macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \
- macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \
- macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \
- macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \
- macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \
- \
- macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \
- macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \
- \
- macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \
- macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \
- \
- macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */ \
- \
- macro (ompt_event_task_dependences, ompt_task_dependences_callback_t, 69) /* report task dependences */\
- macro (ompt_event_task_dependence_pair, ompt_task_pair_callback_t, 70) /* report task dependence pair */
-
-
-
-/*****************************************************************************
- * data types
- *****************************************************************************/
-
-/*---------------------
- * identifiers
- *---------------------*/
-
-typedef uint64_t ompt_thread_id_t;
-#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_task_id_t;
-#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_parallel_id_t;
-#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */
-
-typedef uint64_t ompt_wait_id_t;
-#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */
-
-
-/*---------------------
- * ompt_frame_t
- *---------------------*/
-
-typedef struct ompt_frame_s {
- void *exit_runtime_frame; /* next frame is user code */
- void *reenter_runtime_frame; /* previous frame is user code */
-} ompt_frame_t;
-
-
-/*---------------------
- * dependences types
- *---------------------*/
-
-typedef enum ompt_task_dependence_flag_e {
- // 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;
-
-typedef struct ompt_task_dependence_s {
- void *variable_addr;
- uint32_t dependence_flags;
-} ompt_task_dependence_t;
-
-
-/*****************************************************************************
- * enumerations for thread states and runtime events
- *****************************************************************************/
-
-/*---------------------
- * runtime states
- *---------------------*/
-
-typedef enum {
-#define ompt_state_macro(state, code) state = code,
- FOREACH_OMPT_STATE(ompt_state_macro)
-#undef ompt_state_macro
-} ompt_state_t;
-
-
-/*---------------------
- * runtime events
- *---------------------*/
-
-typedef enum {
-#define ompt_event_macro(event, callback, eventid) event = eventid,
- FOREACH_OMPT_EVENT(ompt_event_macro)
-#undef ompt_event_macro
-} ompt_event_t;
-
-
-/*---------------------
- * set callback results
- *---------------------*/
-typedef enum {
- ompt_set_result_registration_error = 0,
- ompt_set_result_event_may_occur_no_callback = 1,
- ompt_set_result_event_never_occurs = 2,
- ompt_set_result_event_may_occur_callback_some = 3,
- ompt_set_result_event_may_occur_callback_always = 4,
-} ompt_set_result_t;
-
-
-
-/*****************************************************************************
- * callback signatures
- *****************************************************************************/
-
-/* initialization */
-typedef void (*ompt_interface_fn_t)(void);
-
-typedef ompt_interface_fn_t (*ompt_function_lookup_t)(
- const char * /* entry point to look up */
-);
-
-/* threads */
-typedef void (*ompt_thread_callback_t) (
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef enum {
- ompt_thread_initial = 1, // start the enumeration at 1
- ompt_thread_worker = 2,
- ompt_thread_other = 3
-} ompt_thread_type_t;
-
-typedef enum {
- ompt_invoker_program = 0, /* program invokes master task */
- ompt_invoker_runtime = 1 /* runtime invokes master task */
-} ompt_invoker_t;
-
-typedef void (*ompt_thread_type_callback_t) (
- ompt_thread_type_t thread_type, /* type of thread */
- ompt_thread_id_t thread_id /* ID of thread */
-);
-
-typedef void (*ompt_wait_callback_t) (
- ompt_wait_id_t wait_id /* wait id */
-);
-
-/* parallel and workshares */
-typedef void (*ompt_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_new_workshare_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t parent_task_id, /* id of parent task */
- void *workshare_function /* pointer to outlined function */
-);
-
-typedef void (*ompt_new_parallel_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data of parent task */
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- uint32_t requested_team_size, /* number of threads in team */
- void *parallel_function, /* pointer to outlined function */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-typedef void (*ompt_end_parallel_callback_t) (
- ompt_parallel_id_t parallel_id, /* id of parallel region */
- ompt_task_id_t task_id, /* id of task */
- ompt_invoker_t invoker /* who invokes master task? */
-);
-
-/* tasks */
-typedef void (*ompt_task_callback_t) (
- ompt_task_id_t task_id /* id of task */
-);
-
-typedef void (*ompt_task_pair_callback_t) (
- ompt_task_id_t first_task_id,
- ompt_task_id_t second_task_id
-);
-
-typedef void (*ompt_new_task_callback_t) (
- ompt_task_id_t parent_task_id, /* id of parent task */
- ompt_frame_t *parent_task_frame, /* frame data for parent task */
- ompt_task_id_t new_task_id, /* id of created task */
- void *task_function /* pointer to outlined function */
-);
-
-/* task dependences */
-typedef void (*ompt_task_dependences_callback_t) (
- ompt_task_id_t task_id, /* ID of task with dependences */
- const ompt_task_dependence_t *deps,/* vector of task dependences */
- int ndeps /* number of dependences */
-);
-
-/* program */
-typedef void (*ompt_control_callback_t) (
- uint64_t command, /* command of control call */
- uint64_t modifier /* modifier of control call */
-);
-
-typedef void (*ompt_callback_t)(void);
-
-
-/****************************************************************************
- * ompt API
- ***************************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define OMPT_API_FNTYPE(fn) fn##_t
-
-#define OMPT_API_FUNCTION(return_type, fn, args) \
- typedef return_type (*OMPT_API_FNTYPE(fn)) args
-
-
-
-/****************************************************************************
- * INQUIRY FUNCTIONS
- ***************************************************************************/
-
-/* state */
-OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, (
- ompt_wait_id_t *ompt_wait_id
-));
-
-/* thread */
-OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void));
-
-OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void));
-
-/* parallel region */
-OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, (
- int ancestor_level
-));
-
-OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, (
- int ancestor_level
-));
-
-/* task */
-OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, (
- int depth
-));
-
-OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, (
- int depth
-));
-
-
-
-/****************************************************************************
- * PLACEHOLDERS FOR PERFORMANCE REPORTING
- ***************************************************************************/
-
-/* idle */
-OMPT_API_FUNCTION(void, ompt_idle, (
- void
-));
-
-/* overhead */
-OMPT_API_FUNCTION(void, ompt_overhead, (
- void
-));
-
-/* barrier wait */
-OMPT_API_FUNCTION(void, ompt_barrier_wait, (
- void
-));
-
-/* task wait */
-OMPT_API_FUNCTION(void, ompt_task_wait, (
- void
-));
-
-/* mutex wait */
-OMPT_API_FUNCTION(void, ompt_mutex_wait, (
- void
-));
-
-
-
-/****************************************************************************
- * INITIALIZATION FUNCTIONS
- ***************************************************************************/
-
-OMPT_API_FUNCTION(void, ompt_initialize, (
- ompt_function_lookup_t ompt_fn_lookup,
- const char *runtime_version,
- unsigned int ompt_version
-));
-
-
-/* initialization interface to be defined by tool */
-ompt_initialize_t ompt_tool(void);
-
-typedef enum opt_init_mode_e {
- ompt_init_mode_never = 0,
- ompt_init_mode_false = 1,
- ompt_init_mode_true = 2,
- ompt_init_mode_always = 3
-} ompt_init_mode_t;
-
-OMPT_API_FUNCTION(int, ompt_set_callback, (
- ompt_event_t event,
- ompt_callback_t callback
-));
-
-typedef enum ompt_set_callback_rc_e { /* non-standard */
- ompt_set_callback_error = 0,
- ompt_has_event_no_callback = 1,
- ompt_no_event_no_callback = 2,
- ompt_has_event_may_callback = 3,
- ompt_has_event_must_callback = 4,
-} ompt_set_callback_rc_t;
-
-
-OMPT_API_FUNCTION(int, ompt_get_callback, (
- ompt_event_t event,
- ompt_callback_t *callback
-));
-
-
-
-/****************************************************************************
- * MISCELLANEOUS FUNCTIONS
- ***************************************************************************/
-
-/* control */
-// FIXME: remove workaround for clang
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp declare target
-#endif
-void ompt_control(
- uint64_t command,
- uint64_t modifier
-);
-#if !defined(__clang__) && defined(_OPENMP) && (_OPENMP >= 201307)
-#pragma omp end declare target
-#endif
-
-/* state enumeration */
-OMPT_API_FUNCTION(int, ompt_enumerate_state, (
- int current_state,
- int *next_state,
- const char **next_state_name
-));
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
-
More information about the Openmp-commits
mailing list