diff options
author | Nick Sarnie <nick.sarnie@intel.com> | 2025-03-28 10:19:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-28 14:19:20 +0000 |
commit | 48b753027382a5815295d6680c7dd407be936c86 (patch) | |
tree | f5a9d6ab54ccceeb39de839a6280bb50ba89df42 /flang/lib/Frontend | |
parent | 427725508b084c7aa595312967d74d8888b168b6 (diff) | |
download | llvm-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.cpp | 16 |
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)) |