Skip to content

Commit 12c4a0e

Browse files
mdtoguchijsji
authored andcommitted
[Driver][SYCL] Update device recognition behaviors for GPU
After the refactor of the offloading behaviors, the ability to update the device settings for spir64_gen regressed for command lines using -Xsycl-target-backend. Fix this behavior and add some additional testing.
1 parent c6b5e64 commit 12c4a0e

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7583,7 +7583,8 @@ Driver::getOffloadArchs(Compilation &C, const llvm::opt::DerivedArgList &Args,
75837583
// -fsycl-targets=spir64_gen -Xsycl-target-backend "-device pvc"
75847584
if (TC->getTriple().isSPIRAOT() &&
75857585
TC->getTriple().getSubArch() == llvm::Triple::SPIRSubArch_gen &&
7586-
Arg->getOption().matches(options::OPT_Xsycl_backend_EQ)) {
7586+
(Arg->getOption().matches(options::OPT_Xsycl_backend_EQ) ||
7587+
Arg->getOption().matches(options::OPT_Xsycl_backend))) {
75877588
const ToolChain *HostTC =
75887589
C.getSingleOffloadToolChain<Action::OFK_Host>();
75897590
auto DeviceTC = std::make_unique<toolchains::SYCLToolChain>(

clang/test/Driver/sycl-offload-new-driver.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,28 @@
189189
// RUN: | FileCheck -check-prefix COMMA_FILE %s
190190
// COMMA_FILE: clang-offload-packager{{.*}} "--image=file={{.*}}pvc@bdw{{.*}},triple=spir64_gen-unknown-unknown,arch=pvc,bdw,kind=sycl,compile-opts=-device_options pvc -ze-intel-enable-auto-large-GRF-mode"
191191

192+
/// Verify the arch value for the packager is populated with different
193+
/// scenarios for spir64_gen
194+
// RUN: %clangxx -fsycl -### -fsycl-targets=spir64_gen --offload-new-driver \
195+
// RUN: -Xsycl-target-backend=spir64_gen "-device bdw" %s 2>&1 \
196+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
197+
// RUN: %clangxx -fsycl -### -fsycl-targets=spir64_gen --offload-new-driver \
198+
// RUN: -Xsycl-target-backend "-device bdw" %s 2>&1 \
199+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
200+
// RUN: %clangxx -fsycl -### -fsycl-targets=intel_gpu_bdw \
201+
// RUN: --offload-new-driver %s 2>&1 \
202+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
203+
// RUN: %clang_cl -fsycl -### -fsycl-targets=spir64_gen --offload-new-driver \
204+
// RUN: -Xsycl-target-backend=spir64_gen "-device bdw" %s 2>&1 \
205+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
206+
// RUN: %clang_cl -fsycl -### -fsycl-targets=spir64_gen --offload-new-driver \
207+
// RUN: -Xsycl-target-backend "-device bdw" %s 2>&1 \
208+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
209+
// RUN: %clang_cl -fsycl -### -fsycl-targets=intel_gpu_bdw \
210+
// RUN: --offload-new-driver %s 2>&1 \
211+
// RUN: | FileCheck -check-prefix ARCH_CHECK %s
212+
// ARCH_CHECK: clang-offload-packager{{.*}} "--image=file={{.*}}triple=spir64_gen-unknown-unknown,arch=bdw,kind=sycl{{.*}}"
213+
192214
/// Verify that --cuda-path is passed to clang-linker-wrapper for SYCL offload
193215
// RUN: %clangxx -fsycl -### -fsycl-targets=nvptx64-nvidia-cuda \
194216
// RUN: --cuda-gpu-arch=sm_20 --cuda-path=%S/Inputs/CUDA_80/usr/local/cuda %s \

0 commit comments

Comments
 (0)