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
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.
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
8 2020-03-19 LLVM-PROFDATA(1)