Provided by: llvm-16_16.0.6-27_amd64 bug

NAME

       llvm-opt-report - generate optimization report from YAML

SYNOPSIS

       llvm-opt-report [options] [input]

DESCRIPTION

       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 llvm-opt-report.

          $ clang -c foo.c -o foo.o -O3 -fsave-optimization-record

       Then, you create a report using the llvm-opt-report command  with  the  YAML  optimization
       record file foo.opt.yaml as input.

          $ llvm-opt-report foo.opt.yaml -o foo.lst

       foo.lst is the generated optimization report.

          < 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, llvm-opt-report reads from standard input. Otherwise, it will
       read from the specified filename.

       If the -o option is omitted, then llvm-opt-report will send its output to standard output.
       If the -o option specifies “-”, then the output will also be sent to standard output.

       --help Display available options.

       --version
              Display the version of this program.

       --format=<string>
              The format of the optimization record file.  The Argument is one of the following:

              • yaml

              • yaml-strtab

              • bitstream

       --no-demangle
              Do not demangle function names.

       -o=<string>
              Output file.

       -r=<string>
              Root for relative input paths.

       -s     Do not include vectorization factors, etc.

EXIT STATUS

       llvm-opt-report  returns  0 on success. Otherwise, an error message is printed to standard
       error, and the tool returns 1.

AUTHOR

       Maintained by the LLVM Team (https://llvm.org/).

COPYRIGHT

       2003-2024, LLVM Project