diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 12ac2922a31be..da50a496618ce 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -1815,7 +1815,7 @@ void SYCLToolChain::AddImpliedTargetArgs(const llvm::Triple &Triple, // Default device AOT: -g -cl-opt-disable // Default device JIT: -g (-O0 is handled by the runtime) // GEN: -options "-g -O0" - // CPU: "--bo=-g -cl-opt-disable" + // CPU: "--bo=-g" "-bo=-cl-opt-disable" llvm::opt::ArgStringList BeArgs; // Per-device argument vector storing the device name and the backend argument // string @@ -1969,17 +1969,23 @@ void SYCLToolChain::AddImpliedTargetArgs(const llvm::Triple &Triple, CmdArgs.push_back(Args.MakeArgString(A)); return; } - SmallString<128> BeOpt; - if (IsGen) + if (IsGen) { + SmallString<128> BeOpt; CmdArgs.push_back("-options"); - else - BeOpt = "--bo="; - for (unsigned I = 0; I < BeArgs.size(); ++I) { - if (I) - BeOpt += ' '; - BeOpt += BeArgs[I]; + for (unsigned I = 0; I < BeArgs.size(); ++I) { + if (I) + BeOpt += ' '; + BeOpt += BeArgs[I]; + } + CmdArgs.push_back(Args.MakeArgString(BeOpt)); + } else { + for (unsigned I = 0; I < BeArgs.size(); ++I) { + SmallString<128> BeOpt; + BeOpt += "--bo="; + BeOpt += BeArgs[I]; + CmdArgs.push_back(Args.MakeArgString(BeOpt)); + } } - CmdArgs.push_back(Args.MakeArgString(BeOpt)); } void SYCLToolChain::TranslateBackendTargetArgs( diff --git a/clang/test/Driver/sycl-offload-aot.cpp b/clang/test/Driver/sycl-offload-aot.cpp index 50b484b1f874d..24445f5604016 100644 --- a/clang/test/Driver/sycl-offload-aot.cpp +++ b/clang/test/Driver/sycl-offload-aot.cpp @@ -145,7 +145,7 @@ // RUN: | FileCheck -check-prefix=CHK-TOOLS-IMPLIED-OPTS-CPU %s // RUN: %clang_cl -### -fsycl -fsycl-targets=spir64_x86_64-unknown-unknown -Zi -Od -Xsycl-target-backend "-DFOO1 -DFOO2" -- %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-TOOLS-IMPLIED-OPTS-CPU %s -// CHK-TOOLS-IMPLIED-OPTS-CPU: opencl-aot{{.*}} "--bo=-g -cl-opt-disable" "-DFOO1" "-DFOO2" +// CHK-TOOLS-IMPLIED-OPTS-CPU: opencl-aot{{.*}} "--bo=-g" "--bo=-cl-opt-disable" "-DFOO1" "-DFOO2" // RUN: %clang -### -target x86_64-unknown-linux-gnu -fsycl -fsycl-targets=spir64_gen-unknown-unknown -g -O0 -Xsycl-target-backend "-DFOO1 -DFOO2" %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-TOOLS-IMPLIED-OPTS-GEN %s