Skip to content

Commit 3f30797

Browse files
committed
Revert "[OMPT] Fix for ROCm/ROCm#2611"
This reverts commit f26cd46. Reason for revert: may have landed prematurely, staging this up Change-Id: I5b18793f947edced9139ae1ac47041c08569451a
1 parent f26cd46 commit 3f30797

File tree

1 file changed

+28
-82
lines changed

1 file changed

+28
-82
lines changed

openmp/libomptarget/src/interface.cpp

Lines changed: 28 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -47,56 +47,19 @@ class OMPTInvokeWrapper {
4747
: IsNullOpt(true), CodePtr(nullptr), ReturnFramePtr(nullptr),
4848
DeviceId(-1), Kind(ompt_target), ScopeKind(ompt_scope_begin) {}
4949
OMPTInvokeWrapper(void *CodePtr, void *ReturnFramePtr, int64_t DeviceId,
50-
ompt_target_t Kind)
50+
ompt_target_t Kind, ompt_scope_endpoint_t ScopeKind)
5151
: IsNullOpt(false), CodePtr(CodePtr), ReturnFramePtr(ReturnFramePtr),
52-
DeviceId(DeviceId), Kind(Kind), ScopeKind(ompt_scope_begin) {}
52+
DeviceId(DeviceId), Kind(Kind), ScopeKind(ScopeKind) {}
5353

5454
void setDeviceId(int64_t DevId) { DeviceId = DevId; }
5555

56-
void invokeBegin() {
56+
void invoke() {
5757
if (IsNullOpt)
5858
return;
5959

6060
ompt_interface.ompt_state_set(ReturnFramePtr, CodePtr);
61-
switch (Kind) {
62-
case ompt_target_enter_data:
63-
case ompt_target_enter_data_nowait:
64-
ompt_interface.target_data_enter_begin(DeviceId, CodePtr);
65-
break;
66-
case ompt_target_exit_data:
67-
case ompt_target_exit_data_nowait:
68-
ompt_interface.target_data_exit_begin(DeviceId, CodePtr);
69-
break;
70-
case ompt_target_update:
71-
case ompt_target_update_nowait:
72-
ompt_interface.target_update_begin(DeviceId, CodePtr);
73-
break;
74-
}
75-
ompt_interface.target_trace_record_gen(DeviceId, Kind, ompt_scope_begin,
76-
CodePtr);
77-
}
78-
79-
void invokeEnd() {
80-
if (IsNullOpt)
81-
return;
82-
83-
ompt_interface.ompt_state_set(ReturnFramePtr, CodePtr);
84-
switch (Kind) {
85-
case ompt_target_enter_data:
86-
case ompt_target_enter_data_nowait:
87-
ompt_interface.target_data_enter_end(DeviceId, CodePtr);
88-
break;
89-
case ompt_target_exit_data:
90-
case ompt_target_exit_data_nowait:
91-
ompt_interface.target_data_exit_end(DeviceId, CodePtr);
92-
break;
93-
case ompt_target_update:
94-
case ompt_target_update_nowait:
95-
ompt_interface.target_update_end(DeviceId, CodePtr);
96-
break;
97-
}
98-
ompt_interface.target_trace_record_gen(DeviceId, Kind, ompt_scope_end,
99-
CodePtr);
61+
ompt_interface.target_data_enter_begin(DeviceId, CodePtr);
62+
ompt_interface.target_trace_record_gen(DeviceId, Kind, ScopeKind, CodePtr);
10063
}
10164

10265
private:
@@ -150,6 +113,21 @@ EXTERN void __tgt_unregister_lib(__tgt_bin_desc *Desc) {
150113
}
151114
}
152115

116+
template <typename TargetAsyncInfoTy>
117+
static inline void
118+
targetDataMapper(ident_t *Loc, int64_t DeviceId, int32_t ArgNum,
119+
void **ArgsBase, void **Args, int64_t *ArgSizes,
120+
int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers,
121+
TargetDataFuncPtrTy TargetDataFunction,
122+
const char *RegionTypeMsg, const char *RegionName) {
123+
124+
OMPTInvokeWrapper IWrapper;
125+
126+
targetDataMapper<TargetAsyncInfoTy>(
127+
Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames,
128+
ArgMappers, TargetDataFunction, RegionTypeMsg, RegionName, &IWrapper);
129+
}
130+
153131
template <typename TargetAsyncInfoTy>
154132
static inline void
155133
targetDataMapper(ident_t *Loc, int64_t DeviceId, int32_t ArgNum,
@@ -189,16 +167,13 @@ targetDataMapper(ident_t *Loc, int64_t DeviceId, int32_t ArgNum,
189167

190168
// DeviceId is only valid after the call to checkDeviceAndCtors, so we update
191169
// the DevicId in the Wrapper object before invoking OMPT
192-
OMPT_IF_ENABLED(OMPTInvoker->setDeviceId(DeviceId);
193-
OMPTInvoker->invokeBegin(););
170+
OMPT_IF_ENABLED(OMPTInvoker->setDeviceId(DeviceId); OMPTInvoker->invoke(););
194171

195172
int Rc = OFFLOAD_SUCCESS;
196173
Rc = TargetDataFunction(Loc, Device, ArgNum, ArgsBase, Args, ArgSizes,
197174
ArgTypes, ArgNames, ArgMappers, AsyncInfo,
198175
false /* FromMapper */);
199176

200-
OMPT_IF_ENABLED(OMPTInvoker->invokeEnd(););
201-
202177
if (Rc == OFFLOAD_SUCCESS)
203178
Rc = AsyncInfo.synchronize();
204179

@@ -219,7 +194,7 @@ EXTERN void __tgt_target_data_begin_mapper(ident_t *Loc, int64_t DeviceId,
219194
#ifdef OMPT_SUPPORT
220195
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
221196
OMPT_GET_FRAME_ADDRESS(0), -1,
222-
ompt_target_enter_data);
197+
ompt_target_enter_data, ompt_scope_begin);
223198
#else
224199
OMPTInvokeWrapper IWrapper;
225200
#endif
@@ -236,19 +211,9 @@ EXTERN void __tgt_target_data_begin_nowait_mapper(
236211
void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum,
237212
void *NoAliasDepList) {
238213
TIMESCOPE_WITH_IDENT(Loc);
239-
240-
#ifdef OMPT_SUPPORT
241-
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
242-
OMPT_GET_FRAME_ADDRESS(0), -1,
243-
ompt_target_enter_data_nowait);
244-
#else
245-
OMPTInvokeWrapper IWrapper;
246-
#endif
247-
248214
targetDataMapper<TaskAsyncInfoWrapperTy>(
249215
Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames,
250-
ArgMappers, targetDataBegin, "Entering OpenMP data region", "begin",
251-
&IWrapper);
216+
ArgMappers, targetDataBegin, "Entering OpenMP data region", "begin");
252217
}
253218

254219
/// passes data from the target, releases target memory and destroys
@@ -265,7 +230,7 @@ EXTERN void __tgt_target_data_end_mapper(ident_t *Loc, int64_t DeviceId,
265230
#ifdef OMPT_SUPPORT
266231
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
267232
OMPT_GET_FRAME_ADDRESS(0), -1,
268-
ompt_target_exit_data);
233+
ompt_target_exit_data, ompt_scope_begin);
269234
#else
270235
OMPTInvokeWrapper IWrapper;
271236
#endif
@@ -281,19 +246,9 @@ EXTERN void __tgt_target_data_end_nowait_mapper(
281246
void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum,
282247
void *NoAliasDepList) {
283248
TIMESCOPE_WITH_IDENT(Loc);
284-
285-
#ifdef OMPT_SUPPORT
286-
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
287-
OMPT_GET_FRAME_ADDRESS(0), -1,
288-
ompt_target_exit_data_nowait);
289-
#else
290-
OMPTInvokeWrapper IWrapper;
291-
#endif
292-
293249
targetDataMapper<TaskAsyncInfoWrapperTy>(
294250
Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames,
295-
ArgMappers, targetDataEnd, "Exiting OpenMP data region", "end",
296-
&IWrapper);
251+
ArgMappers, targetDataEnd, "Exiting OpenMP data region", "end");
297252
}
298253

299254
EXTERN void __tgt_target_data_update_mapper(ident_t *Loc, int64_t DeviceId,
@@ -307,7 +262,8 @@ EXTERN void __tgt_target_data_update_mapper(ident_t *Loc, int64_t DeviceId,
307262

308263
#ifdef OMPT_SUPPORT
309264
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
310-
OMPT_GET_FRAME_ADDRESS(0), -1, ompt_target_update);
265+
OMPT_GET_FRAME_ADDRESS(0), -1, ompt_target_update,
266+
ompt_scope_begin);
311267
#else
312268
OMPTInvokeWrapper IWrapper;
313269
#endif
@@ -324,19 +280,9 @@ EXTERN void __tgt_target_data_update_nowait_mapper(
324280
void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum,
325281
void *NoAliasDepList) {
326282
TIMESCOPE_WITH_IDENT(Loc);
327-
328-
#ifdef OMPT_SUPPORT
329-
OMPTInvokeWrapper IWrapper(OMPT_GET_RETURN_ADDRESS(0),
330-
OMPT_GET_FRAME_ADDRESS(0), -1,
331-
ompt_target_update_nowait);
332-
#else
333-
OMPTInvokeWrapper IWrapper;
334-
#endif
335-
336283
targetDataMapper<TaskAsyncInfoWrapperTy>(
337284
Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames,
338-
ArgMappers, targetDataUpdate, "Updating OpenMP data", "update",
339-
&IWrapper);
285+
ArgMappers, targetDataUpdate, "Updating OpenMP data", "update");
340286
}
341287

342288
static KernelArgsTy *upgradeKernelArgs(KernelArgsTy *KernelArgs,

0 commit comments

Comments
 (0)