forked from OSchip/llvm-project
64 lines
1.5 KiB
ReStructuredText
64 lines
1.5 KiB
ReStructuredText
llvm-prof - print execution profile of LLVM program
|
|
===================================================
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
|
|
|
|
**llvm-prof** [*options*] [*bitcode file*] [*llvmprof.out*]
|
|
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
|
|
The **llvm-prof** tool reads in an *llvmprof.out* file (which can
|
|
optionally use a specific file with the third program argument), a bitcode file
|
|
for the program, and produces a human readable report, suitable for determining
|
|
where the program hotspots are.
|
|
|
|
This program is often used in conjunction with the *utils/profile.pl*
|
|
script. This script automatically instruments a program, runs it with the JIT,
|
|
then runs **llvm-prof** to format a report. To get more information about
|
|
*utils/profile.pl*, execute it with the **-help** option.
|
|
|
|
|
|
OPTIONS
|
|
-------
|
|
|
|
|
|
|
|
**--annotated-llvm** or **-A**
|
|
|
|
In addition to the normal report printed, print out the code for the
|
|
program, annotated with execution frequency information. This can be
|
|
particularly useful when trying to visualize how frequently basic blocks
|
|
are executed. This is most useful with basic block profiling
|
|
information or better.
|
|
|
|
|
|
|
|
**--print-all-code**
|
|
|
|
Using this option enables the **--annotated-llvm** option, but it
|
|
prints the entire module, instead of just the most commonly executed
|
|
functions.
|
|
|
|
|
|
|
|
**--time-passes**
|
|
|
|
Record the amount of time needed for each pass and print it to standard
|
|
error.
|
|
|
|
|
|
|
|
|
|
EXIT STATUS
|
|
-----------
|
|
|
|
|
|
**llvm-prof** returns 1 if it cannot load the bitcode file or the profile
|
|
information. Otherwise, it exits with zero.
|