diff options
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index d86f47b..3b70310 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1090,19 +1090,16 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C, llvm::Triple AMDTriple("amdgcn-amd-amdhsa"); llvm::Triple NVPTXTriple("nvptx64-nvidia-cuda"); - for (StringRef A : + for (StringRef Arch : C.getInputArgs().getAllArgValues(options::OPT_offload_arch_EQ)) { - for (StringRef Arch : llvm::split(A, ",")) { - bool IsNVPTX = IsNVIDIAOffloadArch( - StringToOffloadArch(getProcessorFromTargetID(NVPTXTriple, Arch))); - bool IsAMDGPU = IsAMDOffloadArch( - StringToOffloadArch(getProcessorFromTargetID(AMDTriple, Arch))); - if (!IsNVPTX && !IsAMDGPU && !Arch.empty() && - !Arch.equals_insensitive("native")) { - Diag(clang::diag::err_drv_failed_to_deduce_target_from_arch) - << Arch; - return; - } + bool IsNVPTX = IsNVIDIAOffloadArch( + StringToOffloadArch(getProcessorFromTargetID(NVPTXTriple, Arch))); + bool IsAMDGPU = IsAMDOffloadArch( + StringToOffloadArch(getProcessorFromTargetID(AMDTriple, Arch))); + if (!IsNVPTX && !IsAMDGPU && !Arch.empty() && + !Arch.equals_insensitive("native")) { + Diag(clang::diag::err_drv_failed_to_deduce_target_from_arch) << Arch; + return; } } @@ -4792,7 +4789,7 @@ Driver::getOffloadArchs(Compilation &C, const llvm::opt::DerivedArgList &Args, // Add or remove the seen architectures in order of appearance. If an // invalid architecture is given we simply exit. if (Arg->getOption().matches(options::OPT_offload_arch_EQ)) { - for (StringRef Arch : llvm::split(Arg->getValue(), ",")) { + for (StringRef Arch : Arg->getValues()) { if (Arch == "native" || Arch.empty()) { auto GPUsOrErr = TC->getSystemGPUArchs(Args); if (!GPUsOrErr) { |