diff options
Diffstat (limited to 'openmp/libomptarget/include/DeviceImage.h')
-rw-r--r-- | openmp/libomptarget/include/DeviceImage.h | 13 |
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 |