#if USE_ITT_BUILD
#ifndef KMP_ITT_H
#define KMP_ITT_H
#include "kmp_lock.h"
#define INTEL_ITTNOTIFY_API_PRIVATE
#include "ittnotify.h"
#include "legacy/ittnotify.h"
#if KMP_DEBUG
#define __kmp_inline …
#else
#define __kmp_inline …
#endif
#if USE_ITT_NOTIFY
extern kmp_int32 __kmp_itt_prepare_delay;
#ifdef __cplusplus
extern "C" void __kmp_itt_fini_ittlib(void);
#else
extern void __kmp_itt_fini_ittlib(void);
#endif
#endif
#define USE_ITT_BUILD_ARG(x) …
void __kmp_itt_initialize();
void __kmp_itt_destroy();
void __kmp_itt_reset();
__kmp_inline void
__kmp_itt_region_forking(int gtid, int team_size,
int barriers);
__kmp_inline void
__kmp_itt_region_joined(int gtid);
__kmp_inline void __kmp_itt_frame_submit(int gtid, __itt_timestamp begin,
__itt_timestamp end, int imbalance,
ident_t *loc, int team_size,
int region = 0);
__kmp_inline void __kmp_itt_metadata_imbalance(int gtid, kmp_uint64 begin,
kmp_uint64 end,
kmp_uint64 imbalance,
kmp_uint64 reduction);
__kmp_inline void __kmp_itt_metadata_loop(ident_t *loc, kmp_uint64 sched_type,
kmp_uint64 iterations,
kmp_uint64 chunk);
__kmp_inline void __kmp_itt_metadata_single(ident_t *loc);
__kmp_inline void *__kmp_itt_barrier_object(int gtid, int bt, int set_name = 0,
int delta = 0);
__kmp_inline void __kmp_itt_barrier_starting(int gtid, void *object);
__kmp_inline void __kmp_itt_barrier_middle(int gtid, void *object);
__kmp_inline void __kmp_itt_barrier_finished(int gtid, void *object);
__kmp_inline void *__kmp_itt_taskwait_object(int gtid);
__kmp_inline void __kmp_itt_taskwait_starting(int gtid, void *object);
__kmp_inline void __kmp_itt_taskwait_finished(int gtid, void *object);
#define KMP_ITT_TASKWAIT_STARTING(obj) …
#define KMP_ITT_TASKWAIT_FINISHED(obj) …
__kmp_inline void __kmp_itt_task_starting(void *object);
__kmp_inline void __kmp_itt_task_finished(void *object);
#if KMP_USE_DYNAMIC_LOCK
__kmp_inline void __kmp_itt_lock_creating(kmp_user_lock_p lock,
const ident_t *);
#else
__kmp_inline void __kmp_itt_lock_creating(kmp_user_lock_p lock);
#endif
__kmp_inline void __kmp_itt_lock_acquiring(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_lock_acquired(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_lock_releasing(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_lock_cancelled(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_lock_destroyed(kmp_user_lock_p lock);
#if KMP_USE_DYNAMIC_LOCK
__kmp_inline void __kmp_itt_critical_creating(kmp_user_lock_p lock,
const ident_t *);
#else
__kmp_inline void __kmp_itt_critical_creating(kmp_user_lock_p lock);
#endif
__kmp_inline void __kmp_itt_critical_acquiring(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_critical_acquired(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_critical_releasing(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_critical_destroyed(kmp_user_lock_p lock);
__kmp_inline void __kmp_itt_single_start(int gtid);
__kmp_inline void __kmp_itt_single_end(int gtid);
__kmp_inline void __kmp_itt_ordered_init(int gtid);
__kmp_inline void __kmp_itt_ordered_prep(int gtid);
__kmp_inline void __kmp_itt_ordered_start(int gtid);
__kmp_inline void __kmp_itt_ordered_end(int gtid);
__kmp_inline void __kmp_itt_thread_ignore();
__kmp_inline void __kmp_itt_thread_name(int gtid);
__kmp_inline void __kmp_itt_system_object_created(void *object,
char const *name);
__kmp_inline __itt_caller __kmp_itt_stack_caller_create(void);
__kmp_inline void __kmp_itt_stack_caller_destroy(__itt_caller);
__kmp_inline void __kmp_itt_stack_callee_enter(__itt_caller);
__kmp_inline void __kmp_itt_stack_callee_leave(__itt_caller);
#if USE_ITT_NOTIFY
#ifndef INCLUDE_SSC_MARKS
#define INCLUDE_SSC_MARKS …
#endif
#if (INCLUDE_SSC_MARKS && KMP_OS_LINUX && KMP_ARCH_X86_64)
#if defined(__INTEL_COMPILER)
#define INSERT_SSC_MARK …
#else
#define INSERT_SSC_MARK(tag) …
#endif
#else
#define INSERT_SSC_MARK …
#endif
#define SSC_MARK_SPIN_START() …
#define SSC_MARK_SPIN_END() …
#define SSC_MARK_FORKING() …
#define SSC_MARK_JOINING() …
#define SSC_MARK_INVOKING() …
#define SSC_MARK_DISPATCH_INIT() …
#define SSC_MARK_DISPATCH_NEXT() …
#define KMP_FSYNC_PREPARE(obj) …
#define KMP_FSYNC_CANCEL(obj) …
#define KMP_FSYNC_ACQUIRED(obj) …
#define KMP_FSYNC_RELEASING(obj) …
#undef KMP_FSYNC_SPIN_INIT
#define KMP_FSYNC_SPIN_INIT(obj, spin) …
#undef KMP_FSYNC_SPIN_PREPARE
#define KMP_FSYNC_SPIN_PREPARE(obj) …
#undef KMP_FSYNC_SPIN_ACQUIRED
#define KMP_FSYNC_SPIN_ACQUIRED(obj) …
#define KMP_ITT_IGNORE(statement) …
const int KMP_MAX_FRAME_DOMAINS = …;
kmp_itthash_entry_t;
kmp_itthash_t;
extern kmp_itthash_t __kmp_itt_region_domains;
extern kmp_itthash_t __kmp_itt_barrier_domains;
extern __itt_domain *metadata_domain;
extern __itt_string_handle *string_handle_imbl;
extern __itt_string_handle *string_handle_loop;
extern __itt_string_handle *string_handle_sngl;
#else
#define KMP_FSYNC_PREPARE …
#define KMP_FSYNC_CANCEL …
#define KMP_FSYNC_ACQUIRED …
#define KMP_FSYNC_RELEASING …
#define KMP_FSYNC_SPIN_INIT …
#define KMP_FSYNC_SPIN_PREPARE …
#define KMP_FSYNC_SPIN_ACQUIRED …
#define KMP_ITT_IGNORE …
#endif
#if !KMP_DEBUG
#include "kmp_itt.inl"
#endif
#endif
#else
#define KMP_FSYNC_PREPARE …
#define KMP_FSYNC_CANCEL …
#define KMP_FSYNC_ACQUIRED …
#define KMP_FSYNC_RELEASING …
#define KMP_FSYNC_SPIN_INIT …
#define KMP_FSYNC_SPIN_PREPARE …
#define KMP_FSYNC_SPIN_ACQUIRED …
#define KMP_ITT_IGNORE …
#define USE_ITT_BUILD_ARG …
#endif