clang: lib/Basic/OffloadArch.cpp Source File (original) (raw)
2
3#include "llvm/ADT/STLExtras.h"
4#include "llvm/ADT/StringRef.h"
5
7
8namespace {
9struct OffloadArchToStringMap {
11 const char *ArchName;
12 const char *VirtualArchName;
13};
14}
15
16#define SM(sm) {OffloadArch::SM_##sm, "sm_" #sm, "compute_" #sm}
17#define GFX(gpu) {OffloadArch::GFX##gpu, "gfx" #gpu, "compute_amdgcn"}
18static const OffloadArchToStringMap ArchNames[] = {
19
26 SM(75),
28 SM(87),
29 SM(88),
30 SM(89),
31 SM(90),
32 SM(90a),
33 SM(100),
34 SM(100a),
35 SM(101),
36 SM(101a),
37 SM(103),
38 SM(103a),
39 SM(110),
40 SM(110a),
41 SM(120),
42 SM(120a),
43 SM(121),
44 SM(121a),
45 GFX(600),
46 GFX(601),
47 GFX(602),
48 GFX(700),
49 GFX(701),
50 GFX(702),
51 GFX(703),
52 GFX(704),
53 GFX(705),
54 GFX(801),
55 GFX(802),
56 GFX(803),
57 GFX(805),
58 GFX(810),
60 GFX(900),
61 GFX(902),
62 GFX(904),
63 GFX(906),
64 GFX(908),
65 GFX(909),
66 GFX(90a),
69 GFX(942),
70 GFX(950),
72 GFX(1010),
73 GFX(1011),
74 GFX(1012),
75 GFX(1013),
77 GFX(1030),
78 GFX(1031),
79 GFX(1032),
80 GFX(1033),
81 GFX(1034),
82 GFX(1035),
83 GFX(1036),
85 GFX(1100),
86 GFX(1101),
87 GFX(1102),
88 GFX(1103),
89 GFX(1150),
90 GFX(1151),
91 GFX(1152),
92 GFX(1153),
94 GFX(1200),
95 GFX(1201),
96 GFX(1250),
97 GFX(1251),
99
101
104
105};
106#undef SM
107#undef GFX
108
111 llvm::find_if(ArchNames, [A](const OffloadArchToStringMap &Map) {
112 return A == Map.Arch;
113 });
115 return "unknown";
116 return Result->ArchName;
117}
118
121 llvm::find_if(ArchNames, [A](const OffloadArchToStringMap &Map) {
122 return A == Map.Arch;
123 });
125 return "unknown";
126 return Result->VirtualArchName;
127}
128
131 llvm::find_if(ArchNames, [S](const OffloadArchToStringMap &Map) {
132 return S == Map.ArchName;
133 });
137}
138
139}
#define GFX(gpu)
Definition OffloadArch.cpp:17
#define SM(sm)
Definition OffloadArch.cpp:16
__device__ __2f16 float c
The JSON file list parser is used to communicate input to InstallAPI.
static const OffloadArchToStringMap ArchNames[]
Definition OffloadArch.cpp:18
@ Result
The result type of a method or function.
const char * OffloadArchToVirtualArchString(OffloadArch A)
Definition OffloadArch.cpp:119
OffloadArch StringToOffloadArch(llvm::StringRef S)
Definition OffloadArch.cpp:129
const char * OffloadArchToString(OffloadArch A)
Definition OffloadArch.cpp:109