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

23 SM(50), SM(52), SM(53),

24 SM(60), SM(61), SM(62),

25 SM(70), SM(72),

26 SM(75),

27 SM(80), SM(86),

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),

67 GFX(90c),

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