[Openmp-commits] [PATCH] D72576: [OpenMP][Offloading] Reverted the change that ignores empty target descriptors to fix the issue which the runtime returns wrong device number when no target region.

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Sun Jan 12 11:52:23 PST 2020

tianshilei1992 created this revision.
tianshilei1992 added reviewers: jdoerfert, ABataev.
tianshilei1992 added a project: OpenMP.
Herald added subscribers: openmp-commits, guansong.
tianshilei1992 edited the summary of this revision.

This patch is to fix issue in the following simple case:

  #include <omp.h>
  #include <stdio.h>
  int main(int argc, char *argv[]) {
    int num = omp_get_num_devices();
    printf("%d\n", num);
    return 0;

Currently it returns 0 even devices exist. Since this file doesn't contain any
 target region, the target descriptor is empty so further actions like
 initialization will not be proceeded, leading to wrong device number returned
 by runtime function call.

  rG LLVM Github Monorepo



Index: openmp/libomptarget/src/rtl.cpp
--- openmp/libomptarget/src/rtl.cpp
+++ openmp/libomptarget/src/rtl.cpp
@@ -234,8 +234,6 @@
   // Attempt to load all plugins available in the system.
   std::call_once(initFlag, &RTLsTy::LoadRTLs, this);
-  if (desc->HostEntriesBegin == desc->HostEntriesEnd)
-    return;
   // Register the images with the RTLs that understand them, if any.
   for (int32_t i = 0; i < desc->NumDeviceImages; ++i) {
@@ -322,8 +320,6 @@
 void RTLsTy::UnregisterLib(__tgt_bin_desc *desc) {
   DP("Unloading target library!\n");
-  if (desc->HostEntriesBegin == desc->HostEntriesEnd)
-    return;
   // Find which RTL understands each image, if any.
   for (int32_t i = 0; i < desc->NumDeviceImages; ++i) {

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72576.237555.patch
Type: text/x-patch
Size: 837 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20200112/31cf73d2/attachment.bin>

More information about the Openmp-commits mailing list