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

FreeBSD Manual Pages


home | help

       llvm-profdata - Profile data tool

       llvm-profdata command [args...]

       The llvm-profdata tool is a small utility for working with profile data

       o merge

       o show

       llvm-profdata merge [options] [filename...]

       llvm-profdata merge takes several profile data files generated  by  PGO
       instrumentation	and merges them	together into a	single indexed profile
       data file.

       By default profile data is merged without modification. This means that
       the  relative importance	of each	input file is proportional to the num-
       ber of samples or counts	it contains. In	 general,  the	input  from  a
       longer  training	 run  will be interpreted as relatively	more important
       than a shorter run. Depending on	the nature of the training runs	it may
       be  useful  to  adjust the weight given to each input file by using the
       -weighted-input option.

       Profiles	passed in via -weighted-input, -input-files, or	via positional
       arguments are processed once for	each time they are seen.

       -help  Print a summary of command line options.

       -output=output, -o=output
	      Specify the output file name.  Output cannot be -	as the result-
	      ing indexed profile data can't be	written	to standard output.

	      Specify an input file name along	with  a	 weight.  The  profile
	      counts  of  the supplied filename	will be	scaled (multiplied) by
	      the supplied weight, where where weight is a decimal integer  >=
	      1.  Input	files specified	without	using this option are assigned
	      a	default	weight of 1. Examples are shown	below.

       -input-files=path, -f=path
	      Specify a	file which contains a list of files to merge. The  en-
	      tries  in	 this  file are	newline-separated. Lines starting with
	      '#' are skipped. Entries	may  be	 of  the  form	<filename>  or

       -remapping-file=path, -r=path
	      Specify  a  file which contains a	remapping from symbol names in
	      the input	profile	to the symbol names that should	be used	in the
	      output  profile.	The  file  should consist of lines of the form
	      <input-symbol> <output-symbol>.  Blank lines and lines  starting
	      with # are skipped.

	      The  llvm-cxxmap	tool can be used to generate the symbol	remap-
	      ping file.

       -instr (default)
	      Specify that the input profile is	an instrumentation-based  pro-

	      Specify that the input profile is	a sample-based profile.

	      The  format  of  the  generated  file can	be generated in	one of
	      three ways:

	      -binary (default)

	      Emit the profile	using  a  binary  encoding.  For  instrumenta-
	      tion-based  profile the output format is the indexed binary for-


	      Emit the profile in text mode. This option can also be used with
	      both  sample-based  and instrumentation-based profile. When this
	      option is	used the profile will be dumped	 in  the  text	format
	      that is parsable by the profile reader.


	      Emit the profile using GCC's gcov	format (Not yet	supported).

	      Do not emit function records with	0 execution count. Can only be
	      used in conjunction with -instr. Defaults	to false, since	it can
	      inhibit compiler optimization during PGO.

       -num-threads=N, -j=N
	      Use  N  threads to perform profile merging. When N=0, llvm-prof-
	      data auto-detects	an appropriate number of threads to use.  This
	      is the default.

   Basic Usage
       Merge three profiles:

	  llvm-profdata	merge foo.profdata bar.profdata	baz.profdata -output merged.profdata

   Weighted Input
       The  input  file	 foo.profdata  is  especially  important, multiply its
       counts by 10:

	  llvm-profdata	merge -weighted-input=10,foo.profdata bar.profdata baz.profdata	-output	merged.profdata

       Exactly equivalent to the previous invocation  (explicit	 form;	useful
       for programmatic	invocation):

	  llvm-profdata	merge -weighted-input=10,foo.profdata -weighted-input=1,bar.profdata -weighted-input=1,baz.profdata -output merged.profdata

       llvm-profdata show [options] [filename]

       llvm-profdata  show takes a profile data	file and displays the informa-
       tion about the profile counters for this	file and for any of the	speci-
       fied function(s).

       If filename is omitted or is -, then llvm-profdata show reads its input
       from standard input.

	      Print details for	every function.

	      Print the	counter	values for the displayed functions.

	      Print details for	a function if the function's name contains the
	      given string.

       -help  Print a summary of command line options.

       -output=output, -o=output
	      Specify the output file name.  If	output is - or it isn't	speci-
	      fied, then the output is sent to standard	output.

       -instr (default)
	      Specify that the input profile is	an instrumentation-based  pro-

       -text  Instruct	the  profile dumper to show profile counts in the text
	      format of	the instrumentation-based profile data representation.
	      By  default,  the	 profile information is	dumped in a more human
	      readable form (also in text) with	annotations.

	      Instruct the profile dumper to show the top n functions with the
	      hottest  basic  blocks  in  the summary section. By default, the
	      topn functions are not dumped.

	      Specify that the input profile is	a sample-based profile.

	      Show the profiled	sizes of the memory intrinsic calls for	 shown

	      Show  only those functions whose max count values	are greater or
	      equal to n.  By default, the value-cutoff	is set to 0.

	      Only output names	of functions whose max count value  are	 below
	      the cutoff value.

       llvm-profdata  returns 1	if the command is omitted or is	invalid, if it
       cannot read input files,	or if there is a mismatch between their	data.

       Maintained by the LLVM Team (

       2003-2020, LLVM Project

8				  2020-08-27		      LLVM-PROFDATA(1)


Want to link to this manual page? Use this URL:

home | help