macro
static const char *macro[] = {
for (pp = macro ; *pp ; pp++)
macro (ompt_state_idle, 0x100) /* waiting for work */ \
macro (ompt_state_overhead, 0x101) /* overhead excluding wait states */ \
#define FOREACH_KMP_MUTEX_IMPL(macro) \
macro (kmp_mutex_impl_none, 0) /* unknown implementation */ \
macro (kmp_mutex_impl_spin, 1) /* based on spin */ \
macro (kmp_mutex_impl_queuing, 2) /* based on some fair policy */ \
macro (kmp_mutex_impl_speculative, 3) /* based on HW-supported speculation */
#define FOREACH_OMPT_HOST_EVENT(macro) \
macro (ompt_callback_thread_begin, ompt_callback_thread_begin_t, 1) /* thread begin */ \
macro (ompt_callback_thread_end, ompt_callback_thread_end_t, 2) /* thread end */ \
macro (ompt_callback_parallel_begin, ompt_callback_parallel_begin_t, 3) /* parallel begin */ \
macro (ompt_callback_parallel_end, ompt_callback_parallel_end_t, 4) /* parallel end */ \
macro (ompt_callback_task_create, ompt_callback_task_create_t, 5) /* task begin */ \
macro (ompt_callback_task_schedule, ompt_callback_task_schedule_t, 6) /* task schedule */ \
macro (ompt_callback_implicit_task, ompt_callback_implicit_task_t, 7) /* implicit task */ \
macro (ompt_callback_control_tool, ompt_callback_control_tool_t, 11) /* control tool */ \
macro (ompt_callback_sync_region_wait, ompt_callback_sync_region_t, 16) /* sync region wait begin or end */ \
macro (ompt_callback_mutex_released, ompt_callback_mutex_t, 17) /* mutex released */ \
macro (ompt_callback_dependences, ompt_callback_dependences_t, 18) /* report task dependences */ \
macro (ompt_callback_task_dependence, ompt_callback_task_dependence_t, 19) /* report task dependence */ \
macro (ompt_callback_work, ompt_callback_work_t, 20) /* task at work begin or end */ \
macro (ompt_callback_masked, ompt_callback_masked_t, 21) /* task at masked begin or end */ \
macro (ompt_callback_sync_region, ompt_callback_sync_region_t, 23) /* sync region begin or end */ \
macro (ompt_callback_lock_init, ompt_callback_mutex_acquire_t, 24) /* lock init */ \
macro (ompt_callback_lock_destroy, ompt_callback_mutex_t, 25) /* lock destroy */ \
macro (ompt_callback_mutex_acquire, ompt_callback_mutex_acquire_t, 26) /* mutex acquire */ \
macro (ompt_callback_mutex_acquired, ompt_callback_mutex_t, 27) /* mutex acquired */ \
macro (ompt_callback_nest_lock, ompt_callback_nest_lock_t, 28) /* nest lock */ \
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 */ \
macro (ompt_callback_error, ompt_callback_error_t, 37) /* error */
#define FOREACH_OMPT_DEVICE_EVENT(macro) \
macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize */ \
macro (ompt_callback_device_finalize, ompt_callback_device_finalize_t, 13) /* device finalize */ \
macro (ompt_callback_device_load, ompt_callback_device_load_t, 14) /* device load */ \
macro (ompt_callback_device_unload, ompt_callback_device_unload_t, 15) /* device unload */
#define FOREACH_OMPT_NOEMI_EVENT(macro) \
macro (ompt_callback_target, ompt_callback_target_t, 8) /* target */ \
macro (ompt_callback_target_data_op, ompt_callback_target_data_op_t, 9) /* target data op */ \
macro (ompt_callback_target_submit, ompt_callback_target_submit_t, 10) /* target submit */ \
macro (ompt_callback_target_map, ompt_callback_target_map_t, 22) /* target map */
#define FOREACH_OMPT_EMI_EVENT(macro) \
macro (ompt_callback_target_emi, ompt_callback_target_emi_t, 33) /* target */ \
macro (ompt_callback_target_data_op_emi,ompt_callback_target_data_op_emi_t,34) /* target data op */ \
macro (ompt_callback_target_submit_emi, ompt_callback_target_submit_emi_t, 35) /* target submit */ \
macro (ompt_callback_target_map_emi, ompt_callback_target_map_emi_t, 36) /* target map */
#define FOREACH_OMPT_50_TARGET_EVENT(macro) \
FOREACH_OMPT_DEVICE_EVENT(macro) \
FOREACH_OMPT_NOEMI_EVENT(macro)
#define FOREACH_OMPT_51_TARGET_EVENT(macro) \
FOREACH_OMPT_DEVICE_EVENT(macro) \
FOREACH_OMPT_EMI_EVENT(macro)
#define FOREACH_OMPT_EVENT(macro) \
FOREACH_OMPT_HOST_EVENT(macro) \
FOREACH_OMPT_DEVICE_EVENT(macro) \
FOREACH_OMPT_NOEMI_EVENT(macro) \
FOREACH_OMPT_EMI_EVENT(macro)
#define FOREACH_OMPT_51_EVENT(macro) \
FOREACH_OMPT_HOST_EVENT(macro) \
FOREACH_OMPT_DEVICE_EVENT(macro) \
FOREACH_OMPT_EMI_EVENT(macro)
#define FOREACH_OMPT_INQUIRY_FN(macro) \
macro (ompt_enumerate_states) \
macro (ompt_enumerate_mutex_impls) \
macro (ompt_set_callback) \
macro (ompt_get_callback) \
macro (ompt_get_state) \
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) \
macro(ompt_get_place_proc_ids) \
macro(ompt_get_place_num) \
macro(ompt_get_partition_place_nums) \
macro(ompt_get_proc_id) \
macro(ompt_get_target_info) \
macro(ompt_get_num_devices)
#define FOREACH_OMPT_STATE(macro) \
macro (ompt_state_undefined, 0x102) /* undefined thread state */ \
macro (ompt_state_work_serial, 0x000) /* working outside parallel */ \
macro (ompt_state_work_parallel, 0x001) /* working within parallel */ \
macro (ompt_state_work_reduction, 0x002) /* performing a reduction */ \
macro (ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \
macro (ompt_state_wait_barrier_implicit_parallel, 0x011) \
macro (ompt_state_wait_barrier_implicit_workshare, 0x012) \
macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \
macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \
macro (ompt_state_wait_barrier_implementation, 0x015) /* implementation barrier */ \
macro (ompt_state_wait_barrier_teams, 0x016) /* teams barrier */ \
macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \
macro (ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \
macro (ompt_state_wait_mutex, 0x040) \
macro (ompt_state_wait_lock, 0x041) /* waiting for lock */ \
macro (ompt_state_wait_critical, 0x042) /* waiting for critical */ \
macro (ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \
macro (ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \
macro (ompt_state_wait_target, 0x080) /* waiting for target region */ \
macro (ompt_state_wait_target_map, 0x081) /* waiting for target data mapping operation */ \
macro (ompt_state_wait_target_update, 0x082) /* waiting for target update operation */ \
.macro MOVE_STACKS qw
.macro PTI_UUENTRY has_err
.macro PTI_UENTRY has_err
.macro PTI_ENTRY name, contk, contu, has_err=0
.macro PTI_INTRENTRY vec_name
.macro INTR_PUSH_FRAME vec_name
.macro INTR_HANDLER vec_name
.macro RESTORE_REGS
.macro SAVE_SEGS
.macro SET_KERNEL_SREGS
.macro NMOVE_STACKS
.macro LOAD_KCR3
.macro MOVE_STACKS
.macro KENTER
.macro PUSH_FRAME2
.macro PUSH_FRAME
static void macro(void);
macro();
macro();
macro();
macro();