aboutsummaryrefslogtreecommitdiff
path: root/openmp/libomptarget/include/DeviceImage.h
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/libomptarget/include/DeviceImage.h')
-rw-r--r--openmp/libomptarget/include/DeviceImage.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/openmp/libomptarget/include/DeviceImage.h b/openmp/libomptarget/include/DeviceImage.h
index 369bf75..465bf97 100644
--- a/openmp/libomptarget/include/DeviceImage.h
+++ b/openmp/libomptarget/include/DeviceImage.h
@@ -12,28 +12,39 @@
#ifndef OMPTARGET_DEVICE_IMAGE_H
#define OMPTARGET_DEVICE_IMAGE_H
+#include "OffloadEntry.h"
#include "Shared/APITypes.h"
+#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/iterator.h"
+#include "llvm/ADT/iterator_range.h"
#include "llvm/Object/OffloadBinary.h"
+#include <memory>
+
class DeviceImageTy {
std::unique_ptr<llvm::object::OffloadBinary> Binary;
+ llvm::SmallVector<std::unique_ptr<OffloadEntryTy>> OffloadEntries;
+ __tgt_bin_desc *BinaryDesc;
__tgt_device_image Image;
__tgt_image_info ImageInfo;
public:
- DeviceImageTy(__tgt_device_image &Image);
+ DeviceImageTy(__tgt_bin_desc &BinaryDesc, __tgt_device_image &Image);
__tgt_device_image &getExecutableImage() { return Image; }
__tgt_image_info &getImageInfo() { return ImageInfo; }
+ __tgt_bin_desc &getBinaryDesc() { return *BinaryDesc; }
llvm::StringRef
getArch(llvm::StringRef DefaultArch = llvm::StringRef()) const {
return ImageInfo.Arch ? ImageInfo.Arch : DefaultArch;
}
+
+ auto entries() { return llvm::make_pointee_range(OffloadEntries); }
};
#endif // OMPTARGET_DEVICE_IMAGE_H