10#include "llvm/ADT/STLExtras.h"
11#include "llvm/ADT/StringRef.h"
12#include "llvm/TargetParser/Triple.h"
17struct OffloadArchToStringMap {
20 const char *VirtualArchName;
24#define SM(sm) {OffloadArch::SM_##sm, "sm_" #sm, "compute_" #sm}
25#define GFX(gpu) {OffloadArch::GFX##gpu, "gfx" #gpu, "compute_amdgcn"}
124 llvm::find_if(
ArchNames, [A](
const OffloadArchToStringMap &Map) {
125 return A == Map.Arch;
134 llvm::find_if(
ArchNames, [A](
const OffloadArchToStringMap &Map) {
135 return A == Map.Arch;
139 return Result->VirtualArchName;
144 llvm::find_if(
ArchNames, [S](
const OffloadArchToStringMap &Map) {
145 return S == Map.ArchName;
155 return llvm::Triple(
"spirv64-amd-amdhsa");
158 return DefaultToolchainTriple.isArch64Bit()
159 ? llvm::Triple(
"nvptx64-nvidia-cuda")
160 : llvm::Triple(
"nvptx-nvidia-cuda");
163 return llvm::Triple(
"amdgcn-amd-amdhsa");
__device__ __2f16 float c
The JSON file list parser is used to communicate input to InstallAPI.
static const OffloadArchToStringMap ArchNames[]
static bool IsAMDOffloadArch(OffloadArch A)
@ Result
The result type of a method or function.
static bool IsNVIDIAOffloadArch(OffloadArch A)
const char * OffloadArchToVirtualArchString(OffloadArch A)
OffloadArch StringToOffloadArch(llvm::StringRef S)
const char * OffloadArchToString(OffloadArch A)
llvm::Triple OffloadArchToTriple(const llvm::Triple &DefaultToolchainTriple, OffloadArch ID)