llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Alexey Bader (bader) <details> <summary>Changes</summary> Print in-process operation messages (sycl-device-link, LLVM backend) before execution rather than after, matching the behavior of clang-linker-wrapper. --- Full diff: https://github.com/llvm/llvm-project/pull/196212.diff 1 Files Affected: - (modified) clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp (+25-25) ``````````diff diff --git a/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp b/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp index a2380ea19f5d6..5a525d263427d 100644 --- a/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp +++ b/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp @@ -261,9 +261,29 @@ Expected<LinkResult> linkDeviceCode(ArrayRef<std::string> InputFiles, assert(InputFiles.size() && "No inputs to link"); + // Get all SYCL device library files, if any. + auto SYCLDeviceLibFiles = getSYCLDeviceLibs(Args); + if (!SYCLDeviceLibFiles) + return SYCLDeviceLibFiles.takeError(); + + // Create a new file to write the linked device file to. + auto BitcodeOutput = + createTempFile(Args, sys::path::filename(OutputFile), "bc"); + if (!BitcodeOutput) + return BitcodeOutput.takeError(); + + if (Verbose || DryRun) { + std::string Inputs = llvm::join(InputFiles.begin(), InputFiles.end(), ", "); + std::string LibInputs = llvm::join((*SYCLDeviceLibFiles).begin(), + (*SYCLDeviceLibFiles).end(), ", "); + errs() << formatv( + "sycl-device-link: inputs: {0} libfiles: {1} output: {2}\n", Inputs, + LibInputs, *BitcodeOutput); + } + + // Link SYCL device input files. auto LinkerOutput = std::make_unique<Module>("sycl-device-link", C); Linker L(*LinkerOutput); - // Link SYCL device input files. for (auto &File : InputFiles) { auto ModOrErr = getBitcodeModule(File, C); if (!ModOrErr) @@ -272,11 +292,6 @@ Expected<LinkResult> linkDeviceCode(ArrayRef<std::string> InputFiles, return createStringError("Could not link IR"); } - // Get all SYCL device library files, if any. - auto SYCLDeviceLibFiles = getSYCLDeviceLibs(Args); - if (!SYCLDeviceLibFiles) - return SYCLDeviceLibFiles.takeError(); - // Link in SYCL device library files. const llvm::Triple Triple(Args.getLastArgValue(OPT_triple_EQ)); for (auto &File : *SYCLDeviceLibFiles) { @@ -294,12 +309,6 @@ Expected<LinkResult> linkDeviceCode(ArrayRef<std::string> InputFiles, if (Args.hasArg(OPT_print_linked_module)) outs() << *LinkerOutput; - // Create a new file to write the linked device file to. - auto BitcodeOutput = - createTempFile(Args, sys::path::filename(OutputFile), "bc"); - if (!BitcodeOutput) - return BitcodeOutput.takeError(); - // Write the final output into 'BitcodeOutput' file. int FD = -1; if (std::error_code EC = sys::fs::openFileForWrite(*BitcodeOutput, FD)) @@ -307,15 +316,6 @@ Expected<LinkResult> linkDeviceCode(ArrayRef<std::string> InputFiles, llvm::raw_fd_ostream OS(FD, true); WriteBitcodeToFile(*LinkerOutput, OS); - if (Verbose) { - std::string Inputs = llvm::join(InputFiles.begin(), InputFiles.end(), ", "); - std::string LibInputs = llvm::join((*SYCLDeviceLibFiles).begin(), - (*SYCLDeviceLibFiles).end(), ", "); - errs() << formatv( - "sycl-device-link: inputs: {0} libfiles: {1} output: {2}\n", Inputs, - LibInputs, *BitcodeOutput); - } - return LinkResult{std::move(LinkerOutput), SmallString<256>(*BitcodeOutput)}; } @@ -329,6 +329,10 @@ static Error runCodeGen(StringRef File, const ArgList &Args, StringRef OutputFile, LLVMContext &C) { llvm::TimeTraceScope TimeScope("Code generation"); + if (Verbose || DryRun) + errs() << formatv("LLVM backend: input: {0}, output: {1}\n", File, + OutputFile); + // Parse input module. SMDiagnostic Err; std::unique_ptr<Module> M = parseIRFile(File, Err, C); @@ -375,10 +379,6 @@ static Error runCodeGen(StringRef File, const ArgList &Args, return createStringError("Failed to execute LLVM backend"); CodeGenPasses.run(*M); - if (Verbose) - errs() << formatv("LLVM backend: input: {0}, output: {1}\n", File, - OutputFile); - return Error::success(); } `````````` </details> https://github.com/llvm/llvm-project/pull/196212 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
