10
10
//
11
11
// ===----------------------------------------------------------------------===//
12
12
13
+ #include " OpenMP/OMPT/Interface.h"
13
14
#include " omptarget.h"
14
15
#include " private.h"
15
16
16
17
#include " Shared/Profile.h"
17
18
19
+ #ifdef OMPT_SUPPORT
20
+ using namespace llvm ::omp::target::ompt;
21
+ #endif
22
+
18
23
EXTERN void __tgt_target_data_begin (int64_t DeviceId, int32_t ArgNum,
19
24
void **ArgsBase, void **Args,
20
25
int64_t *ArgSizes, int64_t *ArgTypes) {
21
26
TIMESCOPE ();
27
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
22
28
__tgt_target_data_begin_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
23
29
ArgSizes, ArgTypes, nullptr , nullptr );
24
30
}
@@ -30,7 +36,7 @@ EXTERN void __tgt_target_data_begin_nowait(int64_t DeviceId, int32_t ArgNum,
30
36
int32_t NoAliasDepNum,
31
37
void *NoAliasDepList) {
32
38
TIMESCOPE ();
33
-
39
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
34
40
__tgt_target_data_begin_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
35
41
ArgSizes, ArgTypes, nullptr , nullptr );
36
42
}
@@ -39,6 +45,7 @@ EXTERN void __tgt_target_data_end(int64_t DeviceId, int32_t ArgNum,
39
45
void **ArgsBase, void **Args,
40
46
int64_t *ArgSizes, int64_t *ArgTypes) {
41
47
TIMESCOPE ();
48
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
42
49
__tgt_target_data_end_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
43
50
ArgSizes, ArgTypes, nullptr , nullptr );
44
51
}
@@ -47,6 +54,7 @@ EXTERN void __tgt_target_data_update(int64_t DeviceId, int32_t ArgNum,
47
54
void **ArgsBase, void **Args,
48
55
int64_t *ArgSizes, int64_t *ArgTypes) {
49
56
TIMESCOPE ();
57
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
50
58
__tgt_target_data_update_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
51
59
ArgSizes, ArgTypes, nullptr , nullptr );
52
60
}
@@ -56,7 +64,7 @@ EXTERN void __tgt_target_data_update_nowait(
56
64
int64_t *ArgSizes, int64_t *ArgTypes, int32_t DepNum, void *DepList,
57
65
int32_t NoAliasDepNum, void *NoAliasDepList) {
58
66
TIMESCOPE ();
59
-
67
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
60
68
__tgt_target_data_update_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
61
69
ArgSizes, ArgTypes, nullptr , nullptr );
62
70
}
@@ -68,7 +76,7 @@ EXTERN void __tgt_target_data_end_nowait(int64_t DeviceId, int32_t ArgNum,
68
76
int32_t NoAliasDepNum,
69
77
void *NoAliasDepList) {
70
78
TIMESCOPE ();
71
-
79
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
72
80
__tgt_target_data_end_mapper (nullptr , DeviceId, ArgNum, ArgsBase, Args,
73
81
ArgSizes, ArgTypes, nullptr , nullptr );
74
82
}
@@ -78,6 +86,7 @@ EXTERN int __tgt_target_mapper(ident_t *Loc, int64_t DeviceId, void *HostPtr,
78
86
int64_t *ArgSizes, int64_t *ArgTypes,
79
87
map_var_info_t *ArgNames, void **ArgMappers) {
80
88
TIMESCOPE_WITH_IDENT (Loc);
89
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
81
90
KernelArgsTy KernelArgs{1 , ArgNum, ArgsBase, Args, ArgSizes,
82
91
ArgTypes, ArgNames, ArgMappers, 0 };
83
92
return __tgt_target_kernel (Loc, DeviceId, -1 , -1 , HostPtr, &KernelArgs);
@@ -87,6 +96,7 @@ EXTERN int __tgt_target(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
87
96
void **ArgsBase, void **Args, int64_t *ArgSizes,
88
97
int64_t *ArgTypes) {
89
98
TIMESCOPE ();
99
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
90
100
return __tgt_target_mapper (nullptr , DeviceId, HostPtr, ArgNum, ArgsBase, Args,
91
101
ArgSizes, ArgTypes, nullptr , nullptr );
92
102
}
@@ -96,7 +106,7 @@ EXTERN int __tgt_target_nowait(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
96
106
int64_t *ArgTypes, int32_t DepNum, void *DepList,
97
107
int32_t NoAliasDepNum, void *NoAliasDepList) {
98
108
TIMESCOPE ();
99
-
109
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
100
110
return __tgt_target_mapper (nullptr , DeviceId, HostPtr, ArgNum, ArgsBase, Args,
101
111
ArgSizes, ArgTypes, nullptr , nullptr );
102
112
}
@@ -107,7 +117,7 @@ EXTERN int __tgt_target_nowait_mapper(
107
117
map_var_info_t *ArgNames, void **ArgMappers, int32_t DepNum, void *DepList,
108
118
int32_t NoAliasDepNum, void *NoAliasDepList) {
109
119
TIMESCOPE_WITH_IDENT (Loc);
110
-
120
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
111
121
return __tgt_target_mapper (Loc, DeviceId, HostPtr, ArgNum, ArgsBase, Args,
112
122
ArgSizes, ArgTypes, ArgNames, ArgMappers);
113
123
}
@@ -120,7 +130,7 @@ EXTERN int __tgt_target_teams_mapper(ident_t *Loc, int64_t DeviceId,
120
130
void **ArgMappers, int32_t NumTeams,
121
131
int32_t ThreadLimit) {
122
132
TIMESCOPE_WITH_IDENT (Loc);
123
-
133
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
124
134
KernelArgsTy KernelArgs{1 , ArgNum, ArgsBase, Args, ArgSizes,
125
135
ArgTypes, ArgNames, ArgMappers, 0 };
126
136
return __tgt_target_kernel (Loc, DeviceId, NumTeams, ThreadLimit, HostPtr,
@@ -132,6 +142,7 @@ EXTERN int __tgt_target_teams(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
132
142
int64_t *ArgTypes, int32_t NumTeams,
133
143
int32_t ThreadLimit) {
134
144
TIMESCOPE ();
145
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
135
146
return __tgt_target_teams_mapper (nullptr , DeviceId, HostPtr, ArgNum, ArgsBase,
136
147
Args, ArgSizes, ArgTypes, nullptr , nullptr ,
137
148
NumTeams, ThreadLimit);
@@ -145,7 +156,7 @@ EXTERN int __tgt_target_teams_nowait(int64_t DeviceId, void *HostPtr,
145
156
void *DepList, int32_t NoAliasDepNum,
146
157
void *NoAliasDepList) {
147
158
TIMESCOPE ();
148
-
159
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
149
160
return __tgt_target_teams_mapper (nullptr , DeviceId, HostPtr, ArgNum, ArgsBase,
150
161
Args, ArgSizes, ArgTypes, nullptr , nullptr ,
151
162
NumTeams, ThreadLimit);
@@ -158,7 +169,7 @@ EXTERN int __tgt_target_teams_nowait_mapper(
158
169
int32_t ThreadLimit, int32_t DepNum, void *DepList, int32_t NoAliasDepNum,
159
170
void *NoAliasDepList) {
160
171
TIMESCOPE_WITH_IDENT (Loc);
161
-
172
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA ( __builtin_return_address ( 0 )));
162
173
return __tgt_target_teams_mapper (Loc, DeviceId, HostPtr, ArgNum, ArgsBase,
163
174
Args, ArgSizes, ArgTypes, ArgNames,
164
175
ArgMappers, NumTeams, ThreadLimit);
@@ -186,6 +197,7 @@ EXTERN int __tgt_target_kernel_nowait(ident_t *Loc, int64_t DeviceId,
186
197
int32_t NoAliasDepNum,
187
198
void *NoAliasDepList) {
188
199
TIMESCOPE_WITH_IDENT (Loc);
200
+ OMPT_IF_BUILT (ReturnAddressSetterRAII RA (__builtin_return_address (0 )));
189
201
return __tgt_target_kernel (Loc, DeviceId, NumTeams, ThreadLimit, HostPtr,
190
202
KernelArgs);
191
203
}
0 commit comments