llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-offload Author: Nick Sarnie (sarnex) <details> <summary>Changes</summary> We need to pass the right linker option and not try to containerize it. Fixes two OpenMP offload JIT tests, the other has some front end assert I will look at. --- Full diff: https://github.com/llvm/llvm-project/pull/213137.diff 3 Files Affected: - (modified) clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp (+9-3) - (modified) offload/test/jit/empty_kernel_lvl1.c (-1) - (modified) offload/test/jit/empty_kernel_lvl2.c (-1) ``````````diff diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index c2de6578773c7..f2a58774e99af 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -586,8 +586,13 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles, const ArgList &Args, if (SaveTemps && linkerSupportsLTO(Args)) CmdArgs.push_back("-Wl,--save-temps"); - if (Args.hasArg(OPT_embed_bitcode)) - CmdArgs.push_back("-Wl,--lto-emit-llvm"); + if (Args.hasArg(OPT_embed_bitcode)) { + // SPIR-V does not use the LTO linker path, it links bitcode via llvm-link. + if (Triple.isSPIRV()) + CmdArgs.push_back("-emit-llvm"); + else + CmdArgs.push_back("-Wl,--lto-emit-llvm"); + } // For linking device code with the SYCL offload kind, special handling is // required. Passing --sycl-link to clang results in a call to @@ -640,7 +645,8 @@ Error containerizeRawImage(std::unique_ptr<MemoryBuffer> &Img, OffloadKind Kind, const ArgList &Args) { llvm::Triple Triple(Args.getLastArgValue(OPT_triple_EQ)); if (Kind == OFK_OpenMP && Triple.isSPIRV() && - Triple.getVendor() == llvm::Triple::Intel) + Triple.getVendor() == llvm::Triple::Intel && + !Args.hasArg(OPT_embed_bitcode)) return offloading::intel::containerizeOpenMPSPIRVImage(Img, Triple); return Error::success(); } diff --git a/offload/test/jit/empty_kernel_lvl1.c b/offload/test/jit/empty_kernel_lvl1.c index 0bf1675e437b7..812d5c1f46314 100644 --- a/offload/test/jit/empty_kernel_lvl1.c +++ b/offload/test/jit/empty_kernel_lvl1.c @@ -29,6 +29,5 @@ // clang-format on // REQUIRES: gpu -// XFAIL: intelgpu #include "empty_kernel.inc" diff --git a/offload/test/jit/empty_kernel_lvl2.c b/offload/test/jit/empty_kernel_lvl2.c index 98859aa87fe86..9e2ef17a42fbd 100644 --- a/offload/test/jit/empty_kernel_lvl2.c +++ b/offload/test/jit/empty_kernel_lvl2.c @@ -24,6 +24,5 @@ // clang-format on // REQUIRES: gpu -// XFAIL: intelgpu #include "empty_kernel.inc" `````````` </details> https://github.com/llvm/llvm-project/pull/213137 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
