This is a tool which can handle bitstream and YAML remarks. The idea here is to provide more insight into which functions changed in a benchmark when testing compiler changes.
E.g. "foo got 20% bigger, so maybe we should look more closely at that."
To use the tool, you can use...
$ llvm-remark-size-diff remarks_file_a remarks_file_b --parser=yaml|bitstream
... on two remarks files containing at least instruction count remarks. This will output some data on instruction count change and also other relevant information such as stack size change from remarks_file_a to remarks_file_b.
This is a bit of a WIP so I'm happy to change the format etc. Ultimately I think it'd be best to have some JSON output which could be consumed by another tool. But some base-level, greppable output is very handy to have anyway.
The format I'm proposing here is
<which files?> <increase/decrease in instruction count?> <function name> <inst count change> <stack B change>
Where the files and increase/decrease are indicated like below:
- <which files> is one of ++ (file B), -- (file A), == (both)
- <increase/decrease in instruction count?> is one of > (increase) or < (decrease)
This makes it easy to grep for things like "which functions appeared in A but did not appear in B?" Or "what are all the instruction count decreases?"
Nit: no new line at EOF