Skip to content

Commit 43b539f

Browse files
[offload][ompt] Added lookup function for device callbacks and placeholders for not yet implemented device callbacks
1 parent 2a29d24 commit 43b539f

File tree

4 files changed

+85
-1
lines changed

4 files changed

+85
-1
lines changed

offload/include/OpenMP/OMPT/Callback.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ namespace omp {
4949
namespace target {
5050
namespace ompt {
5151

52+
extern ompt_interface_fn_t ompt_device_fn_lookup(const char *s);
53+
5254
#define declareOmptCallback(Name, Type, Code) extern Name##_t Name##_fn;
5355
FOREACH_OMPT_NOEMI_EVENT(declareOmptCallback)
5456
FOREACH_OMPT_EMI_EVENT(declareOmptCallback)

offload/src/OpenMP/OMPT/Callback.cpp

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,77 @@
2727
#undef DEBUG_PREFIX
2828
#define DEBUG_PREFIX "OMPT"
2929

30+
using namespace llvm::omp::target::ompt;
31+
3032
// Define OMPT callback functions (bound to actual callbacks later on)
3133
#define defineOmptCallback(Name, Type, Code) \
3234
Name##_t llvm::omp::target::ompt::Name##_fn = nullptr;
3335
FOREACH_OMPT_NOEMI_EVENT(defineOmptCallback)
3436
FOREACH_OMPT_EMI_EVENT(defineOmptCallback)
3537
#undef defineOmptCallback
3638

37-
using namespace llvm::omp::target::ompt;
39+
int ompt_get_device_num_procs(ompt_device_t *device) { return 0; }
40+
41+
ompt_device_time_t ompt_get_device_time(ompt_device_t *device) { return 0; }
42+
43+
double ompt_translate_time(ompt_device_t *device, ompt_device_time_t time) {
44+
return 0;
45+
}
46+
47+
ompt_set_result_t ompt_set_trace_ompt(ompt_device_t *device,
48+
unsigned int enable, unsigned int etype) {
49+
return ompt_set_error;
50+
}
51+
52+
ompt_set_result_t ompt_set_trace_native(ompt_device_t *device, int enable,
53+
int flags) {
54+
return ompt_set_error;
55+
}
56+
57+
int ompt_start_trace(ompt_device_t *device,
58+
ompt_callback_buffer_request_t request,
59+
ompt_callback_buffer_complete_t complete) {
60+
return 0;
61+
}
62+
63+
int ompt_pause_trace(ompt_device_t *device, int begin_pause) { return 0; }
64+
65+
int ompt_flush_trace(ompt_device_t *device) { return 0; }
66+
67+
int ompt_stop_trace(ompt_device_t *device) { return 0; }
68+
69+
int ompt_advance_buffer_cursor(ompt_device_t *device, ompt_buffer_t *buffer,
70+
size_t size, ompt_buffer_cursor_t current,
71+
ompt_buffer_cursor_t *next) {
72+
return 0;
73+
}
74+
75+
ompt_record_t ompt_get_record_type(ompt_buffer_t *buffer,
76+
ompt_buffer_cursor_t current) {
77+
return ompt_record_ompt;
78+
}
79+
80+
void *ompt_get_record_native(ompt_buffer_t *buffer,
81+
ompt_buffer_cursor_t current,
82+
ompt_id_t *host_op_id) {
83+
return NULL;
84+
}
85+
86+
ompt_record_abstract_t *ompt_get_record_abstract(void *native_record) {
87+
return NULL;
88+
}
89+
90+
ompt_interface_fn_t
91+
llvm::omp::target::ompt::ompt_device_fn_lookup(const char *s) {
92+
#define ompt_interface_fn(fn) \
93+
if (strcmp(s, #fn) == 0) { \
94+
fn##_t fn##_f = fn; \
95+
return (ompt_interface_fn_t)fn##_f; \
96+
}
97+
FOREACH_OMPT_DEVICE_INQUIRY_FN(ompt_interface_fn)
98+
#undef ompt_interface_fn
99+
return NULL;
100+
}
38101

39102
/// Forward declaration
40103
class LibomptargetRtlFinalizer;

openmp/runtime/src/include/omp-tools.h.var

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,23 @@
6060
macro(ompt_get_target_info) \
6161
macro(ompt_get_num_devices)
6262

63+
#define FOREACH_OMPT_DEVICE_INQUIRY_FN(macro) \
64+
macro (ompt_get_device_num_procs) \
65+
macro (ompt_get_device_time) \
66+
macro (ompt_translate_time) \
67+
macro (ompt_set_trace_ompt) \
68+
macro (ompt_set_trace_native) \
69+
/* macro (ompt_get_buffer_limits) */ \
70+
macro (ompt_start_trace) \
71+
macro (ompt_pause_trace) \
72+
macro (ompt_flush_trace) \
73+
macro (ompt_stop_trace) \
74+
macro (ompt_advance_buffer_cursor) \
75+
macro (ompt_get_record_type) \
76+
/* macro (ompt_get_record_ompt) */ \
77+
macro (ompt_get_record_native) \
78+
macro (ompt_get_record_abstract)
79+
6380
#define FOREACH_OMPT_STATE(macro) \
6481
\
6582
/* first available state */ \

openmp/runtime/src/ompt-general.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ static ompt_start_tool_result_t *libomptarget_ompt_result = NULL;
121121

122122
static ompt_interface_fn_t ompt_fn_lookup(const char *s);
123123

124+
static ompt_interface_fn_t ompt_device_fn_lookup(const char *s);
125+
124126
OMPT_API_ROUTINE ompt_data_t *ompt_get_thread_data(void);
125127

126128
/*****************************************************************************

0 commit comments

Comments
 (0)