[clang] [llvm] [Driver][SYCL] Add initial SYCL offload compilation support (PR #107493)
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 31 07:38:33 PDT 2024
================
@@ -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");
----------------
AaronBallman wrote:
I presume this is okay because "debugging" on the device is basically not a thing? Do we expect that debuggers will get support for debugging devices and thus might not want this as a default?
https://github.com/llvm/llvm-project/pull/107493
More information about the cfe-commits
mailing list