forked from OSchip/llvm-project
94 lines
2.1 KiB
C
94 lines
2.1 KiB
C
#ifndef __OMPT_INTERNAL_H__
|
|
#define __OMPT_INTERNAL_H__
|
|
|
|
#include "ompt.h"
|
|
#include "ompt-event-specific.h"
|
|
|
|
#define OMPT_VERSION 1
|
|
|
|
#define _OMP_EXTERN extern "C"
|
|
|
|
#define OMPT_INVOKER(x) \
|
|
((x == fork_context_gnu) ? ompt_invoker_program : ompt_invoker_runtime)
|
|
|
|
|
|
#define ompt_callback(e) e ## _callback
|
|
|
|
|
|
typedef struct ompt_callbacks_s {
|
|
#define ompt_event_macro(event, callback, eventid) callback ompt_callback(event);
|
|
|
|
FOREACH_OMPT_EVENT(ompt_event_macro)
|
|
|
|
#undef ompt_event_macro
|
|
} ompt_callbacks_t;
|
|
|
|
|
|
|
|
typedef struct {
|
|
ompt_frame_t frame;
|
|
void* function;
|
|
ompt_task_id_t task_id;
|
|
#if OMP_40_ENABLED
|
|
int ndeps;
|
|
ompt_task_dependence_t *deps;
|
|
#endif /* OMP_40_ENABLED */
|
|
} ompt_task_info_t;
|
|
|
|
|
|
typedef struct {
|
|
ompt_parallel_id_t parallel_id;
|
|
void *microtask;
|
|
} ompt_team_info_t;
|
|
|
|
|
|
typedef struct ompt_lw_taskteam_s {
|
|
ompt_team_info_t ompt_team_info;
|
|
ompt_task_info_t ompt_task_info;
|
|
struct ompt_lw_taskteam_s *parent;
|
|
} ompt_lw_taskteam_t;
|
|
|
|
|
|
typedef struct ompt_parallel_info_s {
|
|
ompt_task_id_t parent_task_id; /* id of parent task */
|
|
ompt_parallel_id_t parallel_id; /* id of parallel region */
|
|
ompt_frame_t *parent_task_frame; /* frame data of parent task */
|
|
void *parallel_function; /* pointer to outlined function */
|
|
} ompt_parallel_info_t;
|
|
|
|
|
|
typedef struct {
|
|
ompt_state_t state;
|
|
ompt_wait_id_t wait_id;
|
|
void *idle_frame;
|
|
} ompt_thread_info_t;
|
|
|
|
|
|
extern ompt_callbacks_t ompt_callbacks;
|
|
|
|
#if OMP_40_ENABLED && OMPT_SUPPORT && OMPT_TRACE
|
|
#if USE_FAST_MEMORY
|
|
# define KMP_OMPT_DEPS_ALLOC __kmp_fast_allocate
|
|
# define KMP_OMPT_DEPS_FREE __kmp_fast_free
|
|
# else
|
|
# define KMP_OMPT_DEPS_ALLOC __kmp_thread_malloc
|
|
# define KMP_OMPT_DEPS_FREE __kmp_thread_free
|
|
# endif
|
|
#endif /* OMP_40_ENABLED && OMPT_SUPPORT && OMPT_TRACE */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void ompt_pre_init(void);
|
|
void ompt_post_init(void);
|
|
void ompt_fini(void);
|
|
|
|
extern int ompt_enabled;
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif
|