saiislam added a comment. In D124525#3491170 <https://reviews.llvm.org/D124525#3491170>, @jhuber6 wrote:
> I'm suggesting instead we define a new `__tgt_device_image` and a new > `__tgt_register_lib` function to support this. This new `__tgt_device_image` > will simply contain a pointer to an optional information struct. > > struct __tgt_device_image_v2 { > void* ImageStart; > void* ImageEnd; > __tgt_offload_entry* EntriesBegin; > __tgt_offload_entry* EntriesEnd; > __tgt_image_into* ImageInfo; > }; > > This new struct breaks the ABI with the old `__tgt_device_image` because > these are put into an array and we change the size, but we should be able to > provide backwards compatibility by copying from the old format to the new > format and creating a new array. We can detect the new vs. old ABI by > expecting that existing applications will call the `__tgt_register_image` > function. We will create a new `__tgt_register_image_v2` function for example > that all new programs will call. In `libomptarget` we then change > `__tgt_register_image` to do the necessary translation. > > struct __tgt_bin_desc { > > > int32_t NumDeviceImages; // Number of device types supported > > > __tgt_device_image *DeviceImages; // Array of device images (1 per dev. > type) > __tgt_offload_entry *HostEntriesBegin; // Begin of table with all host > entries > __tgt_offload_entry *HostEntriesEnd; // End of table (non inclusive) > > > }; > > EXTERN void __tgt_register_lib(__tgt_bin_desc *desc) { > __tgt_device_image_v2 *new_image = alloc_new_version(desc); > desc->DeviceImages = new_Image; > __tgt_register_lib_v2(desc); > } > > EXTERN void __tgt_unregister_lib(__tgt_bin_desc *desc) { > __tgt_unregister_lib_v2(desc); > dealloc(desc->DeviceImages); > } > > Now the rest of `libomptarget` solely uses the new format, and we check if > information is available by seeing that the `ImageInfo` field is non-null. Thanks for the input. I am going to try it. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124525/new/ https://reviews.llvm.org/D124525 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits