[PATCH] D125165: [Clang] Introduce clang-offload-packager tool to bundle device files
Yaxun Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 11 11:26:37 PDT 2022
yaxunl added inline comments.
================
Comment at: clang/docs/ClangOffloadPackager.rst:31-32
+ uint32_t Flags;
+ StringMap<StringRef> StringData;
+ MemoryBufferRef Image;
+ };
----------------
jhuber6 wrote:
> yaxunl wrote:
> > This makes the file format depend on LLVM version and potentially standard C++ library version.
> >
> > If it is consumed by the same version of LLVM, it may be fine.
> >
> > However, if it is intended for a generic file format to be consumed by generic offloading language runtimes, it is better to use C-like simple data layout which does not depend on LLVM or standard C++ library.
> That format just stores the data before it's serialized to a binary format. The binary format is basically just a few headers and a string table. See https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Object/OffloadBinary.h#L91 for the real format. I didn't want to explain it all in detail here.
If the file format is intended to be consumed by generic offloading language runtimes or development tools, better to describe its layout like https://clang.llvm.org/docs/ClangOffloadBundler.html
Since language runtimes or development tools may not use LLVM to load the file. The documentation serves as a spec for this binary format.
Especially, it is not clear where to find the target triple and GPU arch for each image in this documentation.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D125165/new/
https://reviews.llvm.org/D125165
More information about the cfe-commits
mailing list