Skip to content

Commit

Permalink
Do not add fcuda-is-device to CC1 when compiling for HIPAMD
Browse files Browse the repository at this point in the history
  • Loading branch information
GeorgeWeb committed Oct 3, 2024
1 parent c279604 commit d31852f
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
3 changes: 2 additions & 1 deletion clang/lib/Driver/ToolChains/HIPAMD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
13 changes: 7 additions & 6 deletions clang/test/Driver/sycl-cuda-arch-macro.cpp
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit d31852f

Please sign in to comment.