Initial checkin
[oota-llvm.git] / docs / CommandGuide / llvm-prof.html
1 <html>
2 <title>LLVM: llvm-prof tool</title>
3
4 <body bgcolor=white>
5
6 <center><h1>LLVM: <tt>llvm-prof</tt> tool</h1></center>
7 <HR>
8
9 <h3>NAME</h3>
10 <tt>llvm-prof</tt>
11
12 <h3>SYNOPSIS</h3>
13 <tt>llvm-prof [options] [bytecode file] [LLVM passes]</tt>
14
15 <h3>DESCRIPTION</h3>
16
17 The <tt>llvm-prof</tt> tool reads in an '<tt>llvmprof.out</tt>' file, a bytecode
18 file for the program, and produces a human readable report, suitable for
19 determining where the program hotspots are.<p>
20
21 This program is often used in conjunction with the <tt>utils/profile.sh</tt>
22 script.  This script automatically instruments a program, runs it with the JIT,
23 then runs <tt>llvm-prof</tt> to format a report.  To get more information about
24 <tt>utils/profile.sh</tt>, execute it with the <tt>--help</tt> option.<p>
25
26 <h3>OPTIONS</h3>
27
28 <ul>
29         <li><tt>--annotated-llvm</tt> or <tt>-A</tt><br>
30
31         In addition to the normal report printed, print out the code for the
32         program, annotated we execution frequency information. This can be
33         particularly useful when trying to visualize how frequently basic blocks
34         are executed.  This is most useful with basic block profiling
35         information or better.<p>
36
37         <li><tt>--print-all-code</tt><br>
38
39         Using this option enables the <tt>--annotated-llvm</tt> option, but it
40         prints the entire module, instead of just the most commonly executed
41         functions.<p>
42 </ul>
43
44 <h3>EXIT STATUS</h3>
45
46 <tt>llvm-prof</tt> returns 1 if it cannot load the bytecode file or the profile
47 information, otherwise it exits with zero.
48
49 <HR>
50 Maintained by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>.
51 </body>
52 </html>