[Openmp-commits] [PATCH] D131443: [Libomptarget] Do not check for valid binaries twice.
Joseph Huber via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Mon Aug 29 06:37:01 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG22d71e72c9fd: [Libomptarget] Do not check for valid binaries twice. (authored by jhuber6).
Changed prior to commit:
https://reviews.llvm.org/D131443?vs=451174&id=456326#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131443/new/
https://reviews.llvm.org/D131443
Files:
openmp/libomptarget/include/rtl.h
openmp/libomptarget/src/rtl.cpp
Index: openmp/libomptarget/src/rtl.cpp
===================================================================
--- openmp/libomptarget/src/rtl.cpp
+++ openmp/libomptarget/src/rtl.cpp
@@ -479,6 +479,8 @@
DP("Registering image " DPxMOD " with RTL %s!\n", DPxPTR(Img->ImageStart),
R.RTLName.c_str());
registerImageIntoTranslationTable(TransTable, R, Img);
+ R.UsedImages.insert(Img);
+
PM->TrlTblMtx.unlock();
FoundRTL = &R;
@@ -506,7 +508,6 @@
for (auto &ImageAndInfo : PM->Images) {
// Obtain the image and information that was previously extracted.
__tgt_device_image *Img = &ImageAndInfo.first;
- __tgt_image_info *Info = &ImageAndInfo.second;
RTLInfoTy *FoundRTL = NULL;
@@ -516,20 +517,9 @@
assert(R->IsUsed && "Expecting used RTLs.");
- if (R->is_valid_binary_info) {
- if (!R->is_valid_binary_info(Img, Info)) {
- DP("Image " DPxMOD " is NOT compatible with RTL %s!\n",
- DPxPTR(Img->ImageStart), R->RTLName.c_str());
- continue;
- }
- } else if (!R->is_valid_binary(Img)) {
- DP("Image " DPxMOD " is NOT compatible with RTL %s!\n",
- DPxPTR(Img->ImageStart), R->RTLName.c_str());
+ // Ensure that we do not use any unused images associated with this RTL.
+ if (!R->UsedImages.contains(Img))
continue;
- }
-
- DP("Image " DPxMOD " is compatible with RTL " DPxMOD "!\n",
- DPxPTR(Img->ImageStart), DPxPTR(R->LibraryHandler.get()));
FoundRTL = R;
Index: openmp/libomptarget/include/rtl.h
===================================================================
--- openmp/libomptarget/include/rtl.h
+++ openmp/libomptarget/include/rtl.h
@@ -13,6 +13,8 @@
#ifndef _OMPTARGET_RTL_H
#define _OMPTARGET_RTL_H
+#include "omptarget.h"
+#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/DynamicLibrary.h"
@@ -127,6 +129,8 @@
// Are there images associated with this RTL.
bool IsUsed = false;
+ llvm::DenseSet<const __tgt_device_image *> UsedImages;
+
// Mutex for thread-safety when calling RTL interface functions.
// It is easier to enforce thread-safety at the libomptarget level,
// so that developers of new RTLs do not have to worry about it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131443.456326.patch
Type: text/x-patch
Size: 2300 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20220829/2eba0cb2/attachment.bin>
More information about the Openmp-commits
mailing list