jhuber6 wrote:
> Something like this makes it working:
>
> ```
> diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
> b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
> index cfdd11e1d298..37a4a3609323 100644
> --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
> +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
> @@ -549,7 +549,9 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles,
> const ArgList &Args,
> // the LTO link and defeat the non-LTO pipeline.
> // FIXME: This is a stop-gap for non-RDC. Longer term, RDC and non-RDC
> should
> // share a unified interface.
> - if (Args.hasArg(OPT_no_lto))
>
> + if (Args.hasArg(OPT_no_lto) && !Triple.isSPIRV())
> CmdArgs.append({"-x", "ir"});
> for (StringRef InputFile : InputFiles)
> CmdArgs.push_back(InputFile);
> @@ -613,7 +615,7 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles,
> const ArgList &Args,
> for (StringRef Arg : Args.getAllArgValues(OPT_compiler_arg_EQ))
> CmdArgs.push_back(Args.MakeArgString(Arg));
>
> - if (Args.hasArg(OPT_no_lto))
> + if (Args.hasArg(OPT_no_lto) && !Triple.isSPIRV())
> CmdArgs.append({"-flto=none", "-Wno-unused-command-line-argument"});
>
> if (Error Err = executeCommands(*ClangPath, CmdArgs))
> ```
This makes sense to me, the issue is that we were gating the no-lto on the
triple, but it's a global setting right now so it applied to both. This is
piling hacks on hacks but could you make a PR for it?
https://github.com/llvm/llvm-project/pull/202986
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits