The bitstream remark serializer landed in r367372.
This adds a bitstream remark parser that parser bitstream remark files to llvm::remarks::Remark objects through the llvm::remarks::RemarkParser interface.
A few interesting things to point out:
- There are parsing helpers to parse the different types of blocks
- The main parsing helper allows us to parse remark metadata and open an external file containing the encoded remarks
- This adds a dependency from the Remarks library to the BitstreamReader library
- The testing strategy is to create a remark entry through YAML, parse it, serialize it to bitstream, parse that back and compare the objects.
- There are close to no tests for malformed bitstream remarks, due to the lack of textual format for the bitstream format.
- This adds a new C API for parsing bitstream remarks: LLVMRemarkParserCreateBitstream.
- This bumps the REMARKS_API_VERSION to 1.
I think these helpers could be private? Doing so would help convey what's part of the interface and what's not. The same applies to the other structs.