[all-commits] [llvm/llvm-project] ded733: Add a tool for diffing size remarks

Jessica Paquette via All-commits all-commits at lists.llvm.org
Wed Feb 2 16:10:35 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ded733bd49ff44cf94bd8a7a821ba37390dc94b1
      https://github.com/llvm/llvm-project/commit/ded733bd49ff44cf94bd8a7a821ba37390dc94b1
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M llvm/test/CMakeLists.txt
    M llvm/test/lit.cfg.py
    A llvm/test/tools/llvm-remark-size-diff/Inputs/1-func-1-instr-1-stack.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/1-func-2-instr-2-stack.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/2-identical-func-1-instr-1-stack.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/empty-file.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/inconvertible-integer.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/no-instruction-count-remarks.yaml
    A llvm/test/tools/llvm-remark-size-diff/Inputs/unexpected-key.yaml
    A llvm/test/tools/llvm-remark-size-diff/add-remove-func.test
    A llvm/test/tools/llvm-remark-size-diff/empty-file.test
    A llvm/test/tools/llvm-remark-size-diff/inconvertible-integer.test
    A llvm/test/tools/llvm-remark-size-diff/increase-decrease-inst-count.test
    A llvm/test/tools/llvm-remark-size-diff/no-difference.test
    A llvm/test/tools/llvm-remark-size-diff/no-instruction-count-remarks.test
    A llvm/test/tools/llvm-remark-size-diff/unexpected-key.test
    A llvm/tools/llvm-remark-size-diff/CMakeLists.txt
    A llvm/tools/llvm-remark-size-diff/RemarkSizeDiff.cpp

  Log Message:
  -----------
  Add a tool for diffing size remarks

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

```
<files> <inc/dec in inst count> <fn name> <inst count change> <stack B change>
```

Where the files and increase/decrease are indicated like below:

- `<files>` is one of `++` (file B), `--` (file A), `==` (both)
- `<inc/dec in inst 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?"

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




More information about the All-commits mailing list