Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LLVM-OPT-REPORT(1)		     LLVM		    LLVM-OPT-REPORT(1)

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

       It  provides information	on the execution time, memory usage, and other
       details of each optimization pass.

	  $ 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  fol-
       lows:

        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.

       NOTE:
	  If  a	 specific line of code is output twice,	it means that the same
	  optimization pass was	applied	to that	line of	code  twice,  and  the
	  pass was able	to further optimize the	code on	the second iteration.

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-2025, LLVM Project

18				  2025-04-13		    LLVM-OPT-REPORT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=llvm-opt-report-cheriot&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help