aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend
diff options
context:
space:
mode:
authorNick Sarnie <nick.sarnie@intel.com>2025-03-28 10:19:20 -0400
committerGitHub <noreply@github.com>2025-03-28 14:19:20 +0000
commit48b753027382a5815295d6680c7dd407be936c86 (patch)
treef5a9d6ab54ccceeb39de839a6280bb50ba89df42 /flang/lib/Frontend
parent427725508b084c7aa595312967d74d8888b168b6 (diff)
downloadllvm-48b753027382a5815295d6680c7dd407be936c86.zip
llvm-48b753027382a5815295d6680c7dd407be936c86.tar.gz
llvm-48b753027382a5815295d6680c7dd407be936c86.tar.bz2
[clang][flang][Triple][llvm] Add isOffload function to LangOpts and isGPU function to Triple (#126956)
I'm adding support for SPIR-V, so let's consolidate these checks. --------- Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>
Diffstat (limited to 'flang/lib/Frontend')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 652b3d8..229695b 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1139,22 +1139,16 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
if (args.hasArg(clang::driver::options::OPT_no_offloadlib))
res.getLangOpts().NoGPULib = 1;
}
-
- switch (llvm::Triple(res.getTargetOpts().triple).getArch()) {
- case llvm::Triple::nvptx:
- case llvm::Triple::nvptx64:
- case llvm::Triple::amdgcn:
+ if (llvm::Triple(res.getTargetOpts().triple).isGPU()) {
if (!res.getLangOpts().OpenMPIsTargetDevice) {
const unsigned diagID = diags.getCustomDiagID(
clang::DiagnosticsEngine::Error,
- "OpenMP AMDGPU/NVPTX is only prepared to deal with device code.");
+ "OpenMP GPU is only prepared to deal with device code.");
diags.Report(diagID);
}
res.getLangOpts().OpenMPIsGPU = 1;
- break;
- default:
+ } else {
res.getLangOpts().OpenMPIsGPU = 0;
- break;
}
// Get the OpenMP target triples if any.
@@ -1176,10 +1170,8 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
if (tt.getArch() == llvm::Triple::UnknownArch ||
!(tt.getArch() == llvm::Triple::aarch64 || tt.isPPC() ||
tt.getArch() == llvm::Triple::systemz ||
- tt.getArch() == llvm::Triple::nvptx ||
- tt.getArch() == llvm::Triple::nvptx64 || tt.isAMDGCN() ||
tt.getArch() == llvm::Triple::x86 ||
- tt.getArch() == llvm::Triple::x86_64))
+ tt.getArch() == llvm::Triple::x86_64 || tt.isGPU()))
diags.Report(clang::diag::err_drv_invalid_omp_target)
<< arg->getValue(i);
else if (getArchPtrSize(t) != getArchPtrSize(tt))