111 lines · c
1/******************************************************************************2 * File: ompt-event-specific.h3 *4 * Description:5 *6 * specify which of the OMPT events are implemented by this runtime system7 * and the level of their implementation by a runtime system.8 *****************************************************************************/9 10//===----------------------------------------------------------------------===//11//12// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.13// See https://llvm.org/LICENSE.txt for license information.14// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception15//16//===----------------------------------------------------------------------===//17 18#ifndef __OMPT_EVENT_SPECIFIC_H__19#define __OMPT_EVENT_SPECIFIC_H__20 21#define _ompt_tokenpaste_helper(x, y) x##y22#define _ompt_tokenpaste(x, y) _ompt_tokenpaste_helper(x, y)23#define ompt_event_implementation_status(e) _ompt_tokenpaste(e, _implemented)24 25/*----------------------------------------------------------------------------26 | Specify whether an event may occur or not, and whether event callbacks27 | never, sometimes, or always occur.28 |29 | The values for these constants are defined in section 6.1.2 of30 | the OMPT TR. They are exposed to tools through ompt_set_callback.31 +--------------------------------------------------------------------------*/32 33#define ompt_event_UNIMPLEMENTED ompt_set_never34#define ompt_event_MAY_CONVENIENT ompt_set_sometimes35#define ompt_event_MAY_ALWAYS ompt_set_always36 37#if OMPT_OPTIONAL38#define ompt_event_MAY_ALWAYS_OPTIONAL ompt_event_MAY_ALWAYS39#else40#define ompt_event_MAY_ALWAYS_OPTIONAL ompt_event_UNIMPLEMENTED41#endif42 43/*----------------------------------------------------------------------------44 | Mandatory Events45 +--------------------------------------------------------------------------*/46 47#define ompt_callback_thread_begin_implemented ompt_event_MAY_ALWAYS48#define ompt_callback_thread_end_implemented ompt_event_MAY_ALWAYS49 50#define ompt_callback_parallel_begin_implemented ompt_event_MAY_ALWAYS51#define ompt_callback_parallel_end_implemented ompt_event_MAY_ALWAYS52 53#define ompt_callback_task_create_implemented ompt_event_MAY_ALWAYS54#define ompt_callback_task_schedule_implemented ompt_event_MAY_ALWAYS55 56#define ompt_callback_implicit_task_implemented ompt_event_MAY_ALWAYS57 58#define ompt_callback_target_implemented ompt_event_MAY_ALWAYS59#define ompt_callback_target_emi_implemented ompt_event_MAY_ALWAYS60#define ompt_callback_target_data_op_implemented ompt_event_MAY_ALWAYS61#define ompt_callback_target_data_op_emi_implemented ompt_event_MAY_ALWAYS62#define ompt_callback_target_submit_implemented ompt_event_MAY_ALWAYS63#define ompt_callback_target_submit_emi_implemented ompt_event_MAY_ALWAYS64#define ompt_callback_control_tool_implemented ompt_event_MAY_ALWAYS65 66#define ompt_callback_device_initialize_implemented ompt_event_MAY_ALWAYS67#define ompt_callback_device_finalize_implemented ompt_event_MAY_ALWAYS68 69#define ompt_callback_device_load_implemented ompt_event_MAY_ALWAYS70#define ompt_callback_device_unload_implemented ompt_event_UNIMPLEMENTED71 72/*----------------------------------------------------------------------------73 | Optional Events74 +--------------------------------------------------------------------------*/75 76#define ompt_callback_sync_region_wait_implemented \77 ompt_event_MAY_ALWAYS_OPTIONAL78 79#define ompt_callback_mutex_released_implemented ompt_event_MAY_ALWAYS_OPTIONAL80 81#define ompt_callback_dependences_implemented ompt_event_MAY_ALWAYS_OPTIONAL82#define ompt_callback_task_dependence_implemented ompt_event_MAY_ALWAYS_OPTIONAL83 84#define ompt_callback_work_implemented ompt_event_MAY_ALWAYS_OPTIONAL85 86#define ompt_callback_masked_implemented ompt_event_MAY_ALWAYS_OPTIONAL87 88#define ompt_callback_target_map_implemented ompt_event_UNIMPLEMENTED89#define ompt_callback_target_map_emi_implemented ompt_event_UNIMPLEMENTED90 91#define ompt_callback_sync_region_implemented ompt_event_MAY_ALWAYS_OPTIONAL92 93#define ompt_callback_lock_init_implemented ompt_event_MAY_ALWAYS_OPTIONAL94#define ompt_callback_lock_destroy_implemented ompt_event_MAY_ALWAYS_OPTIONAL95 96#define ompt_callback_mutex_acquire_implemented ompt_event_MAY_ALWAYS_OPTIONAL97#define ompt_callback_mutex_acquired_implemented ompt_event_MAY_ALWAYS_OPTIONAL98#define ompt_callback_nest_lock_implemented ompt_event_MAY_ALWAYS_OPTIONAL99 100#define ompt_callback_flush_implemented ompt_event_MAY_ALWAYS_OPTIONAL101 102#define ompt_callback_cancel_implemented ompt_event_MAY_ALWAYS_OPTIONAL103 104#define ompt_callback_reduction_implemented ompt_event_MAY_ALWAYS_OPTIONAL105 106#define ompt_callback_dispatch_implemented ompt_event_MAY_ALWAYS_OPTIONAL107 108#define ompt_callback_error_implemented ompt_event_MAY_ALWAYS_OPTIONAL109 110#endif111