<div dir="ltr"><div>Hello,</div><div><br></div><div>I propose a new syntax for metadata strings (MDStrings) which would allow string data to be spread over multiple lines:</div><div><br></div><div>!0 = metadata !{metadata !"""</div>
<div>hello</div><div>world</div><div>"""}</div><div><br></div><div>The special three-quote sequence marks the beginning and end of a multi-line string.</div><div><br></div><div>This syntax could have a variety of uses, but of particular interest is that it could be used as a basis for serializing MachineFunctions. MachineFunctions are not an entirely self-contained IR; they contain references to LLVM IR. As such, a serialization of a MachineFunction needs to have an LLVM Module to refer to. By encoding MachineFunctions in metadata, they can easily accompany an LLVM Module. By being multi-line, the data could be made to be reasonably human-readable and human-editable.</div>
<div><br></div><div>Attached is a simple proof-of-concept patch which implements parsing and printing for this new MDString syntax.</div><div><br></div><div>Comments welcome!</div><div><br></div><div>Dan</div><div><br></div>
</div>