[llvm] [MsgPack] Return an Error instead of bool from readFromBlob (PR #74357)
Scott Linder via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 5 10:25:42 PST 2023
================
@@ -63,27 +63,28 @@ void AMDGPUPALMetadata::readFromIR(Module &M) {
}
}
-// Set PAL metadata from a binary blob from the applicable .note record.
-// Returns false if bad format. Blob must remain valid for the lifetime of the
-// Metadata.
-bool AMDGPUPALMetadata::setFromBlob(unsigned Type, StringRef Blob) {
+// Set PAL metadata from a binary blob from the applicable .note record. Blob
+// must remain valid for the lifetime of the Metadata.
+void AMDGPUPALMetadata::setFromBlob(unsigned Type, StringRef Blob) {
BlobType = Type;
- if (Type == ELF::NT_AMD_PAL_METADATA)
- return setFromLegacyBlob(Blob);
- return setFromMsgPackBlob(Blob);
+ if (Type == ELF::NT_AMD_PAL_METADATA) {
+ setFromLegacyBlob(Blob);
+ } else {
+ setFromMsgPackBlob(Blob);
+ }
}
// Set PAL metadata from legacy (array of key=value pairs) blob.
-bool AMDGPUPALMetadata::setFromLegacyBlob(StringRef Blob) {
+void AMDGPUPALMetadata::setFromLegacyBlob(StringRef Blob) {
auto Data = reinterpret_cast<const uint32_t *>(Blob.data());
for (unsigned I = 0; I != Blob.size() / sizeof(uint32_t) / 2; ++I)
setRegister(Data[I * 2], Data[I * 2 + 1]);
- return true;
}
// Set PAL metadata from msgpack blob.
-bool AMDGPUPALMetadata::setFromMsgPackBlob(StringRef Blob) {
- return MsgPackDoc.readFromBlob(Blob, /*Multi=*/false);
+void AMDGPUPALMetadata::setFromMsgPackBlob(StringRef Blob) {
+ if (!Blob.empty())
----------------
slinder1 wrote:
I see, this is merging into the existing (possibly empty) doc; it makes sense that an empty blob is just an identity element for other merge, and it is nice that it is becoming explicit!
https://github.com/llvm/llvm-project/pull/74357
More information about the llvm-commits
mailing list