[llvm] [Offloading] Extend OffloadBinary format to support multiple metadata entries (PR #169425)

Joseph Huber via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 25 10:02:44 PST 2025


================
@@ -109,9 +109,12 @@ class OffloadBinary : public Binary {
   struct Header {
     uint8_t Magic[4] = {0x10, 0xFF, 0x10, 0xAD}; // 0x10FF10AD magic bytes.
     uint32_t Version = OffloadBinary::Version;   // Version identifier.
-    uint64_t Size;        // Size in bytes of this entire binary.
-    uint64_t EntryOffset; // Offset of the metadata entry in bytes.
-    uint64_t EntrySize;   // Size of the metadata entry in bytes.
+    uint64_t Size;          // Size in bytes of this entire binary.
+    uint64_t EntriesCount;  // Number of metadata entries in the binary.
+    uint64_t EntriesOffset; // Offset in bytes to the start of entries block.
+    uint64_t EntriesSize;   // Size of the entries block in bytes.
----------------
jhuber6 wrote:

Hm, yeah I think a count might be easier if we organize it like that. I'm leaning towards this because it will likely make it easier to compress the data after the header if this information stays uncompressed. I *think* this should be minimally invasive because I already use a direct offset to the entry list from the header so changing its size should be backwards compatible

https://github.com/llvm/llvm-project/pull/169425


More information about the llvm-commits mailing list