diff --git a/openmp/libomptarget/src/interface.cpp b/openmp/libomptarget/src/interface.cpp --- a/openmp/libomptarget/src/interface.cpp +++ b/openmp/libomptarget/src/interface.cpp @@ -82,7 +82,7 @@ static_assert(std::is_convertible_v, "TargetAsyncInfoTy must be convertible to AsyncInfoTy."); - TIMESCOPE_WITH_IDENT(Loc); + TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, Loc); DP("Entering data %s region for device %" PRId64 " with %d mappings\n", RegionName, DeviceId, ArgNum); @@ -143,10 +143,10 @@ int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers) { - TIMESCOPE_WITH_IDENT(Loc); + targetDataMapper(Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, ArgMappers, targetDataBegin, - "Entering OpenMP data region", "begin"); + "Entering OpenMP data region with being_mapper", "begin"); } EXTERN void __tgt_target_data_begin_nowait_mapper( @@ -154,10 +154,10 @@ void **Args, int64_t *ArgSizes, int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum, void *NoAliasDepList) { - TIMESCOPE_WITH_IDENT(Loc); + targetDataMapper( Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, - ArgMappers, targetDataBegin, "Entering OpenMP data region", "begin"); + ArgMappers, targetDataBegin, "Entering OpenMP data region with being_nowait_mapper", "begin"); } /// passes data from the target, releases target memory and destroys @@ -169,10 +169,10 @@ int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers) { - TIMESCOPE_WITH_IDENT(Loc); + targetDataMapper(Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, ArgMappers, targetDataEnd, - "Exiting OpenMP data region", "end"); + "Exiting OpenMP data region with end_mapper", "end"); } EXTERN void __tgt_target_data_end_nowait_mapper( @@ -180,10 +180,10 @@ void **Args, int64_t *ArgSizes, int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum, void *NoAliasDepList) { - TIMESCOPE_WITH_IDENT(Loc); + targetDataMapper( Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, - ArgMappers, targetDataEnd, "Exiting OpenMP data region", "end"); + ArgMappers, targetDataEnd, "Exiting OpenMP data region with end_nowait_mapper", "end"); } EXTERN void __tgt_target_data_update_mapper(ident_t *Loc, int64_t DeviceId, @@ -191,11 +191,10 @@ void **Args, int64_t *ArgSizes, int64_t *ArgTypes, map_var_info_t *ArgNames, - void **ArgMappers) { - TIMESCOPE_WITH_IDENT(Loc); + targetDataMapper( Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, - ArgMappers, targetDataUpdate, "Updating OpenMP data", "update"); + ArgMappers, targetDataUpdate, "Updating data within the OpenMP data region with update_mapper", "update"); } EXTERN void __tgt_target_data_update_nowait_mapper( @@ -203,10 +202,9 @@ void **Args, int64_t *ArgSizes, int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers, int32_t DepNum, void *DepList, int32_t NoAliasDepNum, void *NoAliasDepList) { - TIMESCOPE_WITH_IDENT(Loc); targetDataMapper( Loc, DeviceId, ArgNum, ArgsBase, Args, ArgSizes, ArgTypes, ArgNames, - ArgMappers, targetDataUpdate, "Updating OpenMP data", "update"); + ArgMappers, targetDataUpdate, "Updating data within the OpenMP data region with update_nowait_mapper", "update"); } static KernelArgsTy *upgradeKernelArgs(KernelArgsTy *KernelArgs, @@ -323,7 +321,6 @@ EXTERN int __tgt_target_kernel(ident_t *Loc, int64_t DeviceId, int32_t NumTeams, int32_t ThreadLimit, void *HostPtr, KernelArgsTy *KernelArgs) { - TIMESCOPE_WITH_IDENT(Loc); if (KernelArgs->Flags.NoWait) return targetKernel( Loc, DeviceId, NumTeams, ThreadLimit, HostPtr, KernelArgs); diff --git a/openmp/libomptarget/src/omptarget.cpp b/openmp/libomptarget/src/omptarget.cpp --- a/openmp/libomptarget/src/omptarget.cpp +++ b/openmp/libomptarget/src/omptarget.cpp @@ -531,7 +531,6 @@ int64_t ArgSize, int64_t ArgType, map_var_info_t ArgNames, void *ArgMapper, AsyncInfoTy &AsyncInfo, TargetDataFuncPtrTy TargetDataFunction) { - TIMESCOPE_WITH_IDENT(Loc); DP("Calling the mapper function " DPxMOD "\n", DPxPTR(ArgMapper)); // The mapper function fills up Components. @@ -573,6 +572,7 @@ int64_t *ArgTypes, map_var_info_t *ArgNames, void **ArgMappers, AsyncInfoTy &AsyncInfo, bool FromMapper) { + TIMESCOPE_WITH_IDENT(Loc); // process each input. for (int32_t I = 0; I < ArgNum; ++I) { // Ignore private variables and arrays - there is no mapping for them. @@ -1002,7 +1002,6 @@ static int targetDataContiguous(ident_t *Loc, DeviceTy &Device, void *ArgsBase, void *HstPtrBegin, int64_t ArgSize, int64_t ArgType, AsyncInfoTy &AsyncInfo) { - TIMESCOPE_WITH_IDENT(Loc); TargetPointerResultTy TPR = Device.getTgtPtrBegin(HstPtrBegin, ArgSize, /*UpdateRefCount=*/false, /*UseHoldRefCount=*/false, /*MustContain=*/true); @@ -1096,7 +1095,6 @@ uint64_t Size, int64_t ArgType, int CurrentDim, int DimSize, uint64_t Offset, AsyncInfoTy &AsyncInfo) { - TIMESCOPE_WITH_IDENT(Loc); int Ret = OFFLOAD_SUCCESS; if (CurrentDim < DimSize) { for (unsigned int I = 0; I < NonContig[CurrentDim].Count; ++I) { diff --git a/openmp/libomptarget/src/private.h b/openmp/libomptarget/src/private.h --- a/openmp/libomptarget/src/private.h +++ b/openmp/libomptarget/src/private.h @@ -429,9 +429,13 @@ #define TIMESCOPE_WITH_NAME_AND_IDENT(NAME, IDENT) \ SourceInfo SI(IDENT); \ llvm::TimeTraceScope TimeScope(NAME, SI.getProfileLocation()) +#define TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, IDENT) \ + SourceInfo SI(IDENT); \ + llvm::TimeTraceScope TimeScope(__FUNCTION__, SI.getProfileLocation() + RegionTypeMsg) #else #define TIMESCOPE() #define TIMESCOPE_WITH_IDENT(IDENT) #define TIMESCOPE_WITH_NAME_AND_IDENT(NAME, IDENT) +#define TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, IDENT) \ #endif