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

FreeBSD Manual Pages

  
 
  

home | help
LLVM-PROFDATA(1)		     LLVM		      LLVM-PROFDATA(1)

NAME
       llvm-profdata - Profile data tool

SYNOPSIS
       llvm-profdata command [args...]

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

COMMANDS
       o merge

       o show

       o overlap

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

   DESCRIPTION
       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.

   OPTIONS
       -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.

       -weighted-input=weight,filename
	      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
	      <weight>,<filename>.

       -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-
	      file.

       -sample
	      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-
	      mat.

	      -text

	      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.

	      -gcc

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

       -sparse[=true|false]
	      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.

   EXAMPLES
   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

SHOW
   SYNOPSIS
       llvm-profdata show [options] [filename]

   DESCRIPTION
       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.

   OPTIONS
       -all-functions
	      Print details for	every function.

       -counts
	      Print the	counter	values for the displayed functions.

       -function=string
	      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-
	      file.

       -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.

       -topn=n
	      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.

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

       -memop-sizes
	      Show the profiled	sizes of the memory intrinsic calls for	 shown
	      functions.

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

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

       -showcs
	      Only  show  context  sensitive profile counts. The default is to
	      filter all context sensitive profile counts.

OVERLAP
   SYNOPSIS
       llvm-profdata overlap [options] [base profile file] [test profile file]

   DESCRIPTION
       llvm-profdata overlap takes two profile data  files  and	 displays  the
       overlap of counter distribution between the whole files and between any
       of the specified	functions.

       In this command,	overlap	is defined as follows:	Suppose	 base  profile
       file  has the following counts: {c1_1, c1_2, ..., c1_n, c1_u_1, c2_u_2,
       ..., c2_u_s}, and test profile file has {c2_1, c2_2, ..., c2_n, c2_v_1,
       c2_v_2,	..., c2_v_t}.  Here c{1|2}_i (i	= 1 .. n) are matched counters
       and c1_u_i (i = 1 .. s) and c2_v_i (i = 1 .. v) are unmatched  counters
       (or counters only existing in) base profile file	and test profile file,
       respectively.  Let sum_1	= c1_1 + c1_2 +	 ... + c1_n +  c1_u_1 +	c2_u_2
       +  ... +	c2_u_s,	and sum_2 = c2_1 + c2_2	+ ... +	c2_n + c2_v_1 +	c2_v_2
       +  ...	+   c2_v_t.    overlap	 =   min(c1_1/sum_1,   c2_1/sum_2)   +
       min(c1_2/sum_1, c2_2/sum_2) + ...  + min(c1_n/sum_1, c2_n/sum_2).

       The  result  overlap  distribution is a percentage number, ranging from
       0.0% to 100.0%, where 0.0% means	there is no overlap and	100.0% means a
       perfect overlap.

       Here  is	an example, if base profile file has counts of {400, 600}, and
       test profile file has matched counts of {60000, 40000}. The overlap  is
       80%.

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

       -help  Print a summary of command line options.

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

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

       -cs    Only  show overlap for the context sensitive profile counts. The
	      default is to show non-context sensitive profile counts.

EXIT STATUS
       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.

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

COPYRIGHT
       2003-2020, LLVM Project

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

NAME | SYNOPSIS | DESCRIPTION | COMMANDS | MERGE | SHOW | OVERLAP | EXIT STATUS | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=llvm-profdata90&sektion=1&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help