[Openmp-commits] [PATCH] D157918: [Libomptarget] Support mapping indirect host calls to device functions

Joseph Huber via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue Aug 15 13:20:19 PDT 2023


jhuber6 added inline comments.


================
Comment at: openmp/libomptarget/DeviceRTL/src/Misc.cpp:86
+    return nullptr;
+
+  uint32_t Left = 0;
----------------
jdoerfert wrote:
> Check if the HstPtr is outside the table range. This should allows us to avoid the binary search for basically all host pointers in practice.
We'd need to look up the beginning and the end right? That's still two loads to check.


================
Comment at: openmp/libomptarget/include/omptarget.h:95
+  /// Mark the entry global as being an indirectly callable function.
+  OMP_DECLARE_TARGET_INDIRECT = 0x04
 };
----------------
jdoerfert wrote:
> RaviNarayanaswamy wrote:
> > jhuber6 wrote:
> > > RaviNarayanaswamy wrote:
> > > > Should this be 0x08
> > > I didn't design it this way, but the frontend uses different flags for globals and kernels. All the other flags overlap so why should this one be the exception without breaking ABI and redesigning it?
> > You want the lookup table to be  small.  Does TARGET_DTOR get added to the indirect lookup  table?
> 0x08 plz
This comes from the previous patch, Clang for whatever reason uses a different set of enums for kernels and globals. All the others overlap so I don't know why this should be the exception. The case where this was important was the registration of the global constructors and destructors, which shouldn't have been looking at globals anyway.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157918/new/

https://reviews.llvm.org/D157918



More information about the Openmp-commits mailing list