[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
Tue Aug 9 08:45:42 PDT 2022
jhuber6 updated this revision to Diff 451174.
jhuber6 added a comment.
Remove unneeded info value.
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
@@ -468,6 +468,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;
@@ -495,7 +497,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;
@@ -505,20 +506,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));
FoundRTL = R;
Index: openmp/libomptarget/include/rtl.h
===================================================================
--- openmp/libomptarget/include/rtl.h
+++ openmp/libomptarget/include/rtl.h
@@ -14,6 +14,7 @@
#define _OMPTARGET_RTL_H
#include "omptarget.h"
+#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallVector.h"
#include <list>
@@ -125,6 +126,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.451174.patch
Type: text/x-patch
Size: 2243 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20220809/d8be7ad0/attachment.bin>
More information about the Openmp-commits
mailing list