[Openmp-commits] [PATCH] D124381: [Libomptarget] Use entry name for global info

Joseph Huber via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Apr 25 05:43:25 PDT 2022


jhuber6 created this revision.
jhuber6 added reviewers: jdoerfert, tianshilei1992, JonChesterfield.
Herald added a project: All.
jhuber6 requested review of this revision.
Herald added a project: OpenMP.
Herald added a subscriber: openmp-commits.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D124381

Files:
  openmp/libomptarget/include/SourceInfo.h
  openmp/libomptarget/src/omptarget.cpp
  openmp/libomptarget/test/offloading/info.c


Index: openmp/libomptarget/test/offloading/info.c
===================================================================
--- openmp/libomptarget/test/offloading/info.c
+++ openmp/libomptarget/test/offloading/info.c
@@ -54,7 +54,7 @@
 // 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; }
Index: openmp/libomptarget/src/omptarget.cpp
===================================================================
--- openmp/libomptarget/src/omptarget.cpp
+++ openmp/libomptarget/src/omptarget.cpp
@@ -168,7 +168,7 @@
               (uintptr_t)CurrHostEntry->addr +
                   CurrHostEntry->size /*HstPtrEnd*/,
               (uintptr_t)CurrDeviceEntry->addr /*TgtPtrBegin*/,
-              false /*UseHoldRefCount*/, nullptr /*Name*/,
+              false /*UseHoldRefCount*/, CurrHostEntry->name,
               true /*IsRefCountINF*/));
         }
       }
Index: openmp/libomptarget/include/SourceInfo.h
===================================================================
--- openmp/libomptarget/include/SourceInfo.h
+++ openmp/libomptarget/include/SourceInfo.h
@@ -50,15 +50,17 @@
   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 ;.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124381.424887.patch
Type: text/x-patch
Size: 2424 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20220425/78de2655/attachment.bin>


More information about the Openmp-commits mailing list