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?"
You need to use long long for this variable to match the signature of getAsSignedInteger apparently