llvm-opt-report - generate optimization report from YAML ======================================================== .. program:: llvm-opt-report SYNOPSIS -------- :program:`llvm-opt-report` [*options*] [input] DESCRIPTION ----------- :program:`llvm-opt-report` is a tool to generate an optimization report from YAML optimization record files. You need to create an input YAML optimization record file before running :program:`llvm-opt-report`. .. code-block:: console $ clang -c foo.c -o foo.o -O3 -fsave-optimization-record Then, you create a report using the :program:`llvm-opt-report` command with the YAML optimization record file :file:`foo.opt.yaml` as input. .. code-block:: console $ llvm-opt-report foo.opt.yaml -o foo.lst foo.lst is the generated optimization report. .. code-block:: < foo.c 1 | void bar(); 2 | void foo() { bar(); } 3 | 4 | void Test(int *res, int *c, int *d, int *p, int n) { 5 | int i; 6 | 7 | #pragma clang loop vectorize(assume_safety) 8 V4,1 | for (i = 0; i < 1600; i++) { 9 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i]; 10 | } 11 | 12 U16 | for (i = 0; i < 16; i++) { 13 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i]; 14 | } 15 | 16 I | foo(); 17 | 18 | foo(); bar(); foo(); I | ^ I | ^ 19 | } 20 | Symbols printed on the left side of the program indicate what kind of optimization was performed. The meanings of the symbols are as follows: - I: The function is inlined. - U: The loop is unrolled. The following number indicates the unroll factor. - V: The loop is vectorized. The following numbers indicate the vector length and the interleave factor. OPTIONS ------- If ``input`` is "``-``" or omitted, :program:`llvm-opt-report` reads from standard input. Otherwise, it will read from the specified filename. If the :option:`-o` option is omitted, then :program:`llvm-opt-report` will send its output to standard output. If the :option:`-o` option specifies "``-``", then the output will also be sent to standard output. .. option:: --help Display available options. .. option:: --version Display the version of this program. .. option:: --format= The format of the optimization record file. The Argument is one of the following: - yaml - yaml-strtab - bitstream .. option:: --no-demangle Do not demangle function names. .. option:: -o= Output file. .. option:: -r= Root for relative input paths. .. option:: -s Do not include vectorization factors, etc. EXIT STATUS ----------- :program:`llvm-opt-report` returns 0 on success. Otherwise, an error message is printed to standard error, and the tool returns 1.