[Libomptarget] Use entry name for global info
Currently, globals on the device will have an infinite reference count and an unknown name when using `LIBOMPTARGET_INFO` to print the mapping table. We already store the name of the global in the offloading entry so we should be able to use it, although there will be no source location. To do this we need to create a valid `ident_t` string from a name only. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D124381
This commit is contained in:
parent
6a6cc5542b
commit
5ad07ac400
|
@ -50,15 +50,17 @@ class SourceInfo {
|
|||
std::string initStr(const void *Name) {
|
||||
if (!Name)
|
||||
return ";unknown;unknown;0;0;;";
|
||||
else
|
||||
return std::string(reinterpret_cast<const char *>(Name));
|
||||
|
||||
std::string Str = std::string(reinterpret_cast<const char *>(Name));
|
||||
if (Str.find(';') == std::string::npos)
|
||||
return ";" + Str + ";unknown;0;0;;";
|
||||
return Str;
|
||||
}
|
||||
|
||||
std::string initStr(const ident_t *Loc) {
|
||||
if (!Loc)
|
||||
return ";unknown;unknown;0;0;;";
|
||||
else
|
||||
return std::string(reinterpret_cast<const char *>(Loc->psource));
|
||||
return std::string(reinterpret_cast<const char *>(Loc->psource));
|
||||
}
|
||||
|
||||
/// Get n-th substring in an expression separated by ;.
|
||||
|
|
|
@ -168,7 +168,7 @@ static int InitLibrary(DeviceTy &Device) {
|
|||
(uintptr_t)CurrHostEntry->addr +
|
||||
CurrHostEntry->size /*HstPtrEnd*/,
|
||||
(uintptr_t)CurrDeviceEntry->addr /*TgtPtrBegin*/,
|
||||
false /*UseHoldRefCount*/, nullptr /*Name*/,
|
||||
false /*UseHoldRefCount*/, CurrHostEntry->name,
|
||||
true /*IsRefCountINF*/));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ int main() {
|
|||
// INFO: Libomptarget device 0 info: Removing map entry with HstPtrBegin={{.*}}, TgtPtrBegin={{.*}}, Size=256, Name=A[0:64]
|
||||
// INFO: Libomptarget device 0 info: OpenMP Host-Device pointer mappings after block at info.c:[[#%u,]]:[[#%u,]]:
|
||||
// INFO: Libomptarget device 0 info: Host Ptr Target Ptr Size (B) DynRefCount HoldRefCount Declaration
|
||||
// INFO: Libomptarget device 0 info: [[#%#x,]] [[#%#x,]] 4 INF 0 unknown at unknown:0:0
|
||||
// INFO: Libomptarget device 0 info: [[#%#x,]] [[#%#x,]] 4 INF 0 global at unknown:0:0
|
||||
#pragma omp target data map(alloc:A[0:N]) map(ompx_hold,tofrom:B[0:N]) map(to:C[0:N])
|
||||
#pragma omp target firstprivate(val)
|
||||
{ val = 1; }
|
||||
|
|
Loading…
Reference in a new issue