19#define INTEL_ITTNOTIFY_API_PRIVATE
26#define __kmp_inline static inline
40#define USE_ITT_BUILD_ARG(x) , x
42void __kmp_itt_initialize();
43void __kmp_itt_destroy();
44void __kmp_itt_reset();
55__kmp_itt_region_forking(
int gtid,
int team_size,
58__kmp_itt_region_joined(
int gtid);
63__kmp_inline
void __kmp_itt_frame_submit(
int gtid, __itt_timestamp
begin,
64 __itt_timestamp
end,
int imbalance,
71__kmp_inline
void __kmp_itt_metadata_imbalance(
int gtid,
kmp_uint64 begin,
80__kmp_inline
void __kmp_itt_metadata_single(
ident_t *
loc);
83__kmp_inline
void *__kmp_itt_barrier_object(
int gtid,
int bt,
int set_name = 0,
85__kmp_inline
void __kmp_itt_barrier_starting(
int gtid,
void *
object);
86__kmp_inline
void __kmp_itt_barrier_middle(
int gtid,
void *
object);
87__kmp_inline
void __kmp_itt_barrier_finished(
int gtid,
void *
object);
90__kmp_inline
void *__kmp_itt_taskwait_object(
int gtid);
91__kmp_inline
void __kmp_itt_taskwait_starting(
int gtid,
void *
object);
92__kmp_inline
void __kmp_itt_taskwait_finished(
int gtid,
void *
object);
93#define KMP_ITT_TASKWAIT_STARTING(obj) \
94 if (UNLIKELY(__itt_sync_create_ptr)) { \
95 obj = __kmp_itt_taskwait_object(gtid); \
97 __kmp_itt_taskwait_starting(gtid, obj); \
100#define KMP_ITT_TASKWAIT_FINISHED(obj) \
101 if (UNLIKELY(obj != NULL)) \
102 __kmp_itt_taskwait_finished(gtid, obj);
105__kmp_inline
void __kmp_itt_task_starting(
void *
object);
106__kmp_inline
void __kmp_itt_task_finished(
void *
object);
109#if KMP_USE_DYNAMIC_LOCK
122#if KMP_USE_DYNAMIC_LOCK
134__kmp_inline
void __kmp_itt_single_start(
int gtid);
135__kmp_inline
void __kmp_itt_single_end(
int gtid);
138__kmp_inline
void __kmp_itt_ordered_init(
int gtid);
139__kmp_inline
void __kmp_itt_ordered_prep(
int gtid);
140__kmp_inline
void __kmp_itt_ordered_start(
int gtid);
141__kmp_inline
void __kmp_itt_ordered_end(
int gtid);
144__kmp_inline
void __kmp_itt_thread_ignore();
145__kmp_inline
void __kmp_itt_thread_name(
int gtid);
148__kmp_inline
void __kmp_itt_system_object_created(
void *
object,
152__kmp_inline __itt_caller __kmp_itt_stack_caller_create(
void);
153__kmp_inline
void __kmp_itt_stack_caller_destroy(__itt_caller);
154__kmp_inline
void __kmp_itt_stack_callee_enter(__itt_caller);
155__kmp_inline
void __kmp_itt_stack_callee_leave(__itt_caller);
167#ifndef INCLUDE_SSC_MARKS
168#define INCLUDE_SSC_MARKS (KMP_OS_LINUX && KMP_ARCH_X86_64)
172#if (INCLUDE_SSC_MARKS && KMP_OS_LINUX && KMP_ARCH_X86_64)
175#if defined(__INTEL_COMPILER)
176#define INSERT_SSC_MARK(tag) __SSC_MARK(tag)
178#define INSERT_SSC_MARK(tag) \
179 __asm__ __volatile__("movl %0, %%ebx; .byte 0x64, 0x67, 0x90 " ::"i"(tag) \
183#define INSERT_SSC_MARK(tag) ((void)0)
190#define SSC_MARK_SPIN_START() INSERT_SSC_MARK(0x4376)
191#define SSC_MARK_SPIN_END() INSERT_SSC_MARK(0x4377)
199#define SSC_MARK_FORKING() INSERT_SSC_MARK(0xd693)
200#define SSC_MARK_JOINING() INSERT_SSC_MARK(0xd694)
201#define SSC_MARK_INVOKING() INSERT_SSC_MARK(0xd695)
202#define SSC_MARK_DISPATCH_INIT() INSERT_SSC_MARK(0xd696)
203#define SSC_MARK_DISPATCH_NEXT() INSERT_SSC_MARK(0xd697)
223#define KMP_FSYNC_PREPARE(obj) __itt_fsync_prepare((void *)(obj))
224#define KMP_FSYNC_CANCEL(obj) __itt_fsync_cancel((void *)(obj))
225#define KMP_FSYNC_ACQUIRED(obj) __itt_fsync_acquired((void *)(obj))
226#define KMP_FSYNC_RELEASING(obj) __itt_fsync_releasing((void *)(obj))
234#undef KMP_FSYNC_SPIN_INIT
235#define KMP_FSYNC_SPIN_INIT(obj, spin) \
236 int sync_iters = 0; \
237 if (__itt_fsync_prepare_ptr) { \
242 SSC_MARK_SPIN_START()
244#undef KMP_FSYNC_SPIN_PREPARE
245#define KMP_FSYNC_SPIN_PREPARE(obj) \
247 if (__itt_fsync_prepare_ptr && sync_iters < __kmp_itt_prepare_delay) { \
249 if (sync_iters >= __kmp_itt_prepare_delay) { \
250 KMP_FSYNC_PREPARE((void *)obj); \
254#undef KMP_FSYNC_SPIN_ACQUIRED
255#define KMP_FSYNC_SPIN_ACQUIRED(obj) \
257 SSC_MARK_SPIN_END(); \
258 if (sync_iters >= __kmp_itt_prepare_delay) { \
259 KMP_FSYNC_ACQUIRED((void *)obj); \
268#define KMP_ITT_IGNORE(statement) \
270 __itt_state_t __itt_state_; \
271 if (__itt_state_get_ptr) { \
272 __itt_state_ = __itt_state_get(); \
273 __itt_obj_mode_set(__itt_obj_prop_ignore, __itt_obj_state_set); \
276 if (__itt_state_get_ptr) { \
277 __itt_state_set(__itt_state_); \
283const int KMP_MAX_FRAME_DOMAINS = 997;
284typedef struct kmp_itthash_entry {
288 struct kmp_itthash_entry *next_in_bucket;
289} kmp_itthash_entry_t;
290typedef struct kmp_itthash {
291 kmp_itthash_entry_t *buckets[KMP_MAX_FRAME_DOMAINS];
294extern kmp_itthash_t __kmp_itt_region_domains;
295extern kmp_itthash_t __kmp_itt_barrier_domains;
296extern __itt_domain *metadata_domain;
297extern __itt_string_handle *string_handle_imbl;
298extern __itt_string_handle *string_handle_loop;
299extern __itt_string_handle *string_handle_sngl;
304#define KMP_FSYNC_PREPARE(obj) ((void)0)
305#define KMP_FSYNC_CANCEL(obj) ((void)0)
306#define KMP_FSYNC_ACQUIRED(obj) ((void)0)
307#define KMP_FSYNC_RELEASING(obj) ((void)0)
309#define KMP_FSYNC_SPIN_INIT(obj, spin) ((void)0)
310#define KMP_FSYNC_SPIN_PREPARE(obj) ((void)0)
311#define KMP_FSYNC_SPIN_ACQUIRED(obj) ((void)0)
313#define KMP_ITT_IGNORE(stmt) \
332#define KMP_FSYNC_PREPARE(obj) ((void)0)
333#define KMP_FSYNC_CANCEL(obj) ((void)0)
334#define KMP_FSYNC_ACQUIRED(obj) ((void)0)
335#define KMP_FSYNC_RELEASING(obj) ((void)0)
337#define KMP_FSYNC_SPIN_INIT(obj, spin) ((void)0)
338#define KMP_FSYNC_SPIN_PREPARE(obj) ((void)0)
339#define KMP_FSYNC_SPIN_ACQUIRED(obj) ((void)0)
341#define KMP_ITT_IGNORE(stmt) \
346#define USE_ITT_BUILD_ARG(x)
sched_type
Describes the loop schedule to be used for a parallel for loop.
__itt_string_handle * name
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp end
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp begin
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t count
unsigned long long kmp_uint64
static kmp_bootstrap_lock_t lock
void __kmp_itt_fini_ittlib()
Legacy User API functions and types.