1 #ifndef __OMPT_EVENT_SPECIFIC_H__ 2 #define __OMPT_EVENT_SPECIFIC_H__ 3 4 /****************************************************************************** 5 * File: ompt-event-specific.h 6 * 7 * Description: 8 * 9 * specify which of the OMPT events are implemented by this runtime system 10 * and the level of their implementation by a runtime system. 11 *****************************************************************************/ 12 13 #define _ompt_tokenpaste_helper(x,y) x ## y 14 #define _ompt_tokenpaste(x,y) _ompt_tokenpaste_helper(x,y) 15 #define ompt_event_implementation_status(e) _ompt_tokenpaste(e,_implemented) 16 17 18 /*---------------------------------------------------------------------------- 19 | Specify whether an event may occur or not, and whether event callbacks 20 | never, sometimes, or always occur. 21 | 22 | The values for these constants are defined in section 6.1.2 of 23 | the OMPT TR. They are exposed to tools through ompt_set_callback. 24 +--------------------------------------------------------------------------*/ 25 26 #define ompt_event_NEVER ompt_set_result_event_never_occurs 27 #define ompt_event_UNIMPLEMENTED ompt_set_result_event_may_occur_no_callback 28 #define ompt_event_MAY_CONVENIENT ompt_set_result_event_may_occur_callback_some 29 #define ompt_event_MAY_ALWAYS ompt_set_result_event_may_occur_callback_always 30 31 #if OMPT_TRACE 32 #define ompt_event_MAY_ALWAYS_TRACE ompt_event_MAY_ALWAYS 33 #else 34 #define ompt_event_MAY_ALWAYS_TRACE ompt_event_UNIMPLEMENTED 35 #endif 36 37 #if OMPT_BLAME 38 #define ompt_event_MAY_ALWAYS_BLAME ompt_event_MAY_ALWAYS 39 #else 40 #define ompt_event_MAY_ALWAYS_BLAME ompt_event_UNIMPLEMENTED 41 #endif 42 43 /*---------------------------------------------------------------------------- 44 | Mandatory Events 45 +--------------------------------------------------------------------------*/ 46 47 #define ompt_event_parallel_begin_implemented ompt_event_MAY_ALWAYS 48 #define ompt_event_parallel_end_implemented ompt_event_MAY_ALWAYS 49 50 #define ompt_event_task_begin_implemented ompt_event_MAY_ALWAYS 51 #define ompt_event_task_end_implemented ompt_event_MAY_ALWAYS 52 53 #define ompt_event_thread_begin_implemented ompt_event_MAY_ALWAYS 54 #define ompt_event_thread_end_implemented ompt_event_MAY_ALWAYS 55 56 #define ompt_event_control_implemented ompt_event_MAY_ALWAYS 57 58 #define ompt_event_runtime_shutdown_implemented ompt_event_MAY_ALWAYS 59 60 61 /*---------------------------------------------------------------------------- 62 | Optional Events (blame shifting) 63 +--------------------------------------------------------------------------*/ 64 65 #define ompt_event_idle_begin_implemented ompt_event_MAY_ALWAYS_BLAME 66 #define ompt_event_idle_end_implemented ompt_event_MAY_ALWAYS_BLAME 67 68 #define ompt_event_wait_barrier_begin_implemented ompt_event_MAY_ALWAYS_BLAME 69 #define ompt_event_wait_barrier_end_implemented ompt_event_MAY_ALWAYS_BLAME 70 71 #define ompt_event_wait_taskwait_begin_implemented ompt_event_UNIMPLEMENTED 72 #define ompt_event_wait_taskwait_end_implemented ompt_event_UNIMPLEMENTED 73 74 #define ompt_event_wait_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED 75 #define ompt_event_wait_taskgroup_end_implemented ompt_event_UNIMPLEMENTED 76 77 #define ompt_event_release_lock_implemented ompt_event_MAY_ALWAYS_BLAME 78 #define ompt_event_release_nest_lock_last_implemented ompt_event_MAY_ALWAYS_BLAME 79 #define ompt_event_release_critical_implemented ompt_event_MAY_ALWAYS_BLAME 80 #define ompt_event_release_atomic_implemented ompt_event_MAY_ALWAYS_BLAME 81 #define ompt_event_release_ordered_implemented ompt_event_MAY_ALWAYS_BLAME 82 83 84 /*---------------------------------------------------------------------------- 85 | Optional Events (synchronous events) 86 +--------------------------------------------------------------------------*/ 87 88 #define ompt_event_implicit_task_begin_implemented ompt_event_MAY_ALWAYS_TRACE 89 #define ompt_event_implicit_task_end_implemented ompt_event_MAY_ALWAYS_TRACE 90 91 #define ompt_event_initial_task_begin_implemented ompt_event_UNIMPLEMENTED 92 #define ompt_event_initial_task_end_implemented ompt_event_UNIMPLEMENTED 93 94 #define ompt_event_task_switch_implemented ompt_event_MAY_ALWAYS_TRACE 95 96 #define ompt_event_loop_begin_implemented ompt_event_MAY_ALWAYS_TRACE 97 #define ompt_event_loop_end_implemented ompt_event_MAY_ALWAYS_TRACE 98 99 #define ompt_event_sections_begin_implemented ompt_event_UNIMPLEMENTED 100 #define ompt_event_sections_end_implemented ompt_event_UNIMPLEMENTED 101 102 #define ompt_event_single_in_block_begin_implemented ompt_event_MAY_ALWAYS_TRACE 103 #define ompt_event_single_in_block_end_implemented ompt_event_MAY_ALWAYS_TRACE 104 #define ompt_event_single_others_begin_implemented ompt_event_MAY_ALWAYS_TRACE 105 #define ompt_event_single_others_end_implemented ompt_event_MAY_ALWAYS_TRACE 106 107 #define ompt_event_workshare_begin_implemented ompt_event_UNIMPLEMENTED 108 #define ompt_event_workshare_end_implemented ompt_event_UNIMPLEMENTED 109 110 #define ompt_event_master_begin_implemented ompt_event_MAY_ALWAYS_TRACE 111 #define ompt_event_master_end_implemented ompt_event_MAY_ALWAYS_TRACE 112 113 #define ompt_event_barrier_begin_implemented ompt_event_MAY_ALWAYS_TRACE 114 #define ompt_event_barrier_end_implemented ompt_event_MAY_ALWAYS_TRACE 115 116 #define ompt_event_taskwait_begin_implemented ompt_event_MAY_ALWAYS_TRACE 117 #define ompt_event_taskwait_end_implemented ompt_event_MAY_ALWAYS_TRACE 118 119 #define ompt_event_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED 120 #define ompt_event_taskgroup_end_implemented ompt_event_UNIMPLEMENTED 121 122 #define ompt_event_release_nest_lock_prev_implemented ompt_event_MAY_ALWAYS_TRACE 123 #define ompt_event_wait_lock_implemented ompt_event_UNIMPLEMENTED 124 #define ompt_event_wait_nest_lock_implemented ompt_event_UNIMPLEMENTED 125 #define ompt_event_wait_critical_implemented ompt_event_UNIMPLEMENTED 126 #define ompt_event_wait_atomic_implemented ompt_event_MAY_ALWAYS_TRACE 127 #define ompt_event_wait_ordered_implemented ompt_event_MAY_ALWAYS_TRACE 128 129 #define ompt_event_acquired_lock_implemented ompt_event_MAY_ALWAYS_TRACE 130 #define ompt_event_acquired_nest_lock_first_implemented ompt_event_MAY_ALWAYS_TRACE 131 #define ompt_event_acquired_nest_lock_next_implemented ompt_event_MAY_ALWAYS_TRACE 132 #define ompt_event_acquired_critical_implemented ompt_event_UNIMPLEMENTED 133 #define ompt_event_acquired_atomic_implemented ompt_event_MAY_ALWAYS_TRACE 134 #define ompt_event_acquired_ordered_implemented ompt_event_MAY_ALWAYS_TRACE 135 136 #define ompt_event_init_lock_implemented ompt_event_MAY_ALWAYS_TRACE 137 #define ompt_event_init_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE 138 139 #define ompt_event_destroy_lock_implemented ompt_event_MAY_ALWAYS_TRACE 140 #define ompt_event_destroy_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE 141 142 #define ompt_event_flush_implemented ompt_event_UNIMPLEMENTED 143 144 #if OMP_40_ENABLED 145 # define ompt_event_task_dependences_implemented ompt_event_MAY_ALWAYS_TRACE 146 # define ompt_event_task_dependence_pair_implemented ompt_event_MAY_ALWAYS_TRACE 147 #else 148 # define ompt_event_task_dependences_implemented ompt_event_UNIMPLEMENTED 149 # define ompt_event_task_dependence_pair_implemented ompt_event_UNIMPLEMENTED 150 #endif /* OMP_40_ENABLED */ 151 152 #endif 153