================ @@ -937,13 +961,47 @@ Expected<SmallVector<StringRef>> linkAndWrapDeviceFiles( InputFiles.emplace_back(*FileNameOrErr); } + if (HasSYCLOffloadKind) { + // Link the remaining device files using the device linker. + auto OutputOrErr = linkDevice(InputFiles, LinkerArgs, HasSYCLOffloadKind); + if (!OutputOrErr) + return OutputOrErr.takeError(); + // Output is a packaged object of device images. Unpackage the images and + // copy them to Images[Kind] + ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr = + MemoryBuffer::getFileOrSTDIN(*OutputOrErr); + if (std::error_code EC = BufferOrErr.getError()) + return createFileError(*OutputOrErr, EC); + + MemoryBufferRef Buffer = **BufferOrErr; + SmallVector<OffloadFile> Binaries; + if (Error Err = extractOffloadBinaries(Buffer, Binaries)) + return std::move(Err); + for (auto &OffloadFile : Binaries) { ---------------- jhuber6 wrote:
Why can't this be made common with the other use? It looks directly copied. https://github.com/llvm/llvm-project/pull/135683 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits