Changeset 4980 in CLRX


Ignore:
Timestamp:
Sep 19, 2019, 4:28:47 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCmGen: (for LLVM10BinFormat) Do not add other notes to binary. Add MsgPack? metadata note.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdbin/ROCmBinaries.cpp

    r4979 r4980  
    643643                    Elf64Types::nobase, Elf64Types::nobase, 0, 4 });
    644644   
    645     target = input->target.c_str();
    646     if (target.empty() && !input->targetTripple.empty())
    647     {
    648         target = input->targetTripple.c_str();
    649         char dbuf[20];
    650         snprintf(dbuf, 20, "-gfx%u%u%u", amdGpuArchValues.major, amdGpuArchValues.minor,
    651                  amdGpuArchValues.stepping);
    652         target += dbuf;
    653     }
    654     // elf notes
    655     elfBinGen64->addNote({"AMD", sizeof noteDescType1, noteDescType1, 1U});
    656     noteBuf.reset(new cxbyte[0x1b]);
    657     ::memcpy(noteBuf.get(), noteDescType3, 0x1b);
    658     SULEV(*(uint32_t*)(noteBuf.get()+4), amdGpuArchValues.major);
    659     SULEV(*(uint32_t*)(noteBuf.get()+8), amdGpuArchValues.minor);
    660     SULEV(*(uint32_t*)(noteBuf.get()+12), amdGpuArchValues.stepping);
    661     elfBinGen64->addNote({"AMD", 0x1b, noteBuf.get(), 3U});
    662     if (!target.empty())
    663         elfBinGen64->addNote({"AMD", target.size(), (const cxbyte*)target.c_str(), 0xbU});
     645    if (!input->llvm10BinFormat)
     646    {
     647        target = input->target.c_str();
     648        if (target.empty() && !input->targetTripple.empty())
     649        {
     650            target = input->targetTripple.c_str();
     651            char dbuf[20];
     652            snprintf(dbuf, 20, "-gfx%u%u%u", amdGpuArchValues.major, amdGpuArchValues.minor,
     653                    amdGpuArchValues.stepping);
     654            target += dbuf;
     655        }
     656        // elf notes
     657        elfBinGen64->addNote({"AMD", sizeof noteDescType1, noteDescType1, 1U});
     658        noteBuf.reset(new cxbyte[0x1b]);
     659        ::memcpy(noteBuf.get(), noteDescType3, 0x1b);
     660        SULEV(*(uint32_t*)(noteBuf.get()+4), amdGpuArchValues.major);
     661        SULEV(*(uint32_t*)(noteBuf.get()+8), amdGpuArchValues.minor);
     662        SULEV(*(uint32_t*)(noteBuf.get()+12), amdGpuArchValues.stepping);
     663        elfBinGen64->addNote({"AMD", 0x1b, noteBuf.get(), 3U});
     664        if (!target.empty())
     665            elfBinGen64->addNote({"AMD", target.size(), (const cxbyte*)target.c_str(), 0xbU});
     666    }
    664667   
    665668    metadataSize = input->metadataSize;
     
    706709            generateROCmMetadataMsgPack(input->metadataInfo,
    707710                                kernelDescPtrs.get(), metadataBytes);
    708             metadataSize = metadataStr.size();
    709             metadata = metadataStr.c_str();
     711            metadataSize = metadataBytes.size();
     712            metadata = (const char*)metadataBytes.data();
    710713        }
    711714    }
Note: See TracChangeset for help on using the changeset viewer.