mirror of https://github.com/microsoft/clang.git
[HIP] Diagnose unsupported host triple
Differential Revision: https://reviews.llvm.org/D46487 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@332122 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
49edfed6d9
commit
daf5c0ea22
|
@ -40,7 +40,7 @@ def err_drv_cuda_version_unsupported : Error<
|
||||||
"but installation at %3 is %4. Use --cuda-path to specify a different CUDA "
|
"but installation at %3 is %4. Use --cuda-path to specify a different CUDA "
|
||||||
"install, pass a different GPU arch with --cuda-gpu-arch, or pass "
|
"install, pass a different GPU arch with --cuda-gpu-arch, or pass "
|
||||||
"--no-cuda-version-check.">;
|
"--no-cuda-version-check.">;
|
||||||
def err_drv_cuda_nvptx_host : Error<"unsupported use of NVPTX for host compilation.">;
|
def err_drv_cuda_host_arch : Error<"unsupported architecture '%0' for host compilation.">;
|
||||||
def err_drv_invalid_thread_model_for_target : Error<
|
def err_drv_invalid_thread_model_for_target : Error<
|
||||||
"invalid thread model '%0' in '%1' for this target">;
|
"invalid thread model '%0' in '%1' for this target">;
|
||||||
def err_drv_invalid_linker_name : Error<
|
def err_drv_invalid_linker_name : Error<
|
||||||
|
|
|
@ -2338,11 +2338,13 @@ class OffloadingActionBuilder final {
|
||||||
|
|
||||||
const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
|
const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
|
||||||
assert(HostTC && "No toolchain for host compilation.");
|
assert(HostTC && "No toolchain for host compilation.");
|
||||||
if (HostTC->getTriple().isNVPTX()) {
|
if (HostTC->getTriple().isNVPTX() ||
|
||||||
// We do not support targeting NVPTX for host compilation. Throw
|
HostTC->getTriple().getArch() == llvm::Triple::amdgcn) {
|
||||||
|
// We do not support targeting NVPTX/AMDGCN for host compilation. Throw
|
||||||
// an error and abort pipeline construction early so we don't trip
|
// an error and abort pipeline construction early so we don't trip
|
||||||
// asserts that assume device-side compilation.
|
// asserts that assume device-side compilation.
|
||||||
C.getDriver().Diag(diag::err_drv_cuda_nvptx_host);
|
C.getDriver().Diag(diag::err_drv_cuda_host_arch)
|
||||||
|
<< HostTC->getTriple().getArchName();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
// REQUIRES: clang-driver
|
// REQUIRES: clang-driver
|
||||||
// REQUIRES: x86-registered-target
|
// REQUIRES: x86-registered-target
|
||||||
// REQUIRES: nvptx-registered-target
|
// REQUIRES: nvptx-registered-target
|
||||||
|
// REQUIRES: amdgpu-registered-target
|
||||||
|
|
||||||
// RUN: %clang -### -target x86_64-linux-gnu --cuda-gpu-arch=compute_20 -c %s 2>&1 \
|
// RUN: %clang -### -target x86_64-linux-gnu --cuda-gpu-arch=compute_20 -c %s 2>&1 \
|
||||||
// RUN: | FileCheck -check-prefix BAD %s
|
// RUN: | FileCheck -check-prefix BAD %s
|
||||||
|
@ -25,9 +26,12 @@
|
||||||
// RUN: %clang -### -target x86_64-linux-gnu -c %s 2>&1 \
|
// RUN: %clang -### -target x86_64-linux-gnu -c %s 2>&1 \
|
||||||
// RUN: | FileCheck -check-prefix OK %s
|
// RUN: | FileCheck -check-prefix OK %s
|
||||||
|
|
||||||
// We don't allow using NVPTX for host compilation.
|
// We don't allow using NVPTX/AMDGCN for host compilation.
|
||||||
// RUN: %clang -### --cuda-host-only -target nvptx-nvidia-cuda -c %s 2>&1 \
|
// RUN: %clang -### --cuda-host-only -target nvptx-nvidia-cuda -c %s 2>&1 \
|
||||||
// RUN: | FileCheck -check-prefix HOST_NVPTX %s
|
// RUN: | FileCheck -check-prefix HOST_NVPTX %s
|
||||||
|
// RUN: %clang -### --cuda-host-only -target amdgcn-amd-amdhsa -c %s 2>&1 \
|
||||||
|
// RUN: | FileCheck -check-prefix HOST_AMDGCN %s
|
||||||
|
|
||||||
// OK-NOT: error: Unsupported CUDA gpu architecture
|
// OK-NOT: error: Unsupported CUDA gpu architecture
|
||||||
// HOST_NVPTX: error: unsupported use of NVPTX for host compilation.
|
// HOST_NVPTX: error: unsupported architecture 'nvptx' for host compilation.
|
||||||
|
// HOST_AMDGCN: error: unsupported architecture 'amdgcn' for host compilation.
|
||||||
|
|
Loading…
Reference in New Issue