Skip to content

Commit 6fecfbc

Browse files
committed
[AMDGPU] Correctly exclude the HIP host from arch macros
Summary: This logic was wrong and accidentally appling to OpenCL.
1 parent 85a847f commit 6fecfbc

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

clang/lib/Basic/Targets/AMDGPU.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -275,14 +275,15 @@ void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts,
275275
Builder.defineMacro("__R600__");
276276

277277
// Legacy HIP host code relies on these default attributes to be defined.
278-
if (GPUKind == llvm::AMDGPU::GK_NONE && !(Opts.HIP && !Opts.CUDAIsDevice))
278+
bool IsHIPHost = Opts.HIP && !Opts.CUDAIsDevice;
279+
if (GPUKind == llvm::AMDGPU::GK_NONE && !IsHIPHost)
279280
return;
280281

281282
StringRef CanonName = isAMDGCN(getTriple()) ? getArchNameAMDGCN(GPUKind)
282283
: getArchNameR600(GPUKind);
283284
Builder.defineMacro(Twine("__") + Twine(CanonName) + Twine("__"));
284285
// Emit macros for gfx family e.g. gfx906 -> __GFX9__, gfx1030 -> __GFX10___
285-
if (isAMDGCN(getTriple()) && Opts.CUDAIsDevice) {
286+
if (isAMDGCN(getTriple()) && !IsHIPHost) {
286287
assert(CanonName.starts_with("gfx") && "Invalid amdgcn canonical name");
287288
Builder.defineMacro(Twine("__") + Twine(CanonName.drop_back(2).upper()) +
288289
Twine("__"));

0 commit comments

Comments
 (0)