|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
| #
355ad3a3 |
| 07-Mar-2022 |
Jessica Paquette <[email protected]> |
Add JSON output option to llvm-remark-size-diff
This adds JSON output to llvm-remark-size-diff.
The goal here is to make it easy for external tools to consume output from llvm-remark-size-diff. The
Add JSON output option to llvm-remark-size-diff
This adds JSON output to llvm-remark-size-diff.
The goal here is to make it easy for external tools to consume output from llvm-remark-size-diff. These tools could be used for automated size analysis. (E.g. in CI).
To specify JSON output, use `--report_style=json`. JSON output can be pretty-printed via `--pretty`.
With automation in mind, the schema looks like this:
``` "Files": { "A": <filename_a> "B": <filename_b> },
"InBoth": [ { "FunctionName": <function name>, "InstCount": [ <count_in_a>, <count_in_b> ], "StackSize": [ <count_in_a>, <count_in_b> ] }, ... ]
"OnlyInA": [ { "FunctionName": <function name>, "InstCount": [ <count_in_a>, 0 ], "StackSize": [ <count_in_a>, 0 ] }, ... ]
"OnlyInB": [ { "FunctionName": <function name>, "InstCount": [ 0, <count_in_b> ], "StackSize": [ 0, <count_in_b> ] }, ... ] ```
A few notes:
- Filenames are included, because tools may want to combine many outputs together in some way (a big JSON file, a big CSV, or something.)
- Counts are represented as [a, b] so that a diff can be calculated via b - a. The original counts may be useful for size analysis (e.g. was this function extremely large before?) and so both are preserved.
- `OnlyInA` and `OnlyInB` have a 0 for one of the counts always. This is to make it easier for tools to share code between `OnlyInA`, `OnlyInB`, and `InBoth`.
Differential Revision: https://reviews.llvm.org/D121173
show more ...
|