LLVM 23.0.0git
AMDGPUTargetParser.h File Reference
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/TargetParser/Triple.h"
#include <cstdint>
#include <optional>
#include <string>
#include <utility>
#include "AMDGPUTargetParser.def"

Go to the source code of this file.

Classes

struct  llvm::AMDGPU::IsaVersion
 Instruction set architecture version. More...
class  llvm::AMDGPU::TargetID

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::AMDGPU

Macros

#define R600_GPU(NAME, ENUM, FEATURES)
#define AMDGCN_GPU(NAME, ENUM, SUBARCH, ISAVERSION, FEATURES)
#define R600_GPU_ALIAS(NAME, ENUM)
#define AMDGCN_GPU_ALIAS(NAME, ENUM)

Enumerations

enum  llvm::AMDGPU::GPUKind : uint32_t { llvm::AMDGPU::GK_NONE = 0 , llvm::AMDGPU::GK_AMDGCN_GENERIC_FIRST = GK_GFX9_GENERIC , llvm::AMDGPU::GK_AMDGCN_GENERIC_LAST = GK_GFX13_GENERIC }
 GPU kinds supported by the AMDGPU target. More...
enum  llvm::AMDGPU::ArchFeatureKind : uint32_t {
  llvm::AMDGPU::FEATURE_NONE = 0 , llvm::AMDGPU::FEATURE_FMA = 1 << 1 , llvm::AMDGPU::FEATURE_LDEXP = 1 << 2 , llvm::AMDGPU::FEATURE_FP64 = 1 << 3 ,
  llvm::AMDGPU::FEATURE_FAST_FMA_F32 = 1 << 4 , llvm::AMDGPU::FEATURE_FAST_DENORMAL_F32 = 1 << 5 , llvm::AMDGPU::FEATURE_WAVE32 = 1 << 6 , llvm::AMDGPU::FEATURE_XNACK = 1 << 7 ,
  llvm::AMDGPU::FEATURE_SRAMECC = 1 << 8 , llvm::AMDGPU::FEATURE_WGP = 1 << 9 , llvm::AMDGPU::FEATURE_XNACK_ON_OFF_MODES = 1 << 10
}
enum  llvm::AMDGPU::FeatureError : uint32_t { llvm::AMDGPU::NO_ERROR = 0 , llvm::AMDGPU::INVALID_FEATURE_COMBINATION , llvm::AMDGPU::UNSUPPORTED_TARGET_FEATURE }
enum class  llvm::AMDGPU::TargetIDSetting { llvm::AMDGPU::Unsupported , llvm::AMDGPU::Any , llvm::AMDGPU::Off , llvm::AMDGPU::On }

Functions

LLVM_ABI StringRef llvm::AMDGPU::getArchFamilyNameAMDGCN (GPUKind AK)
LLVM_ABI Triple::SubArchType llvm::AMDGPU::getSubArch (GPUKind AK)
LLVM_ABI Triple::SubArchType llvm::AMDGPU::getMajorSubArch (Triple::SubArchType SubArch)
LLVM_ABI bool llvm::AMDGPU::isSubArchCompatible (const Triple &A, const Triple &B)
 Return true if subarch A is compatible with subarch B, i.e.
LLVM_ABI bool llvm::AMDGPU::isSubArchCompatible (Triple::SubArchType A, Triple::SubArchType B)
LLVM_ABI bool llvm::AMDGPU::isCPUValidForSubArch (Triple::SubArchType SubArch, GPUKind AK)
 Return true if the GPU AK is usable with the triple subarch SubArch.
LLVM_ABI bool llvm::AMDGPU::isCPUValidForSubArch (Triple::SubArchType SubArch, StringRef CPU)
 Convenience overload of isCPUValidForSubArch taking a GPU name CPU, which is parsed via parseArchAMDGCN.
LLVM_ABI std::string llvm::AMDGPU::mergeSubArch (const Triple &A, const Triple &B)
 Returns the effective triple appropriate to use when linking B into A by merging the subarches in case of inexact match.
LLVM_ABI StringRef llvm::AMDGPU::getArchNameAMDGCN (GPUKind AK)
LLVM_ABI StringRef llvm::AMDGPU::getArchNameR600 (GPUKind AK)
LLVM_ABI StringRef llvm::AMDGPU::getArchNameFromSubArch (Triple::SubArchType SubArch)
 Returns the canonical GPU name for an AMDGPU subarch, e.g.
LLVM_ABI StringRef llvm::AMDGPU::getCanonicalArchName (const Triple &T, StringRef Arch)
LLVM_ABI GPUKind llvm::AMDGPU::parseArchAMDGCN (StringRef CPU)
LLVM_ABI GPUKind llvm::AMDGPU::parseArchR600 (StringRef CPU)
LLVM_ABI GPUKind llvm::AMDGPU::getGPUKindFromSubArch (Triple::SubArchType SubArch)
LLVM_ABI unsigned llvm::AMDGPU::getArchAttrAMDGCN (GPUKind AK)
LLVM_ABI unsigned llvm::AMDGPU::getArchAttrAMDGCN (Triple::SubArchType SubArch)
LLVM_ABI unsigned llvm::AMDGPU::getArchAttrR600 (GPUKind AK)
LLVM_ABI void llvm::AMDGPU::fillValidArchListAMDGCN (SmallVectorImpl< StringRef > &Values, Triple::SubArchType SubArch=Triple::NoSubArch)
 Append the valid AMDGCN GPU names to Values.
LLVM_ABI void llvm::AMDGPU::fillValidArchListR600 (SmallVectorImpl< StringRef > &Values)
LLVM_ABI IsaVersion llvm::AMDGPU::getIsaVersion (StringRef GPU)
LLVM_ABI IsaVersion llvm::AMDGPU::getIsaVersion (Triple::SubArchType SubArch)
LLVM_ABI std::pair< FeatureError, StringRefllvm::AMDGPU::fillAMDGPUFeatureMap (StringRef GPU, const Triple &T, StringMap< bool > &Features)
 Fills Features map with default values for given target GPU.
raw_ostreamllvm::AMDGPU::operator<< (raw_ostream &OS, const TargetID &TargetID)

Macro Definition Documentation

◆ AMDGCN_GPU

#define AMDGCN_GPU ( NAME,
ENUM,
SUBARCH,
ISAVERSION,
FEATURES )
Value:
#define ENUM(Name,...)
Definition ClauseT.h:60

Definition at line 39 of file AMDGPUTargetParser.h.

◆ AMDGCN_GPU_ALIAS

#define AMDGCN_GPU_ALIAS ( NAME,
ENUM )

Definition at line 96 of file AMDGPUTargetParser.h.

◆ R600_GPU

#define R600_GPU ( NAME,
ENUM,
FEATURES )
Value:

Definition at line 38 of file AMDGPUTargetParser.h.

◆ R600_GPU_ALIAS

#define R600_GPU_ALIAS ( NAME,
ENUM )

Definition at line 58 of file AMDGPUTargetParser.h.