aboutsummaryrefslogtreecommitdiff
path: root/clang/lib
diff options
context:
space:
mode:
authorShilei Tian <i@tianshilei.me>2025-03-14 14:02:15 -0700
committerGitHub <noreply@github.com>2025-03-14 17:02:15 -0400
commitdccc0a836c20914549fa375905615db49d2f813b (patch)
tree4275ad4d5fa23780669471d35e83e431381748fa /clang/lib
parent605a9f590d91a42ae652c2ab13487b5ad57c58a5 (diff)
downloadllvm-dccc0a836c20914549fa375905615db49d2f813b.zip
llvm-dccc0a836c20914549fa375905615db49d2f813b.tar.gz
llvm-dccc0a836c20914549fa375905615db49d2f813b.tar.bz2
[NFC][AMDGPU] Replace more direct arch comparison with isAMDGCN() (#131379)
This is an extension of #131357. Hopefully this would be the last one.
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets/AMDGPU.h20
-rw-r--r--clang/lib/Driver/Driver.cpp6
-rw-r--r--clang/lib/Driver/ToolChains/HIPAMD.cpp2
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp3
4 files changed, 12 insertions, 19 deletions
diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h
index 3d6778f..63b0d4b 100644
--- a/clang/lib/Basic/Targets/AMDGPU.h
+++ b/clang/lib/Basic/Targets/AMDGPU.h
@@ -52,7 +52,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
std::string TargetID;
bool hasFP64() const {
- return getTriple().getArch() == llvm::Triple::amdgcn ||
+ return getTriple().isAMDGCN() ||
!!(GPUFeatures & llvm::AMDGPU::FEATURE_FP64);
}
@@ -62,12 +62,10 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
}
/// Has fast fma f64
- bool hasFastFMA() const {
- return getTriple().getArch() == llvm::Triple::amdgcn;
- }
+ bool hasFastFMA() const { return getTriple().isAMDGCN(); }
bool hasFMAF() const {
- return getTriple().getArch() == llvm::Triple::amdgcn ||
+ return getTriple().isAMDGCN() ||
!!(GPUFeatures & llvm::AMDGPU::FEATURE_FMA);
}
@@ -76,13 +74,11 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
}
bool hasLDEXPF() const {
- return getTriple().getArch() == llvm::Triple::amdgcn ||
+ return getTriple().isAMDGCN() ||
!!(GPUFeatures & llvm::AMDGPU::FEATURE_LDEXP);
}
- static bool isAMDGCN(const llvm::Triple &TT) {
- return TT.getArch() == llvm::Triple::amdgcn;
- }
+ static bool isAMDGCN(const llvm::Triple &TT) { return TT.isAMDGCN(); }
static bool isR600(const llvm::Triple &TT) {
return TT.getArch() == llvm::Triple::r600;
@@ -125,7 +121,7 @@ public:
}
uint64_t getMaxPointerWidth() const override {
- return getTriple().getArch() == llvm::Triple::amdgcn ? 64 : 32;
+ return getTriple().isAMDGCN() ? 64 : 32;
}
bool hasBFloat16Type() const override { return isAMDGCN(getTriple()); }
@@ -269,7 +265,7 @@ public:
}
bool isValidCPUName(StringRef Name) const override {
- if (getTriple().getArch() == llvm::Triple::amdgcn)
+ if (getTriple().isAMDGCN())
return llvm::AMDGPU::parseArchAMDGCN(Name) != llvm::AMDGPU::GK_NONE;
return llvm::AMDGPU::parseArchR600(Name) != llvm::AMDGPU::GK_NONE;
}
@@ -277,7 +273,7 @@ public:
void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
bool setCPU(const std::string &Name) override {
- if (getTriple().getArch() == llvm::Triple::amdgcn) {
+ if (getTriple().isAMDGCN()) {
GPUKind = llvm::AMDGPU::parseArchAMDGCN(Name);
GPUFeatures = llvm::AMDGPU::getArchAttrAMDGCN(GPUKind);
} else {
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 848b270..056bfcf 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -158,8 +158,7 @@ getHIPOffloadTargetTriple(const Driver &D, const ArgList &Args) {
auto TT = getOffloadTargetTriple(D, Args);
if (!TT)
return std::nullopt;
- if (TT->getArch() == llvm::Triple::amdgcn &&
- TT->getVendor() == llvm::Triple::AMD &&
+ if (TT->isAMDGCN() && TT->getVendor() == llvm::Triple::AMD &&
TT->getOS() == llvm::Triple::AMDHSA)
return TT;
if (TT->getArch() == llvm::Triple::spirv64)
@@ -3409,8 +3408,7 @@ class OffloadingActionBuilder final {
const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
assert(HostTC && "No toolchain for host compilation.");
- if (HostTC->getTriple().isNVPTX() ||
- HostTC->getTriple().getArch() == llvm::Triple::amdgcn) {
+ if (HostTC->getTriple().isNVPTX() || HostTC->getTriple().isAMDGCN()) {
// We do not support targeting NVPTX/AMDGCN for host compilation. Throw
// an error and abort pipeline construction early so we don't trip
// asserts that assume device-side compilation.
diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index 271626e..55a8f2c 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -296,7 +296,7 @@ HIPAMDToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args,
}
Tool *HIPAMDToolChain::buildLinker() const {
- assert(getTriple().getArch() == llvm::Triple::amdgcn ||
+ assert(getTriple().isAMDGCN() ||
getTriple().getArch() == llvm::Triple::spirv64);
return new tools::AMDGCN::Linker(*this);
}
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 4eb743a..e708bee 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -4322,8 +4322,7 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
TT.getArch() == llvm::Triple::systemz ||
TT.getArch() == llvm::Triple::loongarch64 ||
TT.getArch() == llvm::Triple::nvptx ||
- TT.getArch() == llvm::Triple::nvptx64 ||
- TT.getArch() == llvm::Triple::amdgcn ||
+ TT.getArch() == llvm::Triple::nvptx64 || TT.isAMDGCN() ||
TT.getArch() == llvm::Triple::x86 ||
TT.getArch() == llvm::Triple::x86_64))
Diags.Report(diag::err_drv_invalid_omp_target) << A->getValue(i);