Skip to content

Commit 2bfa26d

Browse files
authored
AMDGPU: Add missing gfx* generic targets handling in clang (NVPTX, OpenMP runtime) (#94483)
1 parent 0911f65 commit 2bfa26d

File tree

5 files changed

+21
-1
lines changed

5 files changed

+21
-1
lines changed

clang/include/clang/Basic/Cuda.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ enum class CudaArch {
9191
GFX803,
9292
GFX805,
9393
GFX810,
94+
GFX9_GENERIC,
9495
GFX900,
9596
GFX902,
9697
GFX904,
@@ -102,23 +103,27 @@ enum class CudaArch {
102103
GFX940,
103104
GFX941,
104105
GFX942,
106+
GFX10_1_GENERIC,
105107
GFX1010,
106108
GFX1011,
107109
GFX1012,
108110
GFX1013,
111+
GFX10_3_GENERIC,
109112
GFX1030,
110113
GFX1031,
111114
GFX1032,
112115
GFX1033,
113116
GFX1034,
114117
GFX1035,
115118
GFX1036,
119+
GFX11_GENERIC,
116120
GFX1100,
117121
GFX1101,
118122
GFX1102,
119123
GFX1103,
120124
GFX1150,
121125
GFX1151,
126+
GFX12_GENERIC,
122127
GFX1200,
123128
GFX1201,
124129
Generic, // A processor model named 'generic' if the target backend defines a

clang/lib/Basic/Cuda.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ static const CudaArchToStringMap arch_names[] = {
111111
GFX(803), // gfx803
112112
GFX(805), // gfx805
113113
GFX(810), // gfx810
114+
{CudaArch::GFX9_GENERIC, "gfx9-generic", "compute_amdgcn"},
114115
GFX(900), // gfx900
115116
GFX(902), // gfx902
116117
GFX(904), // gfx903
@@ -122,23 +123,27 @@ static const CudaArchToStringMap arch_names[] = {
122123
GFX(940), // gfx940
123124
GFX(941), // gfx941
124125
GFX(942), // gfx942
126+
{CudaArch::GFX10_1_GENERIC, "gfx10-1-generic", "compute_amdgcn"},
125127
GFX(1010), // gfx1010
126128
GFX(1011), // gfx1011
127129
GFX(1012), // gfx1012
128130
GFX(1013), // gfx1013
131+
{CudaArch::GFX10_3_GENERIC, "gfx10-3-generic", "compute_amdgcn"},
129132
GFX(1030), // gfx1030
130133
GFX(1031), // gfx1031
131134
GFX(1032), // gfx1032
132135
GFX(1033), // gfx1033
133136
GFX(1034), // gfx1034
134137
GFX(1035), // gfx1035
135138
GFX(1036), // gfx1036
139+
{CudaArch::GFX11_GENERIC, "gfx11-generic", "compute_amdgcn"},
136140
GFX(1100), // gfx1100
137141
GFX(1101), // gfx1101
138142
GFX(1102), // gfx1102
139143
GFX(1103), // gfx1103
140144
GFX(1150), // gfx1150
141145
GFX(1151), // gfx1151
146+
{CudaArch::GFX12_GENERIC, "gfx12-generic", "compute_amdgcn"},
142147
GFX(1200), // gfx1200
143148
GFX(1201), // gfx1201
144149
{CudaArch::Generic, "generic", ""},

clang/lib/Basic/Targets/NVPTX.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
196196
case CudaArch::GFX803:
197197
case CudaArch::GFX805:
198198
case CudaArch::GFX810:
199+
case CudaArch::GFX9_GENERIC:
199200
case CudaArch::GFX900:
200201
case CudaArch::GFX902:
201202
case CudaArch::GFX904:
@@ -207,23 +208,27 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
207208
case CudaArch::GFX940:
208209
case CudaArch::GFX941:
209210
case CudaArch::GFX942:
211+
case CudaArch::GFX10_1_GENERIC:
210212
case CudaArch::GFX1010:
211213
case CudaArch::GFX1011:
212214
case CudaArch::GFX1012:
213215
case CudaArch::GFX1013:
216+
case CudaArch::GFX10_3_GENERIC:
214217
case CudaArch::GFX1030:
215218
case CudaArch::GFX1031:
216219
case CudaArch::GFX1032:
217220
case CudaArch::GFX1033:
218221
case CudaArch::GFX1034:
219222
case CudaArch::GFX1035:
220223
case CudaArch::GFX1036:
224+
case CudaArch::GFX11_GENERIC:
221225
case CudaArch::GFX1100:
222226
case CudaArch::GFX1101:
223227
case CudaArch::GFX1102:
224228
case CudaArch::GFX1103:
225229
case CudaArch::GFX1150:
226230
case CudaArch::GFX1151:
231+
case CudaArch::GFX12_GENERIC:
227232
case CudaArch::GFX1200:
228233
case CudaArch::GFX1201:
229234
case CudaArch::Generic:

clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3505,6 +3505,7 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(
35053505
case CudaArch::GFX803:
35063506
case CudaArch::GFX805:
35073507
case CudaArch::GFX810:
3508+
case CudaArch::GFX9_GENERIC:
35083509
case CudaArch::GFX900:
35093510
case CudaArch::GFX902:
35103511
case CudaArch::GFX904:
@@ -3516,23 +3517,27 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(
35163517
case CudaArch::GFX940:
35173518
case CudaArch::GFX941:
35183519
case CudaArch::GFX942:
3520+
case CudaArch::GFX10_1_GENERIC:
35193521
case CudaArch::GFX1010:
35203522
case CudaArch::GFX1011:
35213523
case CudaArch::GFX1012:
35223524
case CudaArch::GFX1013:
3525+
case CudaArch::GFX10_3_GENERIC:
35233526
case CudaArch::GFX1030:
35243527
case CudaArch::GFX1031:
35253528
case CudaArch::GFX1032:
35263529
case CudaArch::GFX1033:
35273530
case CudaArch::GFX1034:
35283531
case CudaArch::GFX1035:
35293532
case CudaArch::GFX1036:
3533+
case CudaArch::GFX11_GENERIC:
35303534
case CudaArch::GFX1100:
35313535
case CudaArch::GFX1101:
35323536
case CudaArch::GFX1102:
35333537
case CudaArch::GFX1103:
35343538
case CudaArch::GFX1150:
35353539
case CudaArch::GFX1151:
3540+
case CudaArch::GFX12_GENERIC:
35363541
case CudaArch::GFX1200:
35373542
case CudaArch::GFX1201:
35383543
case CudaArch::Generic:

clang/test/Misc/target-invalid-cpu-note.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
// RUN: not %clang_cc1 -triple nvptx--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix NVPTX
3131
// NVPTX: error: unknown target CPU 'not-a-cpu'
32-
// NVPTX-NEXT: note: valid target CPU values are: sm_20, sm_21, sm_30, sm_32, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86, sm_87, sm_89, sm_90, sm_90a, gfx600, gfx601, gfx602, gfx700, gfx701, gfx702, gfx703, gfx704, gfx705, gfx801, gfx802, gfx803, gfx805, gfx810, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx941, gfx942, gfx1010, gfx1011, gfx1012, gfx1013, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx1200, gfx1201{{$}}
32+
// NVPTX-NEXT: note: valid target CPU values are: sm_20, sm_21, sm_30, sm_32, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86, sm_87, sm_89, sm_90, sm_90a, gfx600, gfx601, gfx602, gfx700, gfx701, gfx702, gfx703, gfx704, gfx705, gfx801, gfx802, gfx803, gfx805, gfx810, gfx9-generic, gfx900, gfx902, gfx904, gfx906, gfx908, gfx909, gfx90a, gfx90c, gfx940, gfx941, gfx942, gfx10-1-generic, gfx1010, gfx1011, gfx1012, gfx1013, gfx10-3-generic, gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036, gfx11-generic, gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx12-generic, gfx1200, gfx1201{{$}}
3333

3434
// RUN: not %clang_cc1 -triple r600--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix R600
3535
// R600: error: unknown target CPU 'not-a-cpu'

0 commit comments

Comments
 (0)