================
@@ -5116,11 +5123,34 @@ void Clang::ConstructJob(Compilation &C, const 
JobAction &JA,
   if (const Arg *PF = Args.getLastArg(options::OPT_mprintf_kind_EQ))
     PF->claim();
 
-  if (Args.hasFlag(options::OPT_fsycl, options::OPT_fno_sycl, false)) {
-    CmdArgs.push_back("-fsycl-is-device");
+  Arg *SYCLStdArg = Args.getLastArg(options::OPT_sycl_std_EQ);
 
-    if (Arg *A = Args.getLastArg(options::OPT_sycl_std_EQ)) {
-      A->render(Args, CmdArgs);
+  if (IsSYCL) {
+    if (IsSYCLDevice) {
+      // Host triple is needed when doing SYCL device compilations.
+      llvm::Triple AuxT = C.getDefaultToolChain().getTriple();
+      std::string NormalizedTriple = AuxT.normalize();
+      CmdArgs.push_back("-aux-triple");
+      CmdArgs.push_back(Args.MakeArgString(NormalizedTriple));
+
+      // We want to compile sycl kernels.
+      CmdArgs.push_back("-fsycl-is-device");
+
+      // Set O2 optimization level by default
+      if (!Args.getLastArg(options::OPT_O_Group))
+        CmdArgs.push_back("-O2");
----------------
bader wrote:

I'm not sure if it's directly related to the "debugging". 
SYCL compiler follows common pattern for GPU programming model implementations, 
which optimize the offload code by default.
>From my POV, more users expect compiler to optimize for speed the code 
>targeting compute accelerator than make code debugger friendly. Is this the 
>right metric for selecting default value from your POV?

BTW, this code has been discussed here too: 
https://github.com/llvm/llvm-project/pull/107493#discussion_r1763982225.

https://github.com/llvm/llvm-project/pull/107493
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to