LLVM 22.0.0git
llvm::offloading::amdgpu Namespace Reference

Classes

 Struct for holding metadata related to AMDGPU kernels, for more information about the metadata and its meaning see: https://llvm.org/docs/AMDGPUUsage.html#code-object-v3. More...

Functions

LLVM_ABI bool isImageCompatibleWithEnv (StringRef ImageArch, uint32_t ImageFlags, StringRef EnvTargetID)
 Check if an image is compatible with current system's environment.
LLVM_ABI Error getAMDGPUMetaDataFromImage (MemoryBufferRef MemBuffer, StringMap< AMDGPUKernelMetaData > &KernelInfoMap, uint16_t &ELFABIVersion)
 Reads AMDGPU specific metadata from the ELF file and propagates the KernelInfoMap.

Function Documentation

◆ getAMDGPUMetaDataFromImage()

Error llvm::offloading::amdgpu::getAMDGPUMetaDataFromImage ( MemoryBufferRef MemBuffer,
StringMap< AMDGPUKernelMetaData > & KernelInfoMap,
uint16_t & ELFABIVersion )

◆ isImageCompatibleWithEnv()

bool llvm::offloading::amdgpu::isImageCompatibleWithEnv ( StringRef ImageArch,
uint32_t ImageFlags,
StringRef EnvTargetID )

Check if an image is compatible with current system's environment.

The system environment is given as a 'target-id' which has the form:

<target-id> := <processor> ( ":" <target-feature> ( "+" | "-" ) )*

If a feature is not specific as '+' or '-' it is assumed to be in an 'any' and is compatible with either '+' or '-'. The HSA runtime returns this information using the target-id, while we use the ELF header to determine these features.

Definition at line 154 of file Utility.cpp.

References llvm::StringRef::contains(), llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ANY_V4, llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_OFF_V4, llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ON_V4, llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4, llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_V4, llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ANY_V4, llvm::ELF::EF_AMDGPU_FEATURE_XNACK_OFF_V4, llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ON_V4, llvm::ELF::EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4, llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V4, and llvm::StringRef::split().