From d31852f6a7ccc8f34548609eb3c38f1d1b07b16f Mon Sep 17 00:00:00 2001 From: Georgi Mirazchiyski Date: Thu, 3 Oct 2024 12:45:18 +0100 Subject: [PATCH] Do not add fcuda-is-device to CC1 when compiling for HIPAMD --- clang/lib/Driver/ToolChains/HIPAMD.cpp | 3 ++- clang/test/Driver/sycl-cuda-arch-macro.cpp | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp index 24db5ac01c613..9fde85a6fe48c 100644 --- a/clang/lib/Driver/ToolChains/HIPAMD.cpp +++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp @@ -283,7 +283,8 @@ void HIPAMDToolChain::addClangTargetOptions( DeviceOffloadingKind == Action::OFK_SYCL) && "Only HIP and SYCL offloading kinds are supported for GPUs."); - CC1Args.push_back("-fcuda-is-device"); + if (DeviceOffloadingKind != Action::OFK_SYCL) + CC1Args.push_back("-fcuda-is-device"); if (!DriverArgs.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false)) diff --git a/clang/test/Driver/sycl-cuda-arch-macro.cpp b/clang/test/Driver/sycl-cuda-arch-macro.cpp index eba3f90528e5f..46e34324182e3 100644 --- a/clang/test/Driver/sycl-cuda-arch-macro.cpp +++ b/clang/test/Driver/sycl-cuda-arch-macro.cpp @@ -1,16 +1,17 @@ // Verify the __CUDA_ARCH__ macro has not been defined when offloading SYCL on NVPTX // RUN: %clangxx -E -dM -fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend --offload-arch=sm_80 -nocudalib -fno-sycl-libspirv %s 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-CUDA-ARCH-MACRO-NVPTX %s -// CHECK-CUDA-ARCH-MACRO-NVPTX-NOT: #define __CUDA_ARCH__ {{[0-9]+}} - +// RUN: | FileCheck --check-prefix=CHECK-CUDA-ARCH-MACRO %s // Verify the __CUDA_ARCH__ macro has not been defined when offloading SYCL on AMDGPU // RUN: %clangxx -E -dM -fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx90a -nogpulib -fno-sycl-libspirv %s 2>&1 \ -// RUN: | FileCheck --check-prefix=CHECK-CUDA-ARCH-MACRO-AMDGPU %s -// CHECK-CUDA-ARCH-MACRO-AMDGPU-NOT: #define __CUDA_ARCH__ {{[0-9]+}} +// RUN: | FileCheck --check-prefix=CHECK-CUDA-ARCH-MACRO %s +// CHECK-CUDA-ARCH-MACRO-NVPTX-NOT: #define __CUDA_ARCH__ {{[0-9]+}} // Verify that '-fcuda-is-device' is not supplied when offloading SYCL on NVPTX // RUN: %clangxx -### -fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend --offload-arch=sm_80 -nocudalib -fno-sycl-libspirv %s 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-CUDA-IS-DEVICE %s -// CHECK-CUDA-IS-DEVICE: clang{{.*}} "-cc1" "-triple" "nvptx64-nvidia-cuda" +// Verify that '-fcuda-is-device' is not supplied when offloading SYCL on AMDGPU +// RUN: %clangxx -### -fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx90a -nogpulib -fno-sycl-libspirv %s 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-CUDA-IS-DEVICE %s +// CHECK-CUDA-IS-DEVICE: clang{{.*}} "-cc1" "-triple" "amdgcn-amd-amdhsa" // CHECK-CUDA-IS-DEVICE-NOT: "-fcuda-is-device" // CHECK-CUDA-IS-DEVICE-SAME: "-fsycl-is-device"