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
13 lines
700 B
Plaintext
13 lines
700 B
Plaintext
RUN: llvm-remark-size-diff %p/Inputs/1-func-1-instr-1-stack.yaml %p/Inputs/1-func-2-instr-2-stack.yaml --parser=yaml | FileCheck -strict-whitespace %s --check-prefix=INCREASE
|
|
RUN: llvm-remark-size-diff %p/Inputs/1-func-2-instr-2-stack.yaml %p/Inputs/1-func-1-instr-1-stack.yaml --parser=yaml | FileCheck -strict-whitespace %s --check-prefix=DECREASE
|
|
|
|
; Test a size increase/decrease of one instruction + 1 stack byte.
|
|
|
|
; INCREASE: == > func0, 1 instrs, 1 stack B
|
|
; INCREASE-DAG: instruction count: 1 (100.00%)
|
|
; INCREASE-NEXT: stack byte usage: 1 (100.00%)
|
|
|
|
; DECREASE: == < func0, -1 instrs, -1 stack B
|
|
; DECREASE-DAG: instruction count: -1 (-50.00%)
|
|
; DECREASE-NEXT: stack byte usage: -1 (-50.00%)
|