//===- lookup-code-object.c -----------------------------------------------===// // // Part of Comgr, under the Apache License v2.0 with LLVM Exceptions. See // amd/comgr/LICENSE.TXT in this repository for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "amd_comgr.h" #include "common.h" int main(int argc, char *argv[]) { amd_comgr_data_kind_t Kind; switch(atoi(argv[2])) { case 0: Kind = AMD_COMGR_DATA_KIND_EXECUTABLE; break; case 1: Kind = AMD_COMGR_DATA_KIND_FATBIN; } char *BufObject; size_t SizeObject = setBuf(argv[1], &BufObject); amd_comgr_data_t DataObject; amd_comgr_(create_data(Kind, &DataObject)); amd_comgr_(set_data(DataObject, SizeObject, BufObject)); amd_comgr_code_object_info_t ObjectInfo[3]; ObjectInfo[0].isa = "amdgcn-amd-amdhsa--gfx900"; ObjectInfo[0].size = 0; ObjectInfo[0].offset = 0; ObjectInfo[1].isa = "amdgcn-amd-amdhsa--gfx942"; ObjectInfo[1].size = 0; ObjectInfo[1].offset = 0; ObjectInfo[2].isa = "amdgcn-amd-amdhsa--gfx950"; ObjectInfo[2].size = 0; ObjectInfo[2].offset = 0; amd_comgr_(lookup_code_object(DataObject, ObjectInfo, 3)); for (int i = 0; i < 3; ++i) { printf("ObjectInfo[%d].isa: %s\n", i, ObjectInfo[i].isa); printf("ObjectInfo[%d].size: %zu\n", i, ObjectInfo[i].size); printf("ObjectInfo[%d].offset: %" PRIu64 "\n", i, ObjectInfo[i].offset); } amd_comgr_(release_data(DataObject)); free(BufObject); return 0; }