HomePhabricator

[Remarks] Add parser for bitstream remarks

Authored by thegameg on Sep 9 2019, 10:43 AM.

Description

[Remarks] Add parser for bitstream remarks

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 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.

Differential Revision: https://reviews.llvm.org/D67134

llvm-svn: 371429

Details

Committed
thegamegSep 9 2019, 10:43 AM
Differential Revision
D67134: [Remarks] Add parser for bitstream remarks
Parents
rG56e4ea2bff9e: [mips] Fix decoding of microMIPS JALX instruction
Branches
Unknown
Tags
Unknown